Skip to content

Commit c1a39d3

Browse files
committed
WIP: Bzlmod part the one hundred-eighteenth
Fix testing toolchain configuration errors Also introduces `register_testing_toolchains` to make `{scalatest,junit,specs2_junit}_toolchain` compatible with the new toolchains repo. They aren't separate toolchains anymore; there's a single testing toolchain per Scala version that contains all testing frameworks configured via `scala_toolchains`. The error below happened when building under `--noenable_bzlmod --enable_workspace` until I properly propagated `scalatest = True` when `testing == True` in `scala_toolchains`. I don't know how the Bzlmod builds passed without this change. ```txt $ bazel build //src/... ERROR: no such package '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20//': The repository '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20' could not be resolved: Repository '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20' is not defined ERROR: .../external/io_bazel_rules_scala_toolchains/testing/BUILD:13:34: no such package '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20//': The repository '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20' could not be resolved: Repository '@@io_bazel_rules_scala_scalatest_shouldmatchers_2_12_20' is not defined and referenced by '@@io_bazel_rules_scala_toolchains//testing:testing_toolchain_2_12_20_scalatest_classpath_provider' ERROR: Analysis of target '//src/java/io/bazel/rulesscala/scala_test:runner' failed; build aborted: Analysis failed ```
1 parent b4f65ca commit c1a39d3

File tree

11 files changed

+48
-44
lines changed

11 files changed

+48
-44
lines changed

MODULE.bazel

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ use_repo(
6565
"scala_compiler_sources",
6666
)
6767

68-
register_toolchains(
69-
"@io_bazel_rules_scala_toolchains//...:all",
70-
)
68+
register_toolchains("@io_bazel_rules_scala_toolchains//...:all")
7169

7270
# Dev dependencies
7371

@@ -234,4 +232,4 @@ use_repo(
234232
"org_golang_x_tools",
235233
)
236234

237-
bazel_dep(name = "rules_python", version = "0.35.0", dev_dependency = True)
235+
bazel_dep(name = "rules_python", version = "0.36.0", dev_dependency = True)

WORKSPACE

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ scala_toolchains(
5151
)
5252

5353
register_toolchains(
54-
"//testing:testing_toolchain",
5554
"//scala:unused_dependency_checker_error_toolchain",
5655
"//test/proto:scalapb_toolchain",
5756
"@io_bazel_rules_scala_toolchains//...:all",

scala/private/macros/toolchains.bzl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ def scala_toolchains(
108108
scala_compiler_srcjars = scala_compiler_srcjars,
109109
)
110110

111+
if testing:
112+
scalatest = True
113+
junit = True
114+
specs2 = True
115+
111116
if scalatest:
112117
num_toolchains += 1
113118
scalatest_repositories(

scala/private/macros/toolchains_repo.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ def _generate_testing_toolchain_build_file_args(repo_attr):
88
"scalatest": "SCALATEST_DEPS",
99
"junit": "JUNIT_DEPS",
1010
"specs2": "SPECS2_DEPS",
11+
"specs2_junit": "SPECS2_JUNIT_DEPS",
1112
}
1213
if repo_attr.scalatest:
1314
framework_deps["scalatest"] = "SCALATEST_DEPS"

src/java/io/bazel/rulesscala/test_discovery/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ scala_library(
88
"FilteredRunnerBuilder.scala",
99
],
1010
visibility = ["//visibility:public"],
11-
deps = ["@io_bazel_rules_scala//testing/toolchain:junit_classpath"],
11+
deps = ["//testing/toolchain:junit_classpath"],
1212
)

testing/BUILD

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,18 @@ load("//scala:scala_cross_version.bzl", "version_suffix")
22
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_VERSION")
33

44
# Aliases for backward compatibility:
5-
alias(
6-
name = "testing_toolchain",
7-
actual = (
8-
"@io_bazel_rules_scala_toolchains//testing:testing_toolchain" +
9-
version_suffix(SCALA_VERSION)
10-
),
11-
)
12-
13-
alias(
14-
name = "scalatest_toolchain",
15-
actual = (
16-
"@io_bazel_rules_scala_toolchains//scalatest:scalatest_toolchain" +
17-
version_suffix(SCALA_VERSION)
18-
),
19-
)
20-
21-
alias(
22-
name = "specs2_junit_toolchain",
23-
actual = (
24-
"@io_bazel_rules_scala_toolchains//specs2:specs2_junit_toolchain"
25-
),
26-
)
27-
28-
alias(
29-
name = "junit_toolchain",
30-
actual = "@io_bazel_rules_scala_toolchains//junit:junit_toolchain",
31-
)
5+
[
6+
alias(
7+
name = framework + "_toolchain",
8+
actual = (
9+
"@io_bazel_rules_scala_toolchains//testing:testing_toolchain" +
10+
version_suffix(SCALA_VERSION)
11+
),
12+
)
13+
for framework in [
14+
"testing",
15+
"scalatest",
16+
"specs2_junit",
17+
"junit",
18+
]
19+
]

testing/junit.bzl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
load("//junit:junit.bzl", _repositories = "junit_repositories")
2+
load("//testing/toolchain:toolchain.bzl", "register_testing_toolchains")
23

34
def junit_repositories(**kwargs):
45
_repositories(**kwargs)
56

67
def junit_toolchain():
7-
native.register_toolchains("@io_bazel_rules_scala//testing:junit_toolchain")
8+
register_testing_toolchains()

testing/scalatest.bzl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
load("//scalatest:scalatest.bzl", _repositories = "scalatest_repositories")
2-
load("//scala:scala_cross_version.bzl", "version_suffix")
3-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_VERSIONS")
2+
load("//testing/toolchain:toolchain.bzl", "register_testing_toolchains")
43

54
def scalatest_repositories():
65
_repositories()
76

87
def scalatest_toolchain():
9-
for scala_version in SCALA_VERSIONS:
10-
native.register_toolchains("@io_bazel_rules_scala//testing:scalatest_toolchain" + version_suffix(scala_version))
8+
register_testing_toolchains()

testing/specs2_junit.bzl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
load("//specs2:specs2_junit.bzl", _repositories = "specs2_junit_repositories")
2+
load("//testing/toolchain:toolchain.bzl", "register_testing_toolchains")
23

34
def specs2_junit_repositories():
45
_repositories()
56

67
def specs2_junit_toolchain():
7-
native.register_toolchains("@io_bazel_rules_scala//testing:specs2_junit_toolchain")
8+
register_testing_toolchains()

testing/testing.bzl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
load("@io_bazel_rules_scala//scala:providers.bzl", "declare_deps_provider")
2-
load(
3-
"@io_bazel_rules_scala//testing/toolchain:toolchain.bzl",
4-
"scala_testing_toolchain",
5-
)
1+
load("//scala:providers.bzl", "declare_deps_provider")
62
load("//scala:scala_cross_version.bzl", "repositories", "version_suffix")
3+
load("//testing/toolchain:toolchain.bzl", "scala_testing_toolchain")
74
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_VERSION")
85

96
DEP_PROVIDERS = [

0 commit comments

Comments
 (0)