diff --git a/.bazelci/postsubmit_bzlmod.yml b/.bazelci/postsubmit_bzlmod.yml new file mode 100644 index 00000000000000..b8bf1c0fccb0f4 --- /dev/null +++ b/.bazelci/postsubmit_bzlmod.yml @@ -0,0 +1,38 @@ +--- +tasks: + centos7_java11_devtoolset10: + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" + ubuntu1804: + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" + ubuntu1804_clang: + platform: ubuntu1804 + environment: + CC: clang + CC_CONFIGURE_DEBUG: 1 + name: "Clang" + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" + ubuntu2004: + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" + macos: + xcode_version: "13.0" + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" + windows: + build_flags: + - "--config=bzlmod" + build_targets: + - "//src:bazel_nojdk" diff --git a/.bazelrc b/.bazelrc index 0fb596e3563351..cb59636ec9085b 100644 --- a/.bazelrc +++ b/.bazelrc @@ -29,5 +29,11 @@ build:remote --config=ubuntu1804_java11 build:macos --macos_minimum_os=10.10 +# Enable Bzlmod +build:bzlmod --experimental_enable_bzlmod +# TODO(pcloudy): The following should be removed after fixing https://github.com/bazelbuild/bazel/issues/14279 +build:bzlmod --crosstool_top=@rules_cc.0.0.1.cc_configure.local_config_cc//:toolchain +build:bzlmod --xcode_version_config=@rules_cc.0.0.1.cc_configure.local_config_xcode//:host_xcodes + # User-specific .bazelrc try-import user.bazelrc diff --git a/MODULE.bazel b/MODULE.bazel index be248964c6d59b..faf8c56abf0516 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -13,6 +13,7 @@ bazel_dep(name = "grpc", version = "1.41.0", repo_name = "com_github_grpc_grpc") bazel_dep(name = "platforms", version = "0.0.4") bazel_dep(name = "rules_pkg", version = "0.5.1") bazel_dep(name = "stardoc", version = "0.5.0", repo_name = "io_bazel_skydoc") +bazel_dep(name = "zstd-jni", version = "1.5.0-4") # TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR. bazel_dep(name = "remoteapis", version = "") @@ -27,10 +28,7 @@ local_path_override( ) # The following are required when building without WORKSPACE SUFFIX -# TODO(pcloudy): Make building Bazel work without WORKSPACE SUFFIX. -# This requires migrating all dependencies and toolchain registration defined in -# WORKSPACE to their corresponding Bazel modules. Eg. remote jdks, java tools -# and java toolchain registrations all should be moved to rules_java. bazel_dep(name = "rules_cc", version = "0.0.1") -bazel_dep(name = "rules_java", version = "4.0.0") +bazel_dep(name = "rules_python", version = "0.4.0") +bazel_dep(name = "rules_java", version = "5.0.0") bazel_dep(name = "rules_proto", version = "4.0.0") diff --git a/WORKSPACE.bzlmod b/WORKSPACE.bzlmod index b58b4a1606a9aa..6725143a7f59f7 100644 --- a/WORKSPACE.bzlmod +++ b/WORKSPACE.bzlmod @@ -1,6 +1,6 @@ -# When using the WORKSPACE.bzlmod, no WORKSPACE prefix or suffix are added. -# Therefore, we need to keep some legacy content to make the build work, eventually this -# file should be empty after fully migrating to Bzlmod. +# This file will replace the content of the WORKSPACE file when Bzlmod is enabled +# No WORKSPACE prefix or suffix are added. +# Eventually this file should be empty after fully migrating to Bzlmod. workspace(name = "io_bazel") # Required by @com_google_protobuf//java/util:util in protobuf 3.19.0 @@ -30,395 +30,3 @@ bind( name = "guava", actual = "//third_party:guava", ) - -########### Required by cc rules, should be moved to rules_cc. ########### -# Copied from cc_configure.WORKSPACE -load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure") -cc_configure() - -########### Required on cc rules on macos, should be moved to rules_cc? ########### -# Copied from xcode_configure.WORKSPACE -load("@bazel_tools//tools/osx:xcode_configure.bzl", "xcode_configure") -xcode_configure("@bazel_tools//tools/osx:xcode_locator.m") - -########### Required by python rules, should be moved to rules_python. ############ -# Copied from python.WORKSPACE -register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain") - -############ Required by java rules, should be moved to rules_java. ############ -# Copied from jdk.WORKSPACE -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository") -load("@bazel_tools//tools/jdk:remote_java_repository.bzl", "remote_java_repository") - -maybe( - local_java_repository, - name = "local_jdk", - java_home = DEFAULT_SYSTEM_JAVABASE, - build_file = "@bazel_tools//tools/jdk:jdk.BUILD", -) - -# OpenJDK distributions that should only be downloaded on demand (e.g. when -# building a java_library or a genrule that uses java make variables). -# This will allow us to stop bundling the full JDK with Bazel. -# Note that while these are currently the same as the openjdk_* rules in -# Bazel's WORKSPACE file, but they don't have to be the same. - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_linux", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - ], - sha256 = "b8e8a63b79bc312aa90f3558edbea59e71495ef1a9c340e38900dd28a1c579f3", - strip_prefix = "zulu11.50.19-ca-jdk11.0.12-linux_x64", - urls = [ - "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_x64.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_linux_aarch64", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:aarch64", - ], - sha256 = "61254688067454d3ccf0ef25993b5dcab7b56c8129e53b73566c28a8dd4d48fb", - strip_prefix = "zulu11.50.19-ca-jdk11.0.12-linux_aarch64", - urls = [ - "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_aarch64.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_linux_ppc64le", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:ppc", - ], - sha256 = "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a", - strip_prefix = "jdk-11.0.7+10", - urls = [ - "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz", - "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_linux_s390x", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:s390x", - ], - sha256 = "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059", - strip_prefix = "jdk-11.0.7+10", - urls = [ - "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz", - "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_macos", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:x86_64", - ], - sha256 = "0b8c8b7cf89c7c55b7e2239b47201d704e8d2170884875b00f3103cf0662d6d7", - strip_prefix = "zulu11.50.19-ca-jdk11.0.12-macosx_x64", - urls = [ - "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-macosx_x64.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_macos_aarch64", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:aarch64", - ], - sha256 = "e908a0b4c0da08d41c3e19230f819b364ff2e5f1dafd62d2cf991a85a34d3a17", - strip_prefix = "zulu11.50.19-ca-jdk11.0.12-macosx_aarch64", - urls = [ - "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-macosx_aarch64.tar.gz", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk11_win", - exec_compatible_with = [ - "@platforms//os:windows", - "@platforms//cpu:x86_64", - ], - sha256 = "42ae65e75d615a3f06a674978e1fa85fdf078cad94e553fee3e779b2b42bb015", - strip_prefix = "zulu11.50.19-ca-jdk11.0.12-win_x64", - urls = [ - "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-win_x64.zip", - ], - version = "11", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk15_linux", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - ], - sha256 = "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad", - strip_prefix = "zulu15.27.17-ca-jdk15.0.0-linux_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz", - ], - version = "15", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk15_macos", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:x86_64", - ], - sha256 = "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482", - strip_prefix = "zulu15.27.17-ca-jdk15.0.0-macosx_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz", - ], - version = "15", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk15_macos_aarch64", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:aarch64", - ], - sha256 = "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5", - strip_prefix = "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz", - ], - version = "15", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk15_win", - exec_compatible_with = [ - "@platforms//os:windows", - "@platforms//cpu:x86_64", - ], - sha256 = "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6", - strip_prefix = "zulu15.27.17-ca-jdk15.0.0-win_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip", - ], - version = "15", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk16_linux", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - ], - sha256 = "236b5ea97aff3cb312e743848d7efa77faf305170e41371a732ca93c1b797665", - strip_prefix = "zulu16.28.11-ca-jdk16.0.0-linux_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz", - ], - version = "16", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk16_macos", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:x86_64", - ], - sha256 = "6d47ef22dc56ce1f5a102ed39e21d9a97320f0bb786818e2c686393109d79bc5", - strip_prefix = "zulu16.28.11-ca-jdk16.0.0-macosx_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_x64.tar.gz", - ], - version = "16", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk16_macos_aarch64", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:aarch64", - ], - sha256 = "c92131e83bc71474850e667bc4e05fca33662b8feb009a0547aa14e76b40e890", - strip_prefix = "zulu16.28.11-ca-jdk16.0.0-macosx_aarch64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_aarch64.tar.gz", - ], - version = "16", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk16_win", - exec_compatible_with = [ - "@platforms//os:windows", - "@platforms//cpu:x86_64", - ], - sha256 = "6cbf98ada27476526a5f6dff79fd5f2c15e2f671818e503bdf741eb6c8fed3d4", - strip_prefix = "zulu16.28.11-ca-jdk16.0.0-win_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-win_x64.zip", - ], - version = "16", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk17_linux", - exec_compatible_with = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - ], - sha256 = "37c4f8e48536cceae8c6c20250d6c385e176972532fd35759fa7d6015c965f56", - strip_prefix = "zulu17.28.13-ca-jdk17.0.0-linux_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz", - ], - version = "17", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk17_macos", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:x86_64", - ], - sha256 = "6029b1fe6853cecad22ab99ac0b3bb4fb8c903dd2edefa91c3abc89755bbd47d", - strip_prefix = "zulu17.28.13-ca-jdk17.0.0-macosx_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_x64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_x64.tar.gz", - ], - version = "17", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk17_macos_aarch64", - exec_compatible_with = [ - "@platforms//os:macos", - "@platforms//cpu:aarch64", - ], - sha256 = "6b17f01f767ee7abf4704149ca4d86423aab9b16b68697b7d36e9b616846a8b0", - strip_prefix = "zulu17.28.13-ca-jdk17.0.0-macosx_aarch64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_aarch64.tar.gz", - "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_aarch64.tar.gz", - ], - version = "17", -) - -# This must be kept in sync with the top-level WORKSPACE file. -maybe( - remote_java_repository, - name = "remotejdk17_win", - exec_compatible_with = [ - "@platforms//os:windows", - "@platforms//cpu:x86_64", - ], - sha256 = "f4437011239f3f0031c794bb91c02a6350bc941d4196bdd19c9f157b491815a3", - strip_prefix = "zulu17.28.13-ca-jdk17.0.0-win_x64", - urls = [ - "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-win_x64.zip", - "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-win_x64.zip", - ], - version = "17", -) - -http_archive( - name = "remote_java_tools", - sha256 = "b763ee80e5754e593fd6d5be6d7343f905bc8b73d661d36d842b024ca11b6793", - urls = [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools-v11.5.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools-v11.5.zip", - ], -) - -http_archive( - name = "remote_java_tools_linux", - sha256 = "ae1eca4546eac6487c6e565f9b409536609c273207220c51e5c94f2a058a5a56", - urls = [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_linux-v11.5.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_linux-v11.5.zip", - ], -) - - -http_archive( - name = "remote_java_tools_windows", - sha256 = "36766802f7ec684cecb1a14c122428de6be9784e88419e2ab5912ad4b59a8c7d", - urls = [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_windows-v11.5.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_windows-v11.5.zip", - ], -) - -http_archive( - name = "remote_java_tools_darwin", - sha256 = "792bc1352e736073b152528175ed424687f86a9f6f5f461f07d8b26806762738", - urls = [ - "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_darwin-v11.5.zip", - "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_darwin-v11.5.zip", - ], -) - -register_toolchains("@bazel_tools//tools/jdk:all")