| """Bazel build and test dependencies.""" | |
| # NOTE: When editing this file, also update the lockfile. | |
| # bazel mod deps --lockfile_mode=update | |
| module( | |
| name = "bazel", | |
| version = "8.8.1", | |
| repo_name = "io_bazel", | |
| ) | |
| # ========================================= | |
| # Bazel module dependencies | |
| # ========================================= | |
| bazel_dep(name = "rules_license", version = "1.0.0") | |
| bazel_dep(name = "bazel_skylib", version = "1.7.1") | |
| bazel_dep(name = "grpc", version = "1.66.0.bcr.2", repo_name = "com_github_grpc_grpc") | |
| bazel_dep(name = "grpc-java", version = "1.66.0") | |
| bazel_dep(name = "googleapis", version = "0.0.0-20240819-fe8ba054a") | |
| bazel_dep(name = "platforms", version = "1.0.0") | |
| bazel_dep(name = "rules_pkg", version = "1.0.1") | |
| bazel_dep(name = "stardoc", version = "0.7.1", repo_name = "io_bazel_skydoc") | |
| bazel_dep(name = "zstd-jni", version = "1.5.6-9") | |
| bazel_dep(name = "blake3", version = "1.5.1.bcr.1") | |
| bazel_dep(name = "zlib", version = "1.3.1.bcr.5") | |
| bazel_dep(name = "rules_java", version = "8.14.0") | |
| bazel_dep(name = "rules_graalvm", version = "0.11.1") | |
| bazel_dep(name = "rules_proto", version = "7.0.2") | |
| bazel_dep(name = "rules_jvm_external", version = "6.0") | |
| bazel_dep(name = "rules_python", version = "0.40.0") | |
| bazel_dep(name = "rules_testing", version = "0.6.0") | |
| bazel_dep(name = "googletest", version = "1.15.2", repo_name = "com_google_googletest") | |
| bazel_dep(name = "with_cfg.bzl", version = "0.6.0") | |
| bazel_dep(name = "abseil-cpp", version = "20240722.0.bcr.2") | |
| bazel_dep(name = "rules_shell", version = "0.2.0") | |
| bazel_dep(name = "chicory", version = "1.1.0") | |
| # Depend on apple_support first and then rules_cc so that the Xcode toolchain | |
| # from apple_support wins over the generic Unix toolchain from rules_cc. | |
| bazel_dep(name = "apple_support", version = "1.23.1") | |
| bazel_dep(name = "rules_cc", version = "0.1.1") | |
| # repo_name needs to be used, until WORKSPACE mode is to be supported in bazel_tools | |
| bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") | |
| # TODO: wyv@ - add remoteapis to the BCR | |
| bazel_dep(name = "remoteapis", version = "") | |
| # TODO: wyv@ - eventually this part should be unnecessary (after we fix up the googleapis module | |
| # in the BCR) | |
| switched_rules = use_extension("@googleapis//:extensions.bzl", "switched_rules") | |
| switched_rules.use_languages( | |
| cc = True, | |
| go = True, | |
| grpc = True, | |
| java = True, | |
| python = True, | |
| ) | |
| single_version_override( | |
| module_name = "rules_jvm_external", | |
| patch_strip = 1, | |
| patches = ["//third_party:rules_jvm_external_6.0.patch"], | |
| version = "6.0", | |
| ) | |
| # TODO(pcloudy): Remove once the next version of rules_graalvm is available. | |
| single_version_override( | |
| module_name = "rules_graalvm", | |
| patch_strip = 1, | |
| patches = [ | |
| "//third_party:rules_graalvm_fix.patch", | |
| "//third_party:rules_graalvm_unicode.patch", | |
| ], | |
| ) | |
| # Remove once the following PRs are available in a grpc-java release. | |
| # https://github.com/grpc/grpc-java/pull/12207 | |
| # https://github.com/grpc/grpc-java/pull/12222 | |
| single_version_override( | |
| module_name = "grpc-java", | |
| patch_strip = 1, | |
| patches = [ | |
| "//third_party:grpc-java-12207.patch", | |
| "//third_party:grpc-java-12222.patch", | |
| ], | |
| ) | |
| local_path_override( | |
| module_name = "remoteapis", | |
| path = "./third_party/remoteapis", | |
| ) | |
| # The following Bazel modules are not direct dependencies for building Bazel, | |
| # but are required for visibility from DIST_ARCHIVE_REPOS in repositories.bzl | |
| bazel_dep(name = "rules_apple", version = "3.16.0") | |
| bazel_dep(name = "bazel_features", version = "1.30.0") | |
| bazel_dep(name = "c-ares", version = "1.15.0") | |
| bazel_dep(name = "rules_go", version = "0.48.0") | |
| bazel_dep(name = "rules_kotlin", version = "1.9.6") | |
| bazel_dep(name = "re2", version = "2024-07-02.bcr.1") | |
| # ========================================= | |
| # Java dependencies | |
| # ========================================= | |
| maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") | |
| maven.install( | |
| artifacts = [ | |
| # keep sorted | |
| "com.beust:jcommander:1.82", | |
| "com.github.ben-manes.caffeine:caffeine:3.0.5", | |
| "com.github.stephenc.jcip:jcip-annotations:1.0-1", | |
| "com.google.api-client:google-api-client:1.35.2", | |
| "com.google.api-client:google-api-client-gson:1.35.2", | |
| "com.google.auth:google-auth-library-credentials:1.6.0", | |
| "com.google.auth:google-auth-library-oauth2-http:1.6.0", | |
| "com.google.auto:auto-common:1.2.1", | |
| "com.google.auto.service:auto-service:1.0", | |
| "com.google.auto.service:auto-service-annotations:1.0.1", | |
| "com.google.auto.value:auto-value:1.11.0", | |
| "com.google.auto.value:auto-value-annotations:1.11.0", | |
| "com.google.code.findbugs:jsr305:3.0.2", | |
| "com.google.code.gson:gson:2.10.1", | |
| "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:3.3.4", | |
| "com.google.errorprone:error_prone_annotation:2.32.0", | |
| "com.google.errorprone:error_prone_annotations:2.32.0", | |
| "com.google.errorprone:error_prone_check_api:2.32.0", | |
| "com.google.errorprone:error_prone_core:2.32.0", | |
| "com.google.errorprone:error_prone_type_annotations:2.32.0", | |
| "com.google.flogger:flogger:0.5.1", | |
| "com.google.flogger:flogger-system-backend:0.5.1", | |
| "com.google.flogger:google-extensions:0.5.1", | |
| "com.google.guava:failureaccess:1.0.1", | |
| "com.google.guava:guava:33.4.5-jre", | |
| "com.google.http-client:google-http-client:1.42.0", | |
| "com.google.http-client:google-http-client-gson:1.42.0", | |
| "com.google.j2objc:j2objc-annotations:1.3", | |
| "com.google.turbine:turbine:0.10.0", | |
| "com.guardsquare:proguard-base:jar:7.5.0", | |
| "com.ryanharter.auto.value:auto-value-gson-extension:1.3.1", | |
| "com.ryanharter.auto.value:auto-value-gson-factory:1.3.1", | |
| "com.ryanharter.auto.value:auto-value-gson-runtime:1.3.1", | |
| "com.squareup:javapoet:1.12.0", | |
| "commons-collections:commons-collections:3.2.2", | |
| "commons-lang:commons-lang:2.6", | |
| "io.github.java-diff-utils:java-diff-utils:4.12", | |
| "io.grpc:grpc-api:1.66.0", | |
| "io.grpc:grpc-auth:1.66.0", | |
| "io.grpc:grpc-context:1.66.0", | |
| "io.grpc:grpc-core:1.66.0", | |
| "io.grpc:grpc-inprocess:1.66.0", | |
| "io.grpc:grpc-netty:1.66.0", | |
| "io.grpc:grpc-protobuf:1.66.0", | |
| "io.grpc:grpc-protobuf-lite:1.66.0", | |
| "io.grpc:grpc-stub:1.66.0", | |
| "io.netty:netty-buffer:4.1.119.Final", | |
| "io.netty:netty-codec:4.1.119.Final", | |
| "io.netty:netty-codec-http:4.1.119.Final", | |
| "io.netty:netty-codec-http2:4.1.119.Final", | |
| "io.netty:netty-common:4.1.119.Final", | |
| "io.netty:netty-handler:4.1.119.Final", | |
| "io.netty:netty-handler-proxy:4.1.119.Final", | |
| "io.netty:netty-resolver:4.1.119.Final", | |
| "io.netty:netty-resolver-dns:4.1.119.Final", | |
| "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64:2.0.56.Final", | |
| "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64:2.0.56.Final", | |
| "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64:2.0.56.Final", | |
| "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64:2.0.56.Final", | |
| "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64:2.0.56.Final", | |
| "io.netty:netty-tcnative-classes:2.0.56.Final", | |
| "io.netty:netty-transport:4.1.119.Final", | |
| "io.netty:netty-transport-classes-epoll:4.1.119.Final", | |
| "io.netty:netty-transport-classes-kqueue:4.1.119.Final", | |
| "io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-unix-common:4.1.119.Final", | |
| "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-unix-common:jar:linux-x86_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64:4.1.119.Final", | |
| "io.netty:netty-transport-native-unix-common:jar:osx-x86_64:4.1.119.Final", | |
| "io.reactivex.rxjava3:rxjava:3.1.2", | |
| "it.unimi.dsi:fastutil:7.2.1", | |
| "javax.activation:javax.activation-api:1.2.0", | |
| "javax.annotation:javax.annotation-api:1.3.2", | |
| "javax.inject:javax.inject:1", | |
| "org.apache.commons:commons-compress:1.26.1", | |
| "org.apache.commons:commons-pool2:2.8.0", | |
| "org.apache.tomcat:tomcat-annotations-api:8.0.5", | |
| "org.apache.velocity:velocity:1.7", | |
| "org.checkerframework:checker-qual:3.19.0", | |
| "org.openjdk.jmh:jmh-core:1.37", | |
| "org.openjdk.jmh:jmh-generator-annprocess:1.37", | |
| "org.ow2.asm:asm:9.2", | |
| "org.ow2.asm:asm-analysis:9.2", | |
| "org.ow2.asm:asm-commons:9.2", | |
| "org.ow2.asm:asm-tree:9.2", | |
| "org.ow2.asm:asm-util:9.2", | |
| "org.pcollections:pcollections:3.1.4", | |
| "org.threeten:threeten-extra:1.5.0", | |
| "org.tukaani:xz:1.9", | |
| "org.yaml:snakeyaml:1.28", | |
| # The following jars are for testing. | |
| # junit is not test only due to //src/java_tools/junitrunner/java/com/google/testing/junit/junit4:runner, | |
| # and hamcrest is a dependency of junit. | |
| "junit:junit:4.13.2", | |
| "org.hamcrest:hamcrest-core:1.3", | |
| ], | |
| excluded_artifacts = [ | |
| # org.apache.httpcomponents and org.eclipse.jgit:org.eclipse.jgit | |
| # require java.security.jgss module to be embedded in the Bazel binary. | |
| "org.apache.httpcomponents:httpclient", | |
| "org.apache.httpcomponents:httpcore", | |
| "org.eclipse.jgit:org.eclipse.jgit", | |
| ], | |
| fail_if_repin_required = True, | |
| lock_file = "//:maven_install.json", | |
| repositories = [ | |
| "https://repo1.maven.org/maven2", | |
| ], | |
| strict_visibility = True, | |
| ) | |
| # Test only maven dependencies | |
| [ | |
| maven.artifact( | |
| testonly = True, | |
| artifact = artifact, | |
| group = group, | |
| version = version, | |
| ) | |
| for group, artifact, version in [coord.split(":") for coord in [ | |
| "com.google.guava:guava-testlib:33.2.1-jre", | |
| "com.google.jimfs:jimfs:1.2", | |
| "com.google.testing.compile:compile-testing:0.18", | |
| "com.google.testparameterinjector:test-parameter-injector:1.16", | |
| "com.google.truth:truth:1.4.0", | |
| "com.google.truth.extensions:truth-java8-extension:1.4.0", | |
| "com.google.truth.extensions:truth-liteproto-extension:1.4.0", | |
| "com.google.truth.extensions:truth-proto-extension:1.4.0", | |
| "org.mockito:mockito-core:5.4.0", | |
| ]] | |
| ] | |
| use_repo(maven, "maven") | |
| java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") | |
| use_repo( | |
| java_toolchains, | |
| "local_jdk", | |
| # The following are required for visibility in //src:test_repos | |
| "remote_java_tools", | |
| "remote_java_tools_darwin_arm64", | |
| "remote_java_tools_darwin_x86_64", | |
| "remote_java_tools_linux", | |
| "remote_java_tools_windows", | |
| "remotejdk11_linux", | |
| "remotejdk11_linux_aarch64", | |
| "remotejdk11_linux_ppc64le", | |
| "remotejdk11_linux_s390x", | |
| "remotejdk11_macos", | |
| "remotejdk11_macos_aarch64", | |
| "remotejdk11_win", | |
| "remotejdk11_win_arm64", | |
| "remotejdk17_linux", | |
| "remotejdk17_linux_s390x", | |
| "remotejdk17_macos", | |
| "remotejdk17_macos_aarch64", | |
| "remotejdk17_win", | |
| "remotejdk17_win_arm64", | |
| "remotejdk21_linux", | |
| "remotejdk21_linux_s390x", | |
| "remotejdk21_macos", | |
| "remotejdk21_macos_aarch64", | |
| "remotejdk21_win", | |
| ) | |
| # ========================================= | |
| # Python dependencies | |
| # ========================================= | |
| python = use_extension("@rules_python//python/extensions:python.bzl", "python") | |
| python.toolchain( | |
| ignore_root_user_error = True, | |
| is_default = True, | |
| python_version = "3.11", | |
| ) | |
| pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") | |
| pip.parse( | |
| hub_name = "bazel_pip_dev_deps", | |
| python_version = "3.11", | |
| requirements_lock = "//:requirements.txt", | |
| ) | |
| use_repo(pip, "bazel_pip_dev_deps") | |
| # ========================================= | |
| # Other Bazel build dependencies | |
| # ========================================= | |
| bazel_build_deps = use_extension("//:extensions.bzl", "bazel_build_deps") | |
| use_repo( | |
| bazel_build_deps, | |
| "bazel_tools_repo_cache", | |
| "bootstrap_repo_cache", | |
| "debian_bin_deps", | |
| "debian_cc_deps", | |
| "debian_java_deps", | |
| "debian_proto_deps", | |
| "openjdk_linux_aarch64_vanilla", | |
| "openjdk_linux_ppc64le_vanilla", | |
| "openjdk_linux_s390x_vanilla", | |
| "openjdk_linux_riscv64_vanilla", | |
| "openjdk_linux_vanilla", | |
| "openjdk_macos_aarch64_vanilla", | |
| "openjdk_macos_x86_64_vanilla", | |
| "openjdk_win_arm64_vanilla", | |
| "openjdk_win_vanilla", | |
| "workspace_repo_cache", | |
| ) | |
| # Required only by `--extra_toolchains=@local_config_cc//:cc-toolchain-arm64_windows` from .bazelrc | |
| cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure_extension") | |
| use_repo(cc_configure, "local_config_cc") | |
| gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm") | |
| gvm.graalvm( | |
| name = "graalvm", | |
| distribution = "ce", | |
| java_version = "21", | |
| version = "21.0.2", | |
| ) | |
| use_repo(gvm, "graalvm_toolchains") | |
| http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") | |
| # DO NOT UPDATE the jq versions, they are used to verify compatibility with old and new versions. | |
| http_file( | |
| name = "jq_linux_amd64", | |
| executable = True, | |
| integrity = "sha256-xrOn19PntwxvUbcGo7kL0BgzhGxU0yyjLwAn8AIm/20=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.5/jq-linux64"], | |
| ) | |
| http_file( | |
| name = "jq_linux_arm64", | |
| executable = True, | |
| integrity = "sha256-TdLYoGYd8LIvG7mh+YMPBrbzuPfZEhGh7118TwaotKU=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-arm64"], | |
| ) | |
| http_file( | |
| name = "jq_linux_s390x", | |
| executable = True, | |
| integrity = "sha256-hot8PKdCJKAt22EyYd38LkOxLart1etYNz29x/LF+SQ=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-s390x"], | |
| ) | |
| http_file( | |
| name = "jq_macos_amd64", | |
| executable = True, | |
| integrity = "sha256-OG6SyYKlb+SFFGjXqTHfyilWDO4wag5mxqG9QGXT2sU=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.5/jq-osx-amd64"], | |
| ) | |
| http_file( | |
| name = "jq_macos_arm64", | |
| executable = True, | |
| integrity = "sha256-C75hnmY+DeLFUL4v4NJA0HZ5nW+KZStw+gSuqKg2Loo=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-macos-arm64"], | |
| ) | |
| http_file( | |
| name = "jq_windows_amd64", | |
| executable = True, | |
| integrity = "sha256-6+zYQLpH779mgihoF4zHIaFRBgk396xAbj0xvQFb3pQ=", | |
| urls = ["https://github.com/jqlang/jq/releases/download/jq-1.5/jq-win64.exe"], | |
| ) | |
| async_profiler_repos = use_extension("//:repositories.bzl", "async_profiler_repos") | |
| use_repo( | |
| async_profiler_repos, | |
| "async_profiler", | |
| "async_profiler_linux_arm64", | |
| "async_profiler_linux_x64", | |
| "async_profiler_macos", | |
| ) | |
| # ========================================= | |
| # Other Bazel testing dependencies | |
| # ========================================= | |
| bazel_dep(name = "bazel_ci_rules", version = "2.1.1") | |
| bazel_dep(name = "rules_fuzzing", version = "0.5.2") | |
| bazel_dep(name = "wabt", version = "1.0.37") | |
| rbe = use_extension("@bazel_ci_rules//:rbe_config.bzl", "rbe_config_extension") | |
| rbe.config( | |
| name = "rbe_ubuntu2404", | |
| preset = "ubuntu2404", | |
| ) | |
| use_repo(rbe, "rbe_ubuntu2404") | |
| list_source_repository = use_repo_rule("//src/test/shell/bazel:list_source_repository.bzl", "list_source_repository") | |
| list_source_repository(name = "local_bazel_source_list") | |
| winsdk_configure = use_repo_rule("//src/main/res:winsdk_configure.bzl", "winsdk_configure") | |
| winsdk_configure(name = "local_config_winsdk") | |
| # /usr/local/kythe is setup on Bazel CI machines | |
| local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository") | |
| local_repository( | |
| name = "kythe_release", | |
| path = "/usr/local/kythe", | |
| ) | |
| remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension") | |
| use_repo(remote_coverage_tools_extension, "remote_coverage_tools") | |
| # ========================================= | |
| # Register platforms & toolchains | |
| # ========================================= | |
| register_execution_platforms("//:default_host_platform") | |
| register_toolchains("@rules_python//python:autodetecting_toolchain") | |
| register_toolchains("@local_config_winsdk//:all") | |
| register_toolchains("//src/main/res:empty_rc_toolchain") | |
| register_toolchains("@graalvm_toolchains//:gvm") |