Prepare for Bazel Bzlmod build Working towards: https://github.com/bazelbuild/bazel/issues/18957 - Updated MODULE.bazel and distdir_deps.bzl to match all dependencies - Introduced the repo_cach_tar rule to help with boostrap build later. - Introduced the test_repo_extension extension to prefetch testing dependencies. - Use --experimental_downloader_config to overcome potential github.com instability. RELNOTES: None. PiperOrigin-RevId: 563045981 Change-Id: I8726a838bfe55908d87d17063121863f604e6211
diff --git a/MODULE.bazel b/MODULE.bazel index 8950333..bc299bf 100644 --- a/MODULE.bazel +++ b/MODULE.bazel
@@ -6,12 +6,16 @@ repo_name = "io_bazel", ) +# ========================================= +# Bazel module dependencies +# ========================================= + bazel_dep(name = "rules_license", version = "0.0.7") bazel_dep(name = "bazel_skylib", version = "1.4.1") bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf") bazel_dep(name = "grpc", version = "1.48.1.bcr.1", repo_name = "com_github_grpc_grpc") bazel_dep(name = "platforms", version = "0.0.7") -bazel_dep(name = "rules_pkg", version = "0.7.0") +bazel_dep(name = "rules_pkg", version = "0.9.1") bazel_dep(name = "stardoc", version = "0.5.3", repo_name = "io_bazel_skydoc") bazel_dep(name = "zstd-jni", version = "1.5.2-3.bcr.1") bazel_dep(name = "blake3", version = "1.3.3") @@ -22,6 +26,7 @@ bazel_dep(name = "rules_jvm_external", version = "5.2") bazel_dep(name = "rules_python", version = "0.24.0") bazel_dep(name = "rules_testing", version = "0.0.4") +bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest") # TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR. bazel_dep(name = "remoteapis", version = "") @@ -43,6 +48,14 @@ path = "./third_party/googleapis", ) +# The following Bazel modules are not direct dependencies for building Bazel, +# but are required for visibility from DIST_ARCHIVE_REPOS in distdir_deps.bzl +bazel_dep(name = "apple_support", version = "1.5.0") +bazel_dep(name = "abseil-cpp", version = "20220623.1") +bazel_dep(name = "c-ares", version = "1.15.0") +bazel_dep(name = "rules_go", version = "0.39.1") +bazel_dep(name = "upb", version = "0.0.0-20220923-a547704") + # ========================================= # Java dependencies # ========================================= @@ -60,41 +73,35 @@ use_repo(maven, "maven") java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") -use_repo(java_toolchains, "local_jdk") - -# ========================================= -# Other Bazel internal dependencies -# - embedded JDKs -# - repos for Debian build -# ========================================= - -bazel_internal_deps = use_extension("//:extensions.bzl", "bazel_internal_deps") -use_repo( - bazel_internal_deps, - "debian_cc_deps", - "openjdk_linux_aarch64_vanilla", - "openjdk_linux_ppc64le_vanilla", - "openjdk_linux_s390x_vanilla", - "openjdk_linux_vanilla", - "openjdk_macos_aarch64_vanilla", - "openjdk_macos_x86_64_vanilla", - "openjdk_win_arm64_vanilla", - "openjdk_win_vanilla", +use_repo(java_toolchains, + "local_jdk", + # The following are required for visibility from TEST_REPOS in distdir_deps.bzl + "remote_java_tools", + "remote_java_tools_darwin_x86_64", + "remote_java_tools_darwin_arm64", + "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", + "remotejdk20_linux", + "remotejdk20_macos", + "remotejdk20_macos_aarch64", + "remotejdk20_win", ) # ========================================= -# Register platforms & toolchains -# ========================================= - -register_execution_platforms("//:default_host_platform") - -register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain") - -register_toolchains("@local_config_winsdk//:all") - -register_toolchains("//src/main/res:empty_rc_toolchain") - -# ========================================= # Python dependencies # ========================================= @@ -110,24 +117,63 @@ use_repo(pip, "bazel_pip_dev_deps") # ========================================= -# Other dev dependencies +# Other Bazel build dependencies # ========================================= -bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest") - -bazel_dev_deps = use_extension("//:extensions.bzl", "bazel_dev_deps") +bazel_build_deps = use_extension("//:extensions.bzl", "bazel_build_deps") use_repo( - bazel_dev_deps, + bazel_build_deps, + "bootstrap_repo_cache", + "debian_cc_deps", + "openjdk_linux_aarch64_vanilla", + "openjdk_linux_ppc64le_vanilla", + "openjdk_linux_s390x_vanilla", + "openjdk_linux_vanilla", + "openjdk_macos_aarch64_vanilla", + "openjdk_macos_x86_64_vanilla", + "openjdk_win_arm64_vanilla", + "openjdk_win_vanilla", +) + +# Required only by `--extra_toolchains=@local_config_cc//:cc-toolchain-arm64_windows` from .bazelrc +cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") +use_repo(cc_configure, "local_config_cc") + +# ========================================= +# Other Bazel testing dependencies +# ========================================= + +bazel_test_deps = use_extension("//:extensions.bzl", "bazel_test_deps") +use_repo( + bazel_test_deps, "local_bazel_source_list", "local_config_winsdk", "bazelci_rules", ) +test_repo_extension = use_extension("//:extensions.bzl", "test_repo_extension") +use_repo(test_repo_extension, "test_repos") + bazel_rbe_deps = use_extension("//:rbe_extension.bzl", "bazel_rbe_deps") use_repo(bazel_rbe_deps, "rbe_ubuntu1804_java11") +remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension") +use_repo(remote_coverage_tools_extension, "remote_coverage_tools") + # ========================================= -# Android tools Java dependencies +# Register platforms & toolchains +# ========================================= + +register_execution_platforms("//:default_host_platform") + +register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain") + +register_toolchains("@local_config_winsdk//:all") + +register_toolchains("//src/main/res:empty_rc_toolchain") + +# ========================================= +# Android tools dependencies # ========================================= maven_android = use_extension("@rules_jvm_external//:extensions.bzl", "maven") @@ -145,8 +191,7 @@ use_repo(maven_android, "maven_android") bazel_android_deps = use_extension("//:extensions.bzl", "bazel_android_deps") -use_repo( - bazel_android_deps, - "android_gmaven_r8", - "desugar_jdk_libs", -) +use_repo(bazel_android_deps, "desugar_jdk_libs") + +remote_android_extensions = use_extension("//tools/android:android_extensions.bzl", "remote_android_tools_extensions") +use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")