Skip to content

feat!: switch from rv-ruby to jdx/ruby#340

Merged
p0deje merged 18 commits intomainfrom
feat/rv-ruby-improvements
Feb 24, 2026
Merged

feat!: switch from rv-ruby to jdx/ruby#340
p0deje merged 18 commits intomainfrom
feat/rv-ruby-improvements

Conversation

@p0deje
Copy link
Member

@p0deje p0deje commented Feb 17, 2026

This PR changes current portable Ruby installation from rv-ruby to jdx/ruby.

The main reason to make the change is that latter ships with common headers/libraries needed to install gems with native extensions. When using rv-ruby, we had to exclude some gems from installation and instead use default gem versions that ship with Ruby, making it impossible to use certain gem + version combinations. A common example is a psych gem that needs libyaml to compile its native extensions. jdx/ruby has libyaml headers and static library that can be used for compilation, though we still need to tell Bundler how to find it. Since there is no more need for excluding gems during bundle install, the related logic was completely removed.

To make overall transition better, users now only need to add portable_ruby = True attribute which will silently be ignored for Ruby versions and platforms not currently supported (JRuby, TruffleRuby, Windows). This is important for projects like Selenium that test across a matrix of interpreter/OS combinations. Eventually, if everything works well, we can flip the portable_ruby to be True by default.

PR also adds default checksums for portable Rubies, so users don't have to run anything to ensure Ruby is properly store in the repository cache. The only case where it might be needed is if a new version of Ruby came out published to jdx/ruby. Users can still run bazel run @rules_ruby//tools/generate_portable_ruby_checksums to fetch the checksums until rules_ruby is updated.

Portable Rubies unblock RBE support on MRI, though the current toolchain still needs to be reworked to handle platform constraints and properly provide headers/libraries path to bundle install action.

@p0deje p0deje force-pushed the feat/rv-ruby-improvements branch from 9043b29 to ea70cfe Compare February 17, 2026 16:02
@p0deje p0deje force-pushed the feat/rv-ruby-improvements branch from a5f99b5 to 74ae50f Compare February 20, 2026 15:30
@p0deje p0deje changed the title Feat/rv ruby improvements feat!: switch from rv-ruby to jdx/ruby Feb 20, 2026
@p0deje p0deje force-pushed the feat/rv-ruby-improvements branch from 74ae50f to ab12717 Compare February 20, 2026 15:46
@p0deje p0deje requested review from cgrindel and sushain97 February 20, 2026 15:56
@p0deje p0deje marked this pull request as ready for review February 20, 2026 16:19
@p0deje p0deje merged commit 42ac931 into main Feb 24, 2026
55 checks passed
@p0deje p0deje deleted the feat/rv-ruby-improvements branch February 24, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants