Merged
Conversation
9043b29 to
ea70cfe
Compare
a5f99b5 to
74ae50f
Compare
74ae50f to
ab12717
Compare
cgrindel
approved these changes
Feb 22, 2026
sushain97
approved these changes
Feb 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
psychgem that needslibyamlto 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 = Trueattribute 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 theportable_rubyto beTrueby 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_checksumsto 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.