module(name = "selenium") bazel_dep(name = "apple_rules_lint", version = "0.4.0") bazel_dep(name = "aspect_bazel_lib", version = "2.22.5") bazel_dep(name = "aspect_rules_esbuild", version = "0.25.1") bazel_dep(name = "aspect_rules_jest", version = "0.25.2") bazel_dep(name = "aspect_rules_js", version = "3.0.3") bazel_dep(name = "aspect_rules_ts", version = "3.8.6") bazel_dep(name = "bazel_features", version = "1.43.0") bazel_dep(name = "bazel_skylib", version = "1.9.0") bazel_dep(name = "buildifier_prebuilt", version = "8.5.1") bazel_dep(name = "contrib_rules_jvm", version = "0.32.0") bazel_dep(name = "package_metadata", version = "0.0.7") bazel_dep(name = "platforms", version = "1.0.0") # If you update this, also update the prebuilt version of `protoc` we use below bazel_dep(name = "protobuf", version = "33.5") # Required for rules_rust to import the crates properly bazel_dep(name = "rules_cc", version = "0.2.17", dev_dependency = True) bazel_dep(name = "rules_android", version = "0.7.1") bazel_dep(name = "rules_closure", version = "0.15.0") bazel_dep(name = "rules_dotnet", version = "0.21.5") # See below for actual version used bazel_dep(name = "rules_java", version = "9.6.1") bazel_dep(name = "rules_jvm_external", version = "6.10") bazel_dep(name = "rules_multitool", version = "1.11.1") bazel_dep(name = "rules_nodejs", version = "6.7.3") bazel_dep(name = "rules_oci", version = "2.3.0") bazel_dep(name = "rules_pkg", version = "1.2.0") bazel_dep(name = "rules_python", version = "1.9.0") bazel_dep(name = "rules_proto", version = "7.1.0") bazel_dep(name = "rules_ruby", version = "0.23.1") bazel_dep(name = "rules_rust", version = "0.69.0") # Use latest rules_jvm_external for Bazel 9 compatibility single_version_override( module_name = "rules_jvm_external", patch_strip = 1, patches = ["//third_party/bazel:rules_jvm_external_javadoc.patch"], ) # aspect_rules_jest 0.25.2 does not declare bazel_lib 3.x as a dep # (aspect_bazel_lib → bazel_lib rename) single_version_override( module_name = "aspect_rules_jest", patch_strip = 1, patches = [ "//third_party/bazel:aspect_rules_jest_bazel_lib.patch", ], ) multitool = use_extension("@rules_multitool//multitool:extension.bzl", "multitool") multitool.hub(lockfile = "//:multitool.lock.json") use_repo(multitool, "multitool") linter = use_extension("@apple_rules_lint//lint:extensions.bzl", "linter") linter.configure( name = "java-spotbugs", config = "//java:spotbugs-config", ) linter.configure( name = "rust-rustfmt", config = "//rust:enable-rustfmt", ) linter.register(name = "rust-rustfmt") node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") node.toolchain(node_version = "20.9.0") pnpm = use_extension( "@aspect_rules_js//npm:extensions.bzl", "pnpm", dev_dependency = True, ) use_repo(pnpm, "pnpm") npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") npm.npm_translate_lock( name = "npm", data = [ "@//:package.json", "@//:pnpm-workspace.yaml", "@//javascript/grid-ui:package.json", "@//javascript/private:package.json", "@//javascript/selenium-webdriver:package.json", ], generate_bzl_library_targets = True, npmrc = "//:.npmrc", pnpm_lock = "//:pnpm-lock.yaml", verify_node_modules_ignored = "//:.bazelignore", ) use_repo(npm, "npm") rules_ts_ext = use_extension( "@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True, ) rules_ts_ext.deps( ts_version = "4.9.5", ) use_repo(rules_ts_ext, "npm_typescript") esbuild = use_extension("@aspect_rules_esbuild//esbuild:extensions.bzl", "esbuild") esbuild.toolchain(esbuild_version = "0.23.0") use_repo(esbuild, "esbuild_toolchains") register_toolchains("@esbuild_toolchains//:all") dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") dotnet.toolchain(dotnet_version = "10.0.100") use_repo(dotnet, "dotnet_toolchains") selenium_paket = use_extension("//dotnet:paket.nuget_extension.bzl", "nuget_extension") use_repo(selenium_paket, "paket.nuget") docfx_ext = use_extension("//dotnet/private:docfx_repo.bzl", "docfx_extension") use_repo(docfx_ext, "docfx") register_toolchains("@dotnet_toolchains//:all") python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain( is_default = True, python_version = "3.10.19", ) python.toolchain(python_version = "3.11.14") python.toolchain(python_version = "3.12.12") python.toolchain(python_version = "3.13.11") python.toolchain(python_version = "3.14.2") use_repo(python, "pythons_hub") pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") [ pip.parse( hub_name = "py_dev_requirements", python_version = version, requirements_lock = "//py:requirements_lock.txt", ) for version in [ "3.10.19", "3.11.14", "3.12.12", "3.13.11", "3.14.2", ] ] use_repo(pip, "py_dev_requirements") register_toolchains("@pythons_hub//:all") java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") use_repo( java_toolchains, "remote_java_tools", "remote_java_tools_darwin_arm64", "remote_java_tools_darwin_x86_64", "remote_java_tools_linux", "remote_java_tools_windows", "remotejdk17_linux", "remotejdk17_linux_s390x", "remotejdk17_macos", "remotejdk17_macos_aarch64", "remotejdk17_win", "remotejdk17_win_arm64", ) maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( name = "maven", artifacts = [ "com.beust:jcommander:1.82", "org.checkerframework:checker-qual:3.53.1", "com.github.javaparser:javaparser-core:3.28.0", "com.github.spotbugs:spotbugs:4.9.8", "com.github.stephenc.jcip:jcip-annotations:1.0-1", "com.google.code.findbugs:jsr305:3.0.2", "com.google.code.gson:gson:2.13.2", "com.google.guava:guava:33.5.0-jre", "com.github.ben-manes.caffeine:caffeine:3.2.3", "com.google.auto:auto-common:1.2.2", "com.google.auto.service:auto-service:1.1.1", "com.google.auto.service:auto-service-annotations:1.1.1", "com.google.googlejavaformat:google-java-format:1.34.1", "com.google.protobuf:protobuf-java:4.33.5", "com.google.protobuf.nano:protobuf-javanano:3.1.0", "com.graphql-java:graphql-java:24.1", "com.uber.nullaway:nullaway:0.13.1", "dev.failsafe:failsafe:3.3.2", "io.grpc:grpc-context:1.79.0", "io.fabric8:kubernetes-client:7.5.2", "io.fabric8:kubernetes-client-api:7.5.2", "io.fabric8:kubernetes-model-batch:7.5.2", "io.fabric8:kubernetes-model-core:7.5.2", "io.lettuce:lettuce-core:7.4.0.RELEASE", "io.netty:netty-buffer", "io.netty:netty-codec-http", "io.netty:netty-codec-http2", "io.netty:netty-common", "io.netty:netty-handler", "io.netty:netty-handler-proxy", "io.netty:netty-transport", "io.opentelemetry:opentelemetry-api", "io.opentelemetry:opentelemetry-context", "io.opentelemetry:opentelemetry-exporter-logging", "io.opentelemetry:opentelemetry-sdk", "io.opentelemetry:opentelemetry-sdk-common", "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi", "io.opentelemetry:opentelemetry-sdk-testing", "io.opentelemetry:opentelemetry-sdk-trace", "it.ozimov:embedded-redis:0.7.3", "javax.inject:javax.inject:1", "net.bytebuddy:byte-buddy:1.18.5", "org.htmlunit:htmlunit-core-js:4.21.0", "org.apache.logging.log4j:log4j-core:2.25.3", "org.assertj:assertj-core:3.27.7", "org.bouncycastle:bcpkix-jdk18on:1.83", "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5", "org.hsqldb:hsqldb:2.7.4", "org.jboss.marshalling:jboss-marshalling:2.3.0", "org.jspecify:jspecify:1.0.0", "org.junit.jupiter:junit-jupiter-api", "org.junit.jupiter:junit-jupiter-engine", "org.junit.jupiter:junit-jupiter-params", "org.junit.platform:junit-platform-launcher", "org.junit.platform:junit-platform-reporting", "org.junit.platform:junit-platform-commons", "org.junit.platform:junit-platform-engine", "org.mockito:mockito-core:5.21.0", "org.redisson:redisson:4.2.0", "org.slf4j:slf4j-api:2.0.17", "org.slf4j:slf4j-jdk14:2.0.17", "org.tomlj:tomlj:1.1.1", "org.zeromq:jeromq:0.6.0", "uk.org.webcompere:system-stubs-jupiter:2.1.8", "uk.org.webcompere:system-stubs-core:2.1.8", ], boms = [ "io.opentelemetry:opentelemetry-bom:1.59.0", "io.netty:netty-bom:4.2.10.Final", "org.junit:junit-bom:6.0.3", ], excluded_artifacts = [ "org.hamcrest:hamcrest-all", # Replaced by hamcrest 2 "org.hamcrest:hamcrest-core", "io.netty:netty-all", # Depend on the actual things you need ], fail_if_repin_required = True, fail_on_missing_checksum = True, fetch_sources = True, known_contributing_modules = [ "protobuf", "rules_closure", "rules_web_testing_java", "selenium", ], lock_file = "//java:maven_install.json", repositories = [ "https://repo1.maven.org/maven2", ], resolver = "maven", strict_visibility = True, ) use_repo(maven, "maven", "unpinned_maven") ruby = use_extension("@rules_ruby//ruby:extensions.bzl", "ruby") ruby.toolchain( name = "ruby", msys2_packages = [ "curl", "libyaml", ], portable_ruby = True, version_file = "//:rb/.ruby-version", ) ruby.bundle_fetch( name = "bundle", srcs = [ "//:rb/lib/selenium/devtools/version.rb", "//:rb/lib/selenium/webdriver/version.rb", "//:rb/selenium-devtools.gemspec", "//:rb/selenium-webdriver.gemspec", ], gem_checksums = { "activesupport-7.2.3": "5675c9770dac93e371412684249f9dc3c8cec104efd0624362a520ae685c7b10", "addressable-2.8.8": "7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057", "ast-2.4.3": "954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383", "base64-0.3.0": "27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b", "benchmark-0.5.0": "465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c", "bigdecimal-4.0.1": "8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7", "bigdecimal-4.0.1-java": "95c40a0a92dfb83b293f4b9865cd27caa7c045bedab86f3620e5dc27e6553083", "concurrent-ruby-1.3.6": "6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab", "connection_pool-3.0.2": "33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a", "crack-1.0.1": "ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e", "csv-3.3.5": "6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f", "curb-1.0.9": "07e5b74a4836103ce186827528f76a22d3991a9b7c45f5c10ee18ee7b03feb0d", "date-3.5.1": "750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0", "date-3.5.1-java": "12e09477dc932afe45bf768cd362bf73026804e0db1e6c314186d6cd0bee3344", "debug-1.11.1": "2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6", "diff-lcs-1.6.2": "9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962", "drb-2.2.3": "0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373", "erb-6.0.1": "28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5", "erb-6.0.1-java": "5c6b8d885fb0220d4a8ad158f70430d805845939dd44827e5130ef7fdbaed8ba", "ffi-1.17.3": "0e9f39f7bb3934f77ad6feab49662be77e87eedcdeb2a3f5c0234c2938563d4c", "fileutils-1.8.0": "8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02", "git-1.19.1": "b0a422d9f6517353c48a330d6114de4db9e0c82dbe7202964a1d9f1fbc827d70", "hashdiff-1.2.1": "9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1", "i18n-1.14.8": "285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5", "io-console-0.8.2": "d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc", "io-console-0.8.2-java": "837efefe96084c13ae91114917986ae6c6d1cf063b27b8419cc564a722a38af8", "irb-1.17.0": "168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae", "jar-dependencies-0.5.5": "2972b9fcba4b014e6446a84b5c09674a3e8648b95b71768e729f0e8e40568059", "json-2.18.1": "fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986", "json-2.18.1-java": "06f20d8b4e261f2659d310873bfa09c3bb16550e8990efe27f6f79727eb6fa31", "language_server-protocol-3.17.0.5": "fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc", "lint_roller-1.1.0": "2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87", "listen-3.10.0": "c6e182db62143aeccc2e1960033bebe7445309c7272061979bb098d03760c9d2", "logger-1.7.0": "196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203", "minitest-6.0.1": "7854c74f48e2e975969062833adc4013f249a4b212f5e7b9d5c040bf838d54bb", "mutex_m-0.3.0": "cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751", "parallel-1.27.0": "4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130", "parser-3.3.10.2": "6f60c84aa4bdcedb6d1a2434b738fe8a8136807b6adc8f7f53b97da9bc4e9357", "pp-0.6.3": "2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6", "prettyprint-0.2.0": "2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193", "prism-1.9.0": "7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85", "psych-5.3.1": "eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974", "psych-5.3.1-java": "20a4a81ad01479ef060f604ed75ba42fe673169e67d923b1bae5aa4e13cc5820", "public_suffix-7.0.2": "9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857", "racc-1.8.1": "4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f", "racc-1.8.1-java": "54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98", "rack-2.2.22": "c5cf0b7f872559966d974abe3101a57d51caf12504ee76290b98720004f64542", "rainbow-3.1.1": "039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a", "rake-13.3.1": "8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c", "rb-fsevent-0.11.2": "43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe", "rb-inotify-0.11.1": "a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e", "rbs-3.10.3": "70627f3919016134d554e6c99195552ae3ef6020fe034c8e983facc9c192daa6", "rchardet-1.10.0": "d5ea2ed61a720a220f1914778208e718a0c7ed2a484b6d357ba695aa7001390f", "rdoc-7.2.0": "8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192", "regexp_parser-2.11.3": "ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4", "reline-0.6.3": "1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835", "rexml-3.4.4": "19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142", "rspec-3.13.2": "206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587", "rspec-core-3.13.6": "a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d", "rspec-expectations-3.13.5": "33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836", "rspec-mocks-3.13.7": "0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c", "rspec-support-3.13.7": "0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c", "rubocop-1.84.2": "5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f", "rubocop-ast-1.49.0": "49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd", "rubocop-performance-1.26.1": "cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834", "rubocop-rake-0.7.1": "3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d", "rubocop-rspec-3.9.0": "8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2", "ruby-progressbar-1.13.0": "80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33", "rubyzip-3.2.2": "c0ed99385f0625415c8f05bcae33fe649ed2952894a95ff8b08f26ca57ea5b3c", "securerandom-0.4.1": "cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1", "steep-1.10.0": "1b295b55f9aaff1b8d3ee42453ee55bc2a1078fda0268f288edb2dc014f4d7d1", "stringio-3.2.0": "c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1", "strscan-3.1.7": "5f76462b94a3ea50b44973225b7d75b2cb96d4e1bee9ef1319b99ca117b72c8c", "strscan-3.1.7-java": "acde34c12323095e46f9c46d869d41d0170e0a6817fc723ffc296372ed1088ee", "terminal-table-4.0.0": "f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2", "tsort-0.2.0": "9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f", "tzinfo-2.0.6": "8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b", "unicode-display_width-3.2.0": "0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42", "unicode-emoji-4.2.0": "519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f", "uri-1.1.1": "379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6", "webmock-3.26.1": "4f696fb57c90a827c20aadb2d4f9058bbff10f7f043bd0d4c3f58791143b1cd7", "webrick-1.9.2": "beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131", "websocket-1.2.11": "b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737", "yard-0.9.38": "721fb82afb10532aa49860655f6cc2eaa7130889df291b052e1e6b268283010f", }, gemfile = "//:rb/Gemfile", gemfile_lock = "//:rb/Gemfile.lock", jar_checksums = { "org.snakeyaml:snakeyaml-engine:2.10": "c99d9fd66c7c251d881a9cd95089b7c8044c29a1b02983d7036981bd4354ec37", }, ) use_repo(ruby, "bundle", "ruby", "ruby_toolchains") register_toolchains("@ruby_toolchains//:all") rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain(versions = ["1.89.0"]) crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") crate.from_cargo( name = "crates", cargo_lockfile = "//rust:Cargo.lock", lockfile = "//rust:Cargo.Bazel.lock", manifests = ["//rust:Cargo.toml"], ) use_repo(crate, "crates") selenium_manager_artifacts = use_extension("//common:selenium_manager.bzl", "selenium_manager_artifacts") use_repo( selenium_manager_artifacts, "download_sm_linux", "download_sm_macos", "download_sm_windows", ) pin_browsers_extension = use_extension("//common:repositories.bzl", "pin_browsers_extension") use_repo( pin_browsers_extension, "linux_beta_chrome", "linux_beta_chromedriver", "linux_beta_firefox", "linux_chrome", "linux_chromedriver", "linux_edge", "linux_edgedriver", "linux_firefox", "linux_geckodriver", "mac_beta_chrome", "mac_beta_chromedriver", "mac_beta_firefox", "mac_chrome", "mac_chromedriver", "mac_edge", "mac_edgedriver", "mac_firefox", "mac_geckodriver", ) local_drivers = use_repo_rule("//common/private:drivers.bzl", "local_drivers") local_drivers(name = "local_drivers")