From 000585f3a5393184e05037c00484996729a48dce Mon Sep 17 00:00:00 2001 From: hvadehra Date: Thu, 17 Oct 2024 10:44:40 +0200 Subject: [PATCH 01/11] [7.x] Update CI config (#234) - Fix Bazel@HEAD to the bazel version at time of branch cut - Use Bazel 7.3.2 for Bazel 7.x --- .bazelci/presubmit.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 179245e5..a879bf32 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -23,15 +23,14 @@ buildifier: latest tasks: # TODO: add config for 8.0.0 once released # Bazel 7.x -# TODO: fix versions after 7.4.0 ubuntu2004: name: "Bazel 7.x" - bazel: "9e3fa2a2e98db4aa10918a981325cfa9473e4ed8" + bazel: "7.3.2" build_targets: *build_targets test_targets: *test_targets ubuntu2004_integration: name: "Bazel 7.x Integration" - bazel: "9e3fa2a2e98db4aa10918a981325cfa9473e4ed8" + bazel: "7.3.2" platform: ubuntu2004 working_directory: "test/repo" shell_commands: @@ -42,21 +41,21 @@ tasks: - "@rules_java//java/..." macos: name: "Bazel 7.x" - bazel: "9e3fa2a2e98db4aa10918a981325cfa9473e4ed8" + bazel: "7.3.2" build_targets: *build_targets windows: name: "Bazel 7.x" - bazel: "9e3fa2a2e98db4aa10918a981325cfa9473e4ed8" + bazel: "7.3.2" build_targets: *build_targets # Bazel@HEAD ubuntu2004_head: name: "Bazel@HEAD" - bazel: last_green + bazel: "544e23503e4c109335b12bfe9168a6a39c81c5b9" platform: ubuntu2004 build_targets: *build_targets ubuntu2004_integration_head: name: "Bazel@HEAD Integration" - bazel: last_green + bazel: "544e23503e4c109335b12bfe9168a6a39c81c5b9" platform: ubuntu2004 working_directory: "test/repo" shell_commands: @@ -67,12 +66,12 @@ tasks: - "@rules_java//java/..." macos_head: name: "Bazel@HEAD" - bazel: last_green + bazel: "544e23503e4c109335b12bfe9168a6a39c81c5b9" platform: macos build_targets: *build_targets windows_head: name: "Bazel@HEAD" - bazel: last_green + bazel: "544e23503e4c109335b12bfe9168a6a39c81c5b9" platform: windows build_targets: *build_targets # Bazel 6.x From 8b3516482d9325f6777d858f8f6d9b118aa2481c Mon Sep 17 00:00:00 2001 From: hvadehra Date: Thu, 17 Oct 2024 10:49:59 +0200 Subject: [PATCH 02/11] [7.x] Fix `auto_create_deploy_jars` in `java_binary` for IntelliJ (#235) See https://github.com/bazelbuild/rules_java/issues/230 PiperOrigin-RevId: 683574444 Change-Id: I4d1fe8e90392c37cc873ad97f079c9f3d9b401d5 (cherry picked from commit 071069d0f20b1e39e11de5779947af366ac828c1) --- java/common/rules/impl/java_binary_impl.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/common/rules/impl/java_binary_impl.bzl b/java/common/rules/impl/java_binary_impl.bzl index 8d7e2ef9..078d9d37 100644 --- a/java/common/rules/impl/java_binary_impl.bzl +++ b/java/common/rules/impl/java_binary_impl.bzl @@ -447,7 +447,7 @@ def _auto_create_deploy_jar(ctx, info, launcher_info, main_class, coverage_main_ resources = java_attrs.resources, classpath_resources = java_attrs.classpath_resources, runtime_classpath = runtime_classpath, - manifest_lines = info.manifest_lines, + manifest_lines = [], build_info_files = [], build_target = str(ctx.label), output = output, From 8043af01d1542b3a8dfb530e91ba563e24ebc93f Mon Sep 17 00:00:00 2001 From: Ivo List Date: Thu, 17 Oct 2024 10:51:09 +0200 Subject: [PATCH 03/11] [7.x] Backport ProguardSpecInfo (#232) Starlark implementation makes it possible to use the provider without enabling `--experimental_google_legacy_api`. Tested: https://github.com/protocolbuffers/protobuf/pull/18861 --- java/common/proguard_spec_info.bzl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/java/common/proguard_spec_info.bzl b/java/common/proguard_spec_info.bzl index a57a0ed7..b2a591a2 100644 --- a/java/common/proguard_spec_info.bzl +++ b/java/common/proguard_spec_info.bzl @@ -13,4 +13,14 @@ # limitations under the License. """ProguardSpecInfo provider""" -ProguardSpecInfo = ProguardSpecProvider +def _proguard_spec_info_init(specs): + # The constructor supports positional parameter, i.e ProguardSpecInfo([file]) + return {"specs": specs} + +ProguardSpecInfo, _ = provider( + doc = "Information about proguard specs for Android binaries.", + fields = { + "specs": "A list of proguard specs files", + }, + init = _proguard_spec_info_init, +) From 2a9bd746974f6c94b159821d75130ad43e6b2970 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Thu, 17 Oct 2024 10:54:45 +0200 Subject: [PATCH 04/11] [7.x] Release `rules_java` `v7.12.2` (#236) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index fa5b11d8..8beb00c5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "rules_java", - version = "7.12.1", + version = "7.12.2", bazel_compatibility = [">=6.2.0"], compatibility_level = 1, ) From b64eb7dee72877e7221a0b14abff0332a4aadfe7 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Tue, 3 Dec 2024 11:51:16 +0100 Subject: [PATCH 05/11] [7.x] Revert `bootstrap_runtime_toolchain_type` changes (#247) Copybara Import from https://github.com/bazelbuild/rules_java/pull/246 BEGIN_PUBLIC Revert `bootstrap_runtime_toolchain_type` changes (#246) This reverts the relevant bits from bcc506228f3ac2c6a811c3414329d8727883685e and 30ecf3ff. The minimum supported Bazel version is now 6.4.0 which includes the type in `@bazel_tools`. Closes #246 END_PUBLIC COPYBARA_INTEGRATE_REVIEW=https://github.com/bazelbuild/rules_java/pull/246 from bazelbuild:hvd_tests_for_bootclasspath b666dc289edac950f006b81452193a4dcc91592a PiperOrigin-RevId: 702260069 Change-Id: Ie64994873a7b5609d4fb8b12a2472c82eb71493b (cherry picked from commit 4206c536c77c4f1ec9a918987d31a3c528e5c0b4) Conflicts: .bazelci/presubmit.yml MODULE.bazel test/repo/WORKSPACE --- MODULE.bazel | 2 +- test/repo/BUILD.bazel | 1 + toolchains/BUILD | 4 ++-- toolchains/default_java_toolchain.bzl | 2 +- toolchains/local_java_repository.bzl | 4 ++-- toolchains/remote_java_repository.bzl | 2 +- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 8beb00c5..4ed066d1 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,7 +1,7 @@ module( name = "rules_java", version = "7.12.2", - bazel_compatibility = [">=6.2.0"], + bazel_compatibility = [">=6.4.0"], compatibility_level = 1, ) diff --git a/test/repo/BUILD.bazel b/test/repo/BUILD.bazel index 6b7da400..c3370b03 100644 --- a/test/repo/BUILD.bazel +++ b/test/repo/BUILD.bazel @@ -14,4 +14,5 @@ java_binary( default_java_toolchain( name = "my_funky_toolchain", + bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"], ) diff --git a/toolchains/BUILD b/toolchains/BUILD index f78c3b9e..b47360ea 100644 --- a/toolchains/BUILD +++ b/toolchains/BUILD @@ -66,8 +66,8 @@ filegroup( # # Toolchains of this type are only consumed internally by the bootclasspath rule and should not be # accessed from Starlark. - -toolchain_type(name = "bootstrap_runtime_toolchain_type") +# TODO: migrate away from using @bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type ? +# toolchain_type(name = "bootstrap_runtime_toolchain_type") # Points to toolchain[":runtime_toolchain_type"] (was :legacy_current_java_runtime) java_runtime_alias(name = "current_java_runtime") diff --git a/toolchains/default_java_toolchain.bzl b/toolchains/default_java_toolchain.bzl index a92a1f93..1f8eec9c 100644 --- a/toolchains/default_java_toolchain.bzl +++ b/toolchains/default_java_toolchain.bzl @@ -211,7 +211,7 @@ def java_runtime_files(name, srcs): tags = ["manual"], ) -_JAVA_BOOTSTRAP_RUNTIME_TOOLCHAIN_TYPE = Label("//toolchains:bootstrap_runtime_toolchain_type") +_JAVA_BOOTSTRAP_RUNTIME_TOOLCHAIN_TYPE = Label("@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type") # Opt the Java bootstrap actions into path mapping: # https://github.com/bazelbuild/bazel/commit/a239ea84832f18ee8706682145e9595e71b39680 diff --git a/toolchains/local_java_repository.bzl b/toolchains/local_java_repository.bzl index e0123673..ae5f82f8 100644 --- a/toolchains/local_java_repository.bzl +++ b/toolchains/local_java_repository.bzl @@ -110,7 +110,7 @@ def local_java_runtime(name, java_home, version, runtime_name = None, visibility native.toolchain( name = "bootstrap_runtime_toolchain_definition", target_settings = [":%s_settings_alias" % name], - toolchain_type = Label("//toolchains:bootstrap_runtime_toolchain_type"), + toolchain_type = Label("@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type"), toolchain = runtime_name, ) @@ -268,7 +268,7 @@ toolchain( toolchain( name = "bootstrap_runtime_toolchain_definition", target_settings = [":localjdk_setting"], - toolchain_type = "@rules_java//toolchains:bootstrap_runtime_toolchain_type", + toolchain_type = "@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type", toolchain = ":jdk", ) ''' diff --git a/toolchains/remote_java_repository.bzl b/toolchains/remote_java_repository.bzl index a2535d3c..65bbe482 100644 --- a/toolchains/remote_java_repository.bzl +++ b/toolchains/remote_java_repository.bzl @@ -89,7 +89,7 @@ toolchain( # the same configuration, this constraint will not result in toolchain resolution failures. exec_compatible_with = {target_compatible_with}, target_settings = [":version_or_prefix_version_setting"], - toolchain_type = "@rules_java//toolchains:bootstrap_runtime_toolchain_type", + toolchain_type = "@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type", toolchain = "{toolchain}", ) """.format( From 0344771cd71913496c3222168aba2f9f8657a707 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Tue, 3 Dec 2024 12:01:06 +0100 Subject: [PATCH 06/11] [7.x] Release `@rules_java` `v7.12.3` (#248) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 4ed066d1..801721a0 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "rules_java", - version = "7.12.2", + version = "7.12.3", bazel_compatibility = [">=6.4.0"], compatibility_level = 1, ) From 0199be510be77c3c895e30569e4d463c7bb9c470 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Wed, 11 Dec 2024 13:27:00 +0100 Subject: [PATCH 07/11] [7.x] Remove `load()`s of `//java:defs.bzl` (#252) This should make it possible to pin `@rules_java` to `7.x` with Bazel 8 in projects that don't actually require/use `@rules_java`. Otherwise, the `register_toolchains()` call in `MODULE.bazel` fails with Bazel 8 due to `native.java_proto_library` and `native.java_lite_proto_library` in `defs.bzl` --- toolchains/default_java_toolchain.bzl | 2 +- toolchains/jdk_build_file.bzl | 2 +- toolchains/local_java_repository.bzl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/toolchains/default_java_toolchain.bzl b/toolchains/default_java_toolchain.bzl index 1f8eec9c..e2e94388 100644 --- a/toolchains/default_java_toolchain.bzl +++ b/toolchains/default_java_toolchain.bzl @@ -14,8 +14,8 @@ """Rules for defining default_java_toolchain""" -load("//java:defs.bzl", "java_toolchain") load("//java/common:java_common.bzl", "java_common") +load("//java/toolchains:java_toolchain.bzl", "java_toolchain") # JVM options, without patching java.compiler and jdk.compiler modules. BASE_JDK9_JVM_OPTS = [ diff --git a/toolchains/jdk_build_file.bzl b/toolchains/jdk_build_file.bzl index 1e08f376..c0ed1608 100644 --- a/toolchains/jdk_build_file.bzl +++ b/toolchains/jdk_build_file.bzl @@ -14,7 +14,7 @@ """A templated BUILD file for Java repositories.""" -JDK_BUILD_TEMPLATE = """load("@rules_java//java:defs.bzl", "java_runtime") +JDK_BUILD_TEMPLATE = """load("@rules_java//java/toolchains:java_runtime.bzl", "java_runtime") package(default_visibility = ["//visibility:public"]) diff --git a/toolchains/local_java_repository.bzl b/toolchains/local_java_repository.bzl index ae5f82f8..627f8ab8 100644 --- a/toolchains/local_java_repository.bzl +++ b/toolchains/local_java_repository.bzl @@ -14,7 +14,7 @@ """Rules for importing a local JDK.""" -load("//java:defs.bzl", "java_runtime") +load("//java/toolchains:java_runtime.bzl", "java_runtime") load(":default_java_toolchain.bzl", "default_java_toolchain") def _detect_java_version(repository_ctx, java_bin): From ac918f305a89097a8b80f4332ec27e545c492882 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Wed, 11 Dec 2024 13:29:46 +0100 Subject: [PATCH 08/11] [7.x] Release `rules_java` `v7.12.4` (#253) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 801721a0..1d20ceea 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "rules_java", - version = "7.12.3", + version = "7.12.4", bazel_compatibility = [">=6.4.0"], compatibility_level = 1, ) From d40a177b8a2d5cfb632609c142b30e1fca17bfc1 Mon Sep 17 00:00:00 2001 From: hvadehra Date: Wed, 11 Dec 2024 13:42:52 +0100 Subject: [PATCH 09/11] [7.x] Pin bazel version to 7.4.1 (#254) We can't build `@rules_java` `7.x` with Bazel 8 since `native.java_*` are all gone --- .bazelversion | 1 + 1 file changed, 1 insertion(+) create mode 100644 .bazelversion diff --git a/.bazelversion b/.bazelversion new file mode 100644 index 00000000..6b0e58e7 --- /dev/null +++ b/.bazelversion @@ -0,0 +1 @@ +7.4.1 \ No newline at end of file From 5bc7c03c8e24140663c8250a34f967b7e82036b8 Mon Sep 17 00:00:00 2001 From: Levi Zim Date: Tue, 25 Mar 2025 20:06:37 +0800 Subject: [PATCH 10/11] [7.x] Add JDK 21 toolchain for `linux_riscv64` (#282) This is a cherry-pick of #258 into 7.x. A new release would be appreciated as building bazel 7.x on riscv64 would require this. --------- Co-authored-by: Jack Wolfard <31635014+JackWolfard@users.noreply.github.com> --- .bazelci/presubmit.yml | 2 +- MODULE.bazel | 1 + java/bazel/repositories_util.bzl | 2 +- java/repositories.bzl | 8 ++++++++ test/repo/MODULE.bazel | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index a879bf32..27611c63 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -18,7 +18,7 @@ build_targets_bzlmod: &build_targets_bzlmod test_targets: &test_targets - "//test/..." -buildifier: latest +buildifier: 7.3.1 tasks: # TODO: add config for 8.0.0 once released diff --git a/MODULE.bazel b/MODULE.bazel index 1d20ceea..65548faf 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -72,6 +72,7 @@ JDKS = { "linux", "linux_aarch64", "linux_ppc64le", + "linux_riscv64", "linux_s390x", "macos", "macos_aarch64", diff --git a/java/bazel/repositories_util.bzl b/java/bazel/repositories_util.bzl index 7e9efbd2..fce641dc 100644 --- a/java/bazel/repositories_util.bzl +++ b/java/bazel/repositories_util.bzl @@ -82,7 +82,7 @@ _RELEASE_CONFIGS = { "adoptium": { "release": "21.0.4+7", "platforms": { - "linux": ["ppc", "s390x"], + "linux": ["ppc", "riscv64", "s390x"], }, }, }, diff --git a/java/repositories.bzl b/java/repositories.bzl index 27f4f85d..195bfd3c 100644 --- a/java/repositories.bzl +++ b/java/repositories.bzl @@ -308,6 +308,14 @@ _REMOTE_JDK_CONFIGS_LIST = [ urls = ["https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4+7/OpenJDK21U-jdk_ppc64le_linux_hotspot_21.0.4_7.tar.gz", "https://mirror.bazel.build/github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4+7/OpenJDK21U-jdk_ppc64le_linux_hotspot_21.0.4_7.tar.gz"], version = "21", ), + struct( + name = "remotejdk21_linux_riscv64", + target_compatible_with = ["@platforms//os:linux", "@platforms//cpu:riscv64"], + sha256 = "b04fd7f52d18268a935f1a7144dae802b25db600ec97156ddd46b3100cbd13da", + strip_prefix = "jdk-21.0.4+7", + urls = ["https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4+7/OpenJDK21U-jdk_riscv64_linux_hotspot_21.0.4_7.tar.gz", "https://mirror.bazel.build/github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4+7/OpenJDK21U-jdk_riscv64_linux_hotspot_21.0.4_7.tar.gz"], + version = "21", + ), struct( name = "remotejdk21_linux_s390x", target_compatible_with = ["@platforms//os:linux", "@platforms//cpu:s390x"], diff --git a/test/repo/MODULE.bazel b/test/repo/MODULE.bazel index c9729b4d..96d0768a 100644 --- a/test/repo/MODULE.bazel +++ b/test/repo/MODULE.bazel @@ -30,6 +30,7 @@ use_repo( "remotejdk17_win", "remotejdk17_win_arm64", "remotejdk21_linux", + "remotejdk21_linux_riscv64", "remotejdk21_macos", "remotejdk21_macos_aarch64", "remotejdk21_win", From 9b244564186789d91db7c2b331b6e039d82c537f Mon Sep 17 00:00:00 2001 From: hvadehra Date: Tue, 25 Mar 2025 13:26:00 +0100 Subject: [PATCH 11/11] [7.x] Release `@rules_java` `v7.12.5` (#283) --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 65548faf..17b59a15 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,6 @@ module( name = "rules_java", - version = "7.12.4", + version = "7.12.5", bazel_compatibility = [">=6.4.0"], compatibility_level = 1, )