From 74aa065f16474c8799ab4e10f42ff27d052bd4d0 Mon Sep 17 00:00:00 2001 From: Alex Rodionov Date: Thu, 26 Feb 2026 06:53:05 -0800 Subject: [PATCH 1/3] [rb] Switch to portable Rubies --- .github/workflows/bazel.yml | 2 -- BUILD.bazel | 1 + MODULE.bazel | 7 +++++-- common/remote-build/cc/BUILD | 1 + common/remote-build/cc/armeabi_cc_toolchain_config.bzl | 1 + common/remote-build/cc/cc_toolchain_config.bzl | 1 + cpp/linux-specific/BUILD.bazel | 2 ++ java/BUILD.bazel | 2 ++ java/private/BUILD.bazel | 1 + java/private/common.bzl | 1 + java/private/dist_info.bzl | 1 + java/private/module.bzl | 3 +++ java/test/org/openqa/selenium/firefox/BUILD.bazel | 1 + java/test/org/openqa/selenium/grid/router/BUILD.bazel | 1 + java/test/org/openqa/selenium/netty/server/BUILD.bazel | 1 + javascript/grid-ui/BUILD.bazel | 1 + javascript/grid-ui/public/BUILD.bazel | 1 + javascript/private/test_suite.bzl | 4 ++-- rb/Gemfile.lock | 2 +- scripts/BUILD.bazel | 1 + 20 files changed, 28 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index e81a6161e8c92..d7a1860d25fd4 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -138,7 +138,6 @@ jobs: external-cache: | manifest: crates: rust/Cargo.Bazel.lock - rules_ruby++ruby+ruby: ${{ inputs.os == 'windows' && 'false' || 'rb/.ruby-version' }} "+pin_browsers_extension+linux_beta_chrome": false "+pin_browsers_extension+linux_beta_chromedriver": true "+pin_browsers_extension+linux_beta_firefox": false @@ -167,7 +166,6 @@ jobs: external-cache: | manifest: crates: rust/Cargo.Bazel.lock - rules_ruby++ruby+ruby: rb/.ruby-version repository-cache: true bazelrc: common --color=yes - name: Setup curl for Ubuntu diff --git a/BUILD.bazel b/BUILD.bazel index 6a156f8f327bd..bef807de1b934 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,6 +1,7 @@ load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") load("@buildifier_prebuilt//:rules.bzl", "buildifier") load("@npm//:defs.bzl", "npm_link_all_packages") +load("@rules_java//java:java_binary.bzl", "java_binary") load("//common:browsers.bzl", "chrome_data", "firefox_data") load("//java:browsers.bzl", "chrome_jvm_flags", "firefox_jvm_flags") load("//java:defs.bzl", "artifact") diff --git a/MODULE.bazel b/MODULE.bazel index f55aeae0c0e08..274ea33187101 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -24,7 +24,7 @@ bazel_dep(name = "rules_nodejs", version = "6.3.2") bazel_dep(name = "rules_pkg", version = "1.0.1") bazel_dep(name = "rules_python", version = "1.7.0") bazel_dep(name = "rules_proto", version = "7.0.2") -bazel_dep(name = "rules_ruby", version = "0.19.0") +bazel_dep(name = "rules_ruby", version = "0.22.1") bazel_dep(name = "rules_rust", version = "0.67.0") # Until `rules_jvm_external` 6.8 ships @@ -255,7 +255,7 @@ ruby.toolchain( "curl", "libyaml", ], - ruby_build_version = "20260110", + portable_ruby = True, version_file = "//:rb/.ruby-version", ) ruby.bundle_fetch( @@ -354,6 +354,9 @@ ruby.bundle_fetch( }, gemfile = "//:rb/Gemfile", gemfile_lock = "//:rb/Gemfile.lock", + jar_checksums = { + "org.snakeyaml:snakeyaml-engine:2.10": "c99d9fd66c7c251d881a9cd95089b7c8044c29a1b02983d7036981bd4354ec37", + }, ) use_repo(ruby, "bundle", "ruby", "ruby_toolchains") diff --git a/common/remote-build/cc/BUILD b/common/remote-build/cc/BUILD index 88b9ad9cbcd6c..425b4acd189ff 100755 --- a/common/remote-build/cc/BUILD +++ b/common/remote-build/cc/BUILD @@ -14,6 +14,7 @@ # This becomes the BUILD file for @local_config_cc// under non-BSD unixes. +load("@rules_cc//cc:cc_library.bzl", "cc_library") load("@rules_cc//cc:defs.bzl", "cc_toolchain", "cc_toolchain_suite") load(":armeabi_cc_toolchain_config.bzl", "armeabi_cc_toolchain_config") load(":cc_toolchain_config.bzl", "cc_toolchain_config") diff --git a/common/remote-build/cc/armeabi_cc_toolchain_config.bzl b/common/remote-build/cc/armeabi_cc_toolchain_config.bzl index 72ef48ae6d6df..ae0527efe74bb 100755 --- a/common/remote-build/cc/armeabi_cc_toolchain_config.bzl +++ b/common/remote-build/cc/armeabi_cc_toolchain_config.bzl @@ -19,6 +19,7 @@ load( "feature", "tool_path", ) +load("@rules_cc//cc/common:cc_common.bzl", "cc_common") def _impl(ctx): toolchain_identifier = "stub_armeabi-v7a" diff --git a/common/remote-build/cc/cc_toolchain_config.bzl b/common/remote-build/cc/cc_toolchain_config.bzl index 4fd16d733098a..21b78e1ad76c5 100755 --- a/common/remote-build/cc/cc_toolchain_config.bzl +++ b/common/remote-build/cc/cc_toolchain_config.bzl @@ -28,6 +28,7 @@ load( "variable_with_value", "with_feature_set", ) +load("@rules_cc//cc/common:cc_common.bzl", "cc_common") def layering_check_features(compiler): if compiler != "clang": diff --git a/cpp/linux-specific/BUILD.bazel b/cpp/linux-specific/BUILD.bazel index 6fbb8031b2219..f70a1001ffade 100644 --- a/cpp/linux-specific/BUILD.bazel +++ b/cpp/linux-specific/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_cc//cc:cc_binary.bzl", "cc_binary") + cc_binary( name = "noblur64", srcs = glob([ diff --git a/java/BUILD.bazel b/java/BUILD.bazel index 71808daaa9c78..b5fd4ee23ecff 100644 --- a/java/BUILD.bazel +++ b/java/BUILD.bazel @@ -1,5 +1,7 @@ load("@bazel_skylib//rules:common_settings.bzl", "string_flag") load("@contrib_rules_jvm//java:defs.bzl", "spotbugs_binary", "spotbugs_config") +load("@rules_java//java:java_library.bzl", "java_library") +load("@rules_java//java:java_plugin.bzl", "java_plugin") load(":defs.bzl", "artifact") exports_files( diff --git a/java/private/BUILD.bazel b/java/private/BUILD.bazel index 750af87a97a5a..21f2c33d3c2ee 100644 --- a/java/private/BUILD.bazel +++ b/java/private/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_jvm_external//:defs.bzl", "artifact") exports_files( diff --git a/java/private/common.bzl b/java/private/common.bzl index 8f68b4a9b3fcf..1fb1415129762 100644 --- a/java/private/common.bzl +++ b/java/private/common.bzl @@ -1,3 +1,4 @@ +load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("//java/private:module.bzl", "JavaModuleInfo") MavenInfo = provider( diff --git a/java/private/dist_info.bzl b/java/private/dist_info.bzl index 97c8b9bddbc97..09afe15922003 100644 --- a/java/private/dist_info.bzl +++ b/java/private/dist_info.bzl @@ -1,3 +1,4 @@ +load("@rules_java//java/common:java_info.bzl", "JavaInfo") load("//java/private:common.bzl", "MavenInfo", "explode_coordinates", "read_coordinates") load("//java/private:module.bzl", "JavaModuleInfo") diff --git a/java/private/module.bzl b/java/private/module.bzl index f0c9eedec22fa..313dca27e2d85 100644 --- a/java/private/module.bzl +++ b/java/private/module.bzl @@ -1,3 +1,6 @@ +load("@rules_java//java/common:java_common.bzl", "java_common") +load("@rules_java//java/common:java_info.bzl", "JavaInfo") + _GatheredModuleInfo = provider( fields = { "name": "Name of the module, may be `None`.", diff --git a/java/test/org/openqa/selenium/firefox/BUILD.bazel b/java/test/org/openqa/selenium/firefox/BUILD.bazel index ee7f980bd7c94..f2dd16cbfff39 100644 --- a/java/test/org/openqa/selenium/firefox/BUILD.bazel +++ b/java/test/org/openqa/selenium/firefox/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") load("//common:defs.bzl", "copy_file") load("//java:defs.bzl", "JUNIT5_DEPS", "java_selenium_test_suite", "java_test_suite") diff --git a/java/test/org/openqa/selenium/grid/router/BUILD.bazel b/java/test/org/openqa/selenium/grid/router/BUILD.bazel index 4b8096bb9bd24..3b676239d325c 100644 --- a/java/test/org/openqa/selenium/grid/router/BUILD.bazel +++ b/java/test/org/openqa/selenium/grid/router/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") load("//java:defs.bzl", "BIDI_BROWSERS", "JUNIT5_DEPS", "SINGLE_BROWSER", "java_selenium_test_suite", "java_test_suite") load("//java:version.bzl", "TOOLS_JAVA_VERSION") diff --git a/java/test/org/openqa/selenium/netty/server/BUILD.bazel b/java/test/org/openqa/selenium/netty/server/BUILD.bazel index c21993bc25b1c..73e88450158bd 100644 --- a/java/test/org/openqa/selenium/netty/server/BUILD.bazel +++ b/java/test/org/openqa/selenium/netty/server/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") load("//java:defs.bzl", "JUNIT5_DEPS", "java_test_suite") diff --git a/javascript/grid-ui/BUILD.bazel b/javascript/grid-ui/BUILD.bazel index ca3c37dd40584..5d5745b1f50b2 100644 --- a/javascript/grid-ui/BUILD.bazel +++ b/javascript/grid-ui/BUILD.bazel @@ -4,6 +4,7 @@ load("@aspect_rules_jest//jest:defs.bzl", "jest_test") load("@aspect_rules_js//js:defs.bzl", "js_library") load("@aspect_rules_ts//ts:defs.bzl", "ts_project") load("@npm//:defs.bzl", "npm_link_all_packages") +load("@rules_java//java:java_import.bzl", "java_import") load("@rules_pkg//pkg:zip.bzl", "pkg_zip") load("//java:defs.bzl", "merge_jars") diff --git a/javascript/grid-ui/public/BUILD.bazel b/javascript/grid-ui/public/BUILD.bazel index b1635bc09dd94..e9ea37ba9e3b5 100644 --- a/javascript/grid-ui/public/BUILD.bazel +++ b/javascript/grid-ui/public/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_java//java:java_import.bzl", "java_import") load("@rules_pkg//pkg:zip.bzl", "pkg_zip") pkg_zip( diff --git a/javascript/private/test_suite.bzl b/javascript/private/test_suite.bzl index 77bbf3c2e46a2..c7d473f624e92 100644 --- a/javascript/private/test_suite.bzl +++ b/javascript/private/test_suite.bzl @@ -1,3 +1,4 @@ +load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_jvm_external//:defs.bzl", "artifact") load("//java:defs.bzl", "selenium_test") @@ -28,8 +29,7 @@ def closure_test_suite(name, data = [], browsers = None): kwargs["browsers"] = browsers selenium_test(**kwargs) - - native.java_binary( + java_binary( name = name + "_debug_server", main_class = "org.openqa.selenium.environment.webserver.NettyAppServer", data = data, diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock index 3c9ba9e7d5f07..8d4a6c97f8946 100644 --- a/rb/Gemfile.lock +++ b/rb/Gemfile.lock @@ -220,4 +220,4 @@ DEPENDENCIES yard (~> 0.9.11, >= 0.9.36) BUNDLED WITH - 2.4.19 + 4.0.6 diff --git a/scripts/BUILD.bazel b/scripts/BUILD.bazel index 6e36656fd43c0..fe7299a351ef0 100644 --- a/scripts/BUILD.bazel +++ b/scripts/BUILD.bazel @@ -1,4 +1,5 @@ load("@py_dev_requirements//:requirements.bzl", "requirement") +load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_python//python:defs.bzl", "py_binary") load("//java:defs.bzl", "artifact") From f7e4fe2b5e34e978b10b4864b7196257c1bc9aef Mon Sep 17 00:00:00 2001 From: Alex Rodionov Date: Thu, 26 Feb 2026 09:06:01 -0800 Subject: [PATCH 2/3] [java] Load `java_library` from repo --- java/BUILD.bazel | 3 +-- java/test/org/openqa/selenium/firefox/BUILD.bazel | 3 +-- java/test/org/openqa/selenium/grid/router/BUILD.bazel | 3 +-- java/test/org/openqa/selenium/netty/server/BUILD.bazel | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/java/BUILD.bazel b/java/BUILD.bazel index b5fd4ee23ecff..25d2f0c494038 100644 --- a/java/BUILD.bazel +++ b/java/BUILD.bazel @@ -1,8 +1,7 @@ load("@bazel_skylib//rules:common_settings.bzl", "string_flag") load("@contrib_rules_jvm//java:defs.bzl", "spotbugs_binary", "spotbugs_config") -load("@rules_java//java:java_library.bzl", "java_library") load("@rules_java//java:java_plugin.bzl", "java_plugin") -load(":defs.bzl", "artifact") +load(":defs.bzl", "artifact", "java_library") exports_files( srcs = [ diff --git a/java/test/org/openqa/selenium/firefox/BUILD.bazel b/java/test/org/openqa/selenium/firefox/BUILD.bazel index f2dd16cbfff39..7d29fa850c18e 100644 --- a/java/test/org/openqa/selenium/firefox/BUILD.bazel +++ b/java/test/org/openqa/selenium/firefox/BUILD.bazel @@ -1,7 +1,6 @@ -load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") load("//common:defs.bzl", "copy_file") -load("//java:defs.bzl", "JUNIT5_DEPS", "java_selenium_test_suite", "java_test_suite") +load("//java:defs.bzl", "JUNIT5_DEPS", "java_library", "java_selenium_test_suite", "java_test_suite") LARGE_TESTS = [ "ExtensionsTest.java", diff --git a/java/test/org/openqa/selenium/grid/router/BUILD.bazel b/java/test/org/openqa/selenium/grid/router/BUILD.bazel index 3b676239d325c..1139ff6421d6f 100644 --- a/java/test/org/openqa/selenium/grid/router/BUILD.bazel +++ b/java/test/org/openqa/selenium/grid/router/BUILD.bazel @@ -1,6 +1,5 @@ -load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") -load("//java:defs.bzl", "BIDI_BROWSERS", "JUNIT5_DEPS", "SINGLE_BROWSER", "java_selenium_test_suite", "java_test_suite") +load("//java:defs.bzl", "BIDI_BROWSERS", "JUNIT5_DEPS", "SINGLE_BROWSER", "java_library", "java_selenium_test_suite", "java_test_suite") load("//java:version.bzl", "TOOLS_JAVA_VERSION") load("//java/src/org/openqa/selenium/devtools:versions.bzl", "CDP_DEPS") diff --git a/java/test/org/openqa/selenium/netty/server/BUILD.bazel b/java/test/org/openqa/selenium/netty/server/BUILD.bazel index 73e88450158bd..29362519a0ebe 100644 --- a/java/test/org/openqa/selenium/netty/server/BUILD.bazel +++ b/java/test/org/openqa/selenium/netty/server/BUILD.bazel @@ -1,6 +1,5 @@ -load("@rules_java//java:java_library.bzl", "java_library") load("@rules_jvm_external//:defs.bzl", "artifact") -load("//java:defs.bzl", "JUNIT5_DEPS", "java_test_suite") +load("//java:defs.bzl", "JUNIT5_DEPS", "java_library", "java_test_suite") SMALL_TEST_SRCS = [ "RequestConverterTest.java", From 7725cc1812a48ca5ab4bfad40c74c07340faf930 Mon Sep 17 00:00:00 2001 From: Alex Rodionov Date: Thu, 26 Feb 2026 15:45:59 -0800 Subject: [PATCH 3/3] [java] Load `java_binary` from repo --- BUILD.bazel | 3 +-- java/private/BUILD.bazel | 3 +-- javascript/grid-ui/BUILD.bazel | 3 +-- javascript/grid-ui/public/BUILD.bazel | 2 +- javascript/private/test_suite.bzl | 3 +-- scripts/BUILD.bazel | 3 +-- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 4190f303a7adf..94172c7b82a60 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,10 +1,9 @@ load("@aspect_rules_js//npm:defs.bzl", "npm_link_package") load("@buildifier_prebuilt//:rules.bzl", "buildifier") load("@npm//:defs.bzl", "npm_link_all_packages") -load("@rules_java//java:java_binary.bzl", "java_binary") load("//common:browsers.bzl", "chrome_data", "firefox_data") load("//java:browsers.bzl", "chrome_jvm_flags", "firefox_jvm_flags") -load("//java:defs.bzl", "artifact") +load("//java:defs.bzl", "artifact", "java_binary") exports_files([ "package.json", diff --git a/java/private/BUILD.bazel b/java/private/BUILD.bazel index 21f2c33d3c2ee..eaf0e211d6e78 100644 --- a/java/private/BUILD.bazel +++ b/java/private/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:java_binary.bzl", "java_binary") -load("@rules_jvm_external//:defs.bzl", "artifact") +load("//java:defs.bzl", "artifact", "java_binary") exports_files( srcs = [ diff --git a/javascript/grid-ui/BUILD.bazel b/javascript/grid-ui/BUILD.bazel index 5d5745b1f50b2..289b89443d746 100644 --- a/javascript/grid-ui/BUILD.bazel +++ b/javascript/grid-ui/BUILD.bazel @@ -4,9 +4,8 @@ load("@aspect_rules_jest//jest:defs.bzl", "jest_test") load("@aspect_rules_js//js:defs.bzl", "js_library") load("@aspect_rules_ts//ts:defs.bzl", "ts_project") load("@npm//:defs.bzl", "npm_link_all_packages") -load("@rules_java//java:java_import.bzl", "java_import") load("@rules_pkg//pkg:zip.bzl", "pkg_zip") -load("//java:defs.bzl", "merge_jars") +load("//java:defs.bzl", "java_import", "merge_jars") npm_link_all_packages(name = "node_modules") diff --git a/javascript/grid-ui/public/BUILD.bazel b/javascript/grid-ui/public/BUILD.bazel index e9ea37ba9e3b5..7f68b55a76b48 100644 --- a/javascript/grid-ui/public/BUILD.bazel +++ b/javascript/grid-ui/public/BUILD.bazel @@ -1,5 +1,5 @@ -load("@rules_java//java:java_import.bzl", "java_import") load("@rules_pkg//pkg:zip.bzl", "pkg_zip") +load("//java:defs.bzl", "java_import") pkg_zip( name = "build-zip", diff --git a/javascript/private/test_suite.bzl b/javascript/private/test_suite.bzl index c7d473f624e92..78f5ade43f0d9 100644 --- a/javascript/private/test_suite.bzl +++ b/javascript/private/test_suite.bzl @@ -1,6 +1,5 @@ -load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_jvm_external//:defs.bzl", "artifact") -load("//java:defs.bzl", "selenium_test") +load("//java:defs.bzl", "java_binary", "selenium_test") def closure_test_suite(name, data = [], browsers = None): data = data + [ diff --git a/scripts/BUILD.bazel b/scripts/BUILD.bazel index 15463091dc8b3..670d27ea0cd6a 100644 --- a/scripts/BUILD.bazel +++ b/scripts/BUILD.bazel @@ -1,7 +1,6 @@ load("@py_dev_requirements//:requirements.bzl", "requirement") -load("@rules_java//java:java_binary.bzl", "java_binary") load("@rules_python//python:defs.bzl", "py_binary") -load("//java:defs.bzl", "artifact") +load("//java:defs.bzl", "artifact", "java_binary") py_binary( name = "pinned_browsers",