Skip to content

Commit 10c648f

Browse files
committed
Bump rules_java to 7.12.2
Updates almost all dependencies on `@bazel_tools//tools/jdk:` toolchain targets and `.bzl` files to corresponding targets and files in `@rules_java//toolchains:`. Part of bazel-contrib#1482 and bazel-contrib#1652. All dependencies on `@bazel_tools//tools/jdk:toolchain_type` remain, however, as there is not yet a corresponding target in `@rules_java//toolchains:`. Adds the `WORKSPACE` stanza recommended in the `rules_java` release notes, and removes our own calls to instantiate `rules_java` repos and to register `rules_java` toolchains. These changes are required to avoid build breakages when updating to `rules_scala` 7.10.0 and higher. All targets build and all tests pass under Bazel 6.5.0 and 7.4.1. --- I was on the right track in my analysis from bazel-contrib#1619 ("Bump to rules_java 7.9.0 for Bazel 7 compatibility" in the message for commit cd22d88). However, I thought we _shouldn't_ update any targets from `@bazel_tools//tools/jdk:` to `@rules_java//toolchains:`. That's why I thought we were stuck on `rules_java` 7.9.0. However, this comment from @fmeum made me think switching to `@rules_java//toolchains:` actually is the preferred approach: - bazelbuild/rules_java#214 (comment) So this is a potentially breaking change, but in the good kind of way, in that it requires an easy, future proof update.
1 parent 2f968fa commit 10c648f

File tree

18 files changed

+48
-48
lines changed

18 files changed

+48
-48
lines changed

WORKSPACE

+6-12
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ load("//scala:deps.bzl", "load_rules_dependencies")
55

66
load_rules_dependencies()
77

8+
load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
9+
10+
rules_java_dependencies()
11+
12+
rules_java_toolchains()
13+
814
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
915

1016
bazel_skylib_workspace()
@@ -130,16 +136,4 @@ load("//scala/private/extensions:dev_deps.bzl", "dev_deps_repositories")
130136

131137
dev_deps_repositories()
132138

133-
# Copied from bazel_tools/tools/jdk/remote_java_repository.bzl.
134-
[
135-
register_toolchains(
136-
"@remotejdk21_" + platform + "_toolchain_config_repo//:all",
137-
)
138-
for platform in [
139-
"linux",
140-
"macos",
141-
"win",
142-
]
143-
]
144-
145139
register_toolchains("//test/toolchains:java21_toolchain_definition")

jmh/jmh.bzl

+5-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ scala_generate_benchmark = rule(
6969
),
7070
),
7171
"runtime_jdk": attr.label(
72-
default = Label("@bazel_tools//tools/jdk:current_java_runtime"),
72+
default = Label("@rules_java//toolchains:current_java_runtime"),
7373
providers = [java_common.JavaRuntimeInfo],
7474
),
7575
},
@@ -90,7 +90,10 @@ def scala_benchmark_jmh(**kw):
9090
testonly = kw.get("testonly", False)
9191
scalacopts = kw.get("scalacopts", [])
9292
main_class = kw.get("main_class", "org.openjdk.jmh.Main")
93-
runtime_jdk = kw.get("runtime_jdk", "@bazel_tools//tools/jdk:current_java_runtime")
93+
runtime_jdk = kw.get(
94+
"runtime_jdk",
95+
"@rules_java//toolchains:current_java_runtime",
96+
)
9497

9598
scala_library(
9699
name = lib,

scala/deps.bzl

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ def load_rules_dependencies():
3636
http_archive,
3737
name = "rules_java",
3838
urls = [
39-
"https://github.com/bazelbuild/rules_java/releases/download/7.9.0/rules_java-7.9.0.tar.gz",
39+
"https://github.com/bazelbuild/rules_java/releases/download/7.12.2/rules_java-7.12.2.tar.gz",
4040
],
41-
sha256 = "41131de4417de70b9597e6ebd515168ed0ba843a325dc54a81b92d7af9a7b3ea",
41+
sha256 = "a9690bc00c538246880d5c83c233e4deb83fe885f54c21bb445eb8116a180b83",
4242
)
4343

4444
maybe(

scala/private/common_attributes.bzl

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ common_attrs_for_plugin_bootstrapping = {
2929
"resource_strip_prefix": attr.string(),
3030
"resource_jars": attr.label_list(allow_files = True),
3131
"java_compile_toolchain": attr.label(
32-
default = Label("@bazel_tools//tools/jdk:current_java_toolchain"),
32+
default = Label("@rules_java//toolchains:current_java_toolchain"),
3333
providers = [java_common.JavaToolchainInfo],
3434
),
3535
"scalacopts": attr.string_list(),
@@ -82,10 +82,10 @@ common_attrs.update({
8282

8383
implicit_deps = {
8484
"_java_runtime": attr.label(
85-
default = Label("@bazel_tools//tools/jdk:current_java_runtime"),
85+
default = Label("@rules_java//toolchains:current_java_runtime"),
8686
),
8787
"_java_host_runtime": attr.label(
88-
default = Label("@bazel_tools//tools/jdk:current_host_java_runtime"),
88+
default = Label("@rules_java//toolchains:current_host_java_runtime"),
8989
),
9090
"_scalac": attr.label(
9191
executable = True,

scala/private/extensions/dev_deps.bzl

-8
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
load("//scala:scala_cross_version.bzl", "default_maven_server_urls")
44
load("//scala:scala_maven_import_external.bzl", "java_import_external")
5-
load("//test/toolchains:jdk.bzl", "remote_jdk21_repositories")
65
load("//third_party/repositories:repositories.bzl", "repositories")
76
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
8-
load("@rules_java//java:repositories.bzl", "remote_jdk8_repos")
97

108
_BUILD_TOOLS_RELEASE = "5.1.0"
119

@@ -45,10 +43,6 @@ def dev_deps_repositories(
4543
testonly_ = True,
4644
)
4745

48-
# We need to select based on platform when we use these
49-
# https://github.com/bazelbuild/bazel/issues/11655
50-
remote_jdk8_repos()
51-
5246
repositories(
5347
fetch_sources = fetch_sources,
5448
for_artifact_ids = [
@@ -73,5 +67,3 @@ def dev_deps_repositories(
7367
],
7468
maven_servers = maven_servers,
7569
)
76-
77-
remote_jdk21_repositories()

scala/private/rule_impls.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"""Rules for supporting the Scala language."""
1515

1616
load("@bazel_skylib//lib:paths.bzl", "paths")
17-
load("@bazel_tools//tools/jdk:toolchain_utils.bzl", "find_java_toolchain")
17+
load("@rules_java//toolchains:toolchain_utils.bzl", "find_java_toolchain")
1818
load(":common.bzl", "rlocationpath_from_rootpath", _collect_plugin_paths = "collect_plugin_paths")
1919
load(":resources.bzl", _resource_paths = "paths")
2020

scala/private/rules/scala_binary.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ _scala_binary_attrs = {
5858
"classpath_resources": attr.label_list(allow_files = True),
5959
"jvm_flags": attr.string_list(),
6060
"runtime_jdk": attr.label(
61-
default = Label("@bazel_tools//tools/jdk:current_java_runtime"),
61+
default = Label("@rules_java//toolchains:current_java_runtime"),
6262
providers = [java_common.JavaRuntimeInfo],
6363
),
6464
}

scala/private/rules/scala_junit_test.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ _scala_junit_test_attrs = {
7979
),
8080
"jvm_flags": attr.string_list(),
8181
"runtime_jdk": attr.label(
82-
default = Label("@bazel_tools//tools/jdk:current_java_runtime"),
82+
default = Label("@rules_java//toolchains:current_java_runtime"),
8383
providers = [java_common.JavaRuntimeInfo],
8484
),
8585
"env": attr.string_dict(default = {}),

scala/scala_import.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ scala_import = rule(
146146
default = Label("@io_bazel_rules_scala//scala/settings:stamp_scala_import"),
147147
),
148148
"java_compile_toolchain": attr.label(
149-
default = Label("@bazel_tools//tools/jdk:current_java_toolchain"),
149+
default = Label("@rules_java//toolchains:current_java_toolchain"),
150150
),
151151
},
152152
toolchains = ["@bazel_tools//tools/jdk:toolchain_type"],

scala/scalafmt/phase_scalafmt_ext.bzl

+3-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ ext_scalafmt = {
2424
executable = True,
2525
),
2626
"_java_host_runtime": attr.label(
27-
default = Label("@bazel_tools//tools/jdk:current_host_java_runtime"),
27+
default = Label(
28+
"@rules_java//toolchains:current_host_java_runtime",
29+
),
2830
),
2931
"_runner": attr.label(
3032
allow_single_file = True,

scala_proto/private/scala_proto_aspect.bzl

+4-2
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,12 @@ def _scala_proto_aspect_impl(target, ctx):
209209
def make_scala_proto_aspect(*extras):
210210
attrs = {
211211
"_java_toolchain": attr.label(
212-
default = Label("@bazel_tools//tools/jdk:current_java_toolchain"),
212+
default = Label("@rules_java//toolchains:current_java_toolchain"),
213213
),
214214
"_java_host_runtime": attr.label(
215-
default = Label("@bazel_tools//tools/jdk:current_host_java_runtime"),
215+
default = Label(
216+
"@rules_java//toolchains:current_host_java_runtime",
217+
),
216218
),
217219
}
218220
return aspect(

test/BUILD

+3-3
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ scala_binary(
479479
name = "scala_binary_jdk_11",
480480
srcs = ["ScalaBinaryJdk11.scala"],
481481
main_class = "scalarules.test.ScalaBinaryJdk11",
482-
runtime_jdk = "@bazel_tools//tools/jdk:remote_jdk11",
482+
runtime_jdk = "@rules_java//toolchains:remote_jdk11",
483483
)
484484

485485
# Make sure scala_library respects java_compile_toolchain during builds
@@ -782,14 +782,14 @@ scala_library(
782782
"src/main/scala/scalarules/test/junit/runtime_platform/JunitRuntimePlatformTest.java",
783783
],
784784
# make sure java compilation toolchain matches runtime toolchain ie --target
785-
java_compile_toolchain = "@bazel_tools//tools/jdk:toolchain_java11",
785+
java_compile_toolchain = "@rules_java//toolchains:toolchain_java11",
786786
deps = ["@io_bazel_rules_scala_junit_junit"],
787787
)
788788

789789
scala_junit_test(
790790
name = "JunitRuntimePlatform_test_runner",
791791
size = "small",
792-
runtime_jdk = "@bazel_tools//tools/jdk:remote_jdk11",
792+
runtime_jdk = "@rules_java//toolchains:remote_jdk11",
793793
suffixes = ["Test"],
794794
tests_from = [":JunitRuntimePlatform"],
795795
runtime_deps = [":JunitRuntimePlatform"],

test/jmh/BUILD

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ scala_benchmark_jmh(
6363
scala_benchmark_jmh(
6464
name = "test_jmh_jdk11",
6565
srcs = ["TestJmhRuntimeJdk11.scala"],
66-
runtime_jdk = "@bazel_tools//tools/jdk:remote_jdk11",
66+
runtime_jdk = "@rules_java//toolchains:remote_jdk11",
6767
)
6868

6969
[sh_test(

test/shell/test_twitter_scrooge.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ runner=$(get_test_runner "${1:-local}")
77
scrooge_compile_with_jdk_11() {
88
# javabase and java_toolchain parameters are deprecated and may be
99
# removed in Bazel >= 5.0.0
10-
bazel build --javabase=@bazel_tools//tools/jdk:remote_jdk11 \
11-
--host_javabase=@bazel_tools//tools/jdk:remote_jdk11 \
12-
--host_java_toolchain=@bazel_tools//tools/jdk:toolchain_java11 \
13-
--java_toolchain=@bazel_tools//tools/jdk:toolchain_java11 \
10+
bazel build --javabase=@rules_java//toolchains:remote_jdk11 \
11+
--host_javabase=@rules_java//toolchains:remote_jdk11 \
12+
--host_java_toolchain=@rules_java//toolchains:toolchain_java11 \
13+
--java_toolchain=@rules_java//toolchains:toolchain_java11 \
1414
--javacopt='--release 11' \
1515
--java_language_version=11 \
1616
--tool_java_language_version=11 \

test/src/main/resources/java_sources/BUILD

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ package(default_visibility = ["//visibility:public"])
55
scala_library(
66
name = "CompiledWithJava8",
77
srcs = ["SimpleJavaSourceFileA.java"],
8-
java_compile_toolchain = "@bazel_tools//tools/jdk:toolchain_java8",
8+
java_compile_toolchain = "@rules_java//toolchains:toolchain_java8",
99
)
1010

1111
scala_library(
1212
name = "CompiledWithJava11",
1313
srcs = ["SimpleJavaSourceFileB.java"],
14-
java_compile_toolchain = "@bazel_tools//tools/jdk:toolchain_java11",
14+
java_compile_toolchain = "@rules_java//toolchains:toolchain_java11",
1515
)

test/toolchains/BUILD.bazel

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
load("//scala:scala_toolchain.bzl", "scala_toolchain")
22
load(
3-
"@bazel_tools//tools/jdk:default_java_toolchain.bzl",
3+
"@rules_java//toolchains:default_java_toolchain.bzl",
44
"BASE_JDK9_JVM_OPTS",
55
"DEFAULT_JAVACOPTS",
66
"DEFAULT_TOOLCHAIN_CONFIGURATION",

test/toolchains/jdk.bzl

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
2-
load("@bazel_tools//tools/jdk:remote_java_repository.bzl", "remote_java_repository")
2+
load(
3+
"@rules_java//toolchains:remote_java_repository.bzl",
4+
"remote_java_repository",
5+
)
36

47
def remote_jdk21_repositories():
58
maybe(

twitter_scrooge/twitter_scrooge.bzl

+6-2
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,9 @@ common_attrs = {
435435
),
436436
],
437437
),
438-
"_java_host_runtime": attr.label(default = Label("@bazel_tools//tools/jdk:current_host_java_runtime")),
438+
"_java_host_runtime": attr.label(
439+
default = Label("@rules_java//toolchains:current_host_java_runtime"),
440+
),
439441
}
440442

441443
common_aspect_providers = [
@@ -475,7 +477,9 @@ scrooge_java_aspect = aspect(
475477
attrs = dicts.add(
476478
common_attrs,
477479
{
478-
"_java_toolchain": attr.label(default = Label("@bazel_tools//tools/jdk:current_java_toolchain")),
480+
"_java_toolchain": attr.label(default = Label(
481+
"@rules_java//toolchains:current_java_toolchain",
482+
)),
479483
},
480484
),
481485
provides = [ScroogeAspectInfo],

0 commit comments

Comments
 (0)