Contributing
This guide walks you through setting up a development environment for RatatuiRuby. By the end, you will have a working test suite on macOS, Linux, or Windows.
Prerequisites
The only prerequisite is mise, a dev tool manager. It installs Ruby, Rust, Python, and pre-commit hooks according to mise.toml.
Setup
Clone the repository and run the setup script for your platform.
macOS / Linux
bin/setup
Windows (PowerShell)
bin/setup.ps1
Both scripts install Rust, Python, Bundler, and gem dependencies. On macOS and Linux, mise handles everything including Ruby. On Windows, the script installs Ruby via RubyInstaller (winget) since mise cannot compile working Ruby on Windows. RubyInstaller bundles the MSYS2 devkit for native gem compilation. If Visual Studio Build Tools are missing (Rust depends on them), the script offers to install them via winget.
Running Tests
The default Rake task runs lint fixes, the test suite, code quality tools, license checks, and the Steep type checker:
bundle exec rake
Running Examples
Run any example with bundle exec ruby so Bundler loads the development version of the gem:
bundle exec ruby examples/app_all_events/app.rb
Project Structure
See doc/contributors/ for architecture guides, documentation standards, and release procedures.
Community
Active development happens on the trunk branch. The stable branch tracks releases only. Use trunk for contributions.
The discussion forum is the best place to ask questions, share patches, and get feedback. Report bugs on the bug tracker. Follow announcements for release notes. All participants follow the Code of Conduct.
File issues for the underlying Rust library at ratatui/ratatui.