Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
There was a problem hiding this comment.
Pull request overview
This PR updates Bazel/Ruby toolchain configuration to use a portable (prebuilt) Ruby setup via rules_ruby, while also aligning multiple BUILD/Starlark files with Bzlmod-style explicit loads for Java/C++ rules.
Changes:
- Configure the Ruby Bazel extension to use
portable_ruby, pinrules_rubyviagit_override, and add a missingjar_checksumsentry for Bundler/JRuby jar resolution. - Update multiple Bazel BUILD/Starlark files to load
java_*/cc_*rules from@rules_java/@rules_cc(and replace onenative.java_binarycall). - Update Ruby CI workflow inputs and the Ruby lockfile’s
BUNDLED WITHmetadata.
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
MODULE.bazel |
Pins rules_ruby, switches Ruby toolchain to portable_ruby, and adds jar_checksums for bundler fetch. |
rb/Gemfile.lock |
Updates BUNDLED WITH Bundler version metadata. |
.github/workflows/ci-ruby.yml |
Passes an explicit ruby-version input for the “Local Tests” job. |
BUILD.bazel |
Loads java_binary from @rules_java for the top-level server target. |
scripts/BUILD.bazel |
Loads/uses java_binary from @rules_java for google-java-format. |
javascript/private/test_suite.bzl |
Loads java_binary from @rules_java and replaces native.java_binary with java_binary. |
javascript/grid-ui/BUILD.bazel |
Loads/uses java_import from @rules_java for UI jar packaging. |
javascript/grid-ui/public/BUILD.bazel |
Loads/uses java_import from @rules_java for the public UI jar. |
java/BUILD.bazel |
Loads/uses java_library and java_plugin from @rules_java. |
java/private/BUILD.bazel |
Loads/uses java_binary from @rules_java for SpotBugs CLI. |
java/private/module.bzl |
Loads java_common and JavaInfo from @rules_java for module/jar handling. |
java/private/common.bzl |
Loads JavaInfo from @rules_java for Maven/Java provider access. |
java/private/dist_info.bzl |
Loads JavaInfo from @rules_java for dist metadata aspect logic. |
java/test/org/openqa/selenium/netty/server/BUILD.bazel |
Loads java_library from @rules_java for test targets. |
java/test/org/openqa/selenium/grid/router/BUILD.bazel |
Loads java_library from @rules_java for test support targets. |
java/test/org/openqa/selenium/firefox/BUILD.bazel |
Loads java_library from @rules_java for test support targets. |
cpp/linux-specific/BUILD.bazel |
Loads cc_binary from @rules_cc. |
common/remote-build/cc/cc_toolchain_config.bzl |
Loads cc_common from @rules_cc for toolchain config creation. |
common/remote-build/cc/armeabi_cc_toolchain_config.bzl |
Loads cc_common from @rules_cc for toolchain config creation. |
common/remote-build/cc/BUILD |
Loads cc_library from @rules_cc. |
shs96c
left a comment
There was a problem hiding this comment.
The copilot reviews are right about the loading of the java_library rule, and you need to run buildifier over this to reorder imports.
* [rb] Switch to portable Rubies * [java] Load `java_library` from repo * [java] Load `java_binary` from repo --------- Co-authored-by: Augustin Gottlieb <33221555+aguspe@users.noreply.github.com>
User description
Switch to the new version of rules_ruby that allows downloading portable Ruby versions. No need to wait for compilation anymore!
🔗 Related Issues
💥 What does this PR do?
🔧 Implementation Notes
💡 Additional Considerations
🔄 Types of changes
PR Type
Enhancement, Bug fix
Description
Use prebuilt Ruby with rv-ruby checksums for multiple platforms
Add workaround for rules_ruby incompatibility with jruby/truffleruby
Update rules_ruby git override to specific commit
Pin Psych gem to 5.0.1 and exclude from bundle fetch
Remove date gem checksums (handled by prebuilt Ruby)
Diagram Walkthrough
File Walkthrough
bazel.yml
Add jruby/truffleruby prebuilt Ruby workaround.github/workflows/bazel.yml
truffleruby
implementations
MODULE.bazel
Configure prebuilt Ruby and update gem dependenciesMODULE.bazel
macos-x86_64
Gemfile
Pin Psych gem version with documentationrb/Gemfile