You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Toolchainize //scala/scalafmt:scalafmt_toolchain
This is a pretty straightforward and easy update on top of the previous
`setup_toolchains` and `scala_toolchains_repo` changes. Part of #1482.
* Make test_reproducibility.sh build test/coverage_*
Replaces the nonexistent `//test/coverage/...` target with packages that
actually exist, rendering the test more meaningful.
A spurious failure caused me to run the following to inspect what was
happening:
```txt
RULES_SCALA_TEST_ONLY=test_build_is_identical ./test_reproducibility.sh
```
This caused me to see that the following command was failing because
`//test/coverage/...` didn't exist:
```txt
bazel build --collect_code_coverage -- //test/coverage/...
```
* Export `SCALAFMT_TOOLCHAIN_TYPE` constant
Reduces string duplication in `//scala/scalafmt/toolchain/*.bzl` files.
* Remove scalafmt_toolchain dep_providers default
It's likely that no one will ever rely on the default when defining
their own `scalafmt_toolchain`.
While investigating #1675, I realized the `dep_providers` default was
set to a nonexistent target. This didn't break our tests because our
Scalafmt toolchains are created by `setup_scala_toolchain`, which sets
`dep_providers` explicitly.
I thought about aliasing the provider generated for the toolchain for
`SCALA_VERSION` in `@io_bazel_rules_scala_toolchains//scalafmt`, or
generating a new one. I ultimately decided to remove the default,
because the `deps_providers` is literally the only attribute. Anyone
defining their own `scalafmt_toolchain` will certainly define their own
`deps_providers` target(s).
* Update tests for Bazel 6 + Bzlmod
Copied the regular expression used to optionally match canonical repo
name prefixes in `buildozer` commands from #1622. These never failed
when building with Bzlmod and Bazel 7.4.1, but did under Bazel 6.5.0.
* Fix `//third_party` tests with `$(rootpath)`
Fixes `{strict_deps,unused_dependency_checker}_test` from
`//third_party/dependency_analyzer/src/test` under Bazel 8 by updating
`$(location)` to `$(rootpath)`. Part of #1652.
`//third_party/dependency_analyzer/src/test:strict_deps_test` and
`//third_party/dependency_analyzer/src/test:unused_dependency_checker_test`
both failed with errors of the form:
```txt
StrictDepsTest:
- error on indirect dependency target *** FAILED *** (379 milliseconds)
nice errors on sequence of strings.this.infos.exists(nice errors on
sequence of strings.this.checkErrorContainsMessage(target)) was false
expected an error on //commons:Target to appear in errors (with
buildozer command)!
Errors: List(object apache is not a member of package org)
(StrictDepsTest.scala:85)
```
This happened both under `WORKSPACE` and Bzlmod. Copying the test script
with the following (with `$ID` being one of `7`, `8`, `7-updated`, or
`8-updated`) helped reveal the differences:
```txt
cp bazel-bin/third_party/dependency_analyzer/src/test/strict_deps_test \
strict_deps_test-$ID.sh
```
Under Bazel 7, we find the following lines whether using `$(location)`
or `$(rootpath)` on the `org.apache.commons` artifact (the other
artifacts already use `$(rootpath)`:
```txt
-Dscala.library.location=external/io_bazel_rules_scala_scala_library_2_12_20/scala-library-2.12.20.jar
-Dscala.reflect.location=external/io_bazel_rules_scala_scala_reflect_2_12_20/scala-reflect-2.12.20.jar
-Dguava.jar.location=external/com_google_guava_guava_21_0_with_file/guava-21.0.jar
-Dapache.commons.jar.location=external/org_apache_commons_commons_lang_3_5_without_file/commons-lang3-3.5.jar
```
Under Bazel 8, notice that the `external/` prefix has become `../` for
the other paths already using `$(rootpath)`, but remains `external/` for
the `$(location)` artifact. This breaks the Bazel 8 build:
```txt
-Dscala.library.location=../io_bazel_rules_scala_scala_library_2_12_20/scala-library-2.12.20.jar
-Dscala.reflect.location=../io_bazel_rules_scala_scala_reflect_2_12_20/scala-reflect-2.12.20.jar
-Dguava.jar.location=../com_google_guava_guava_21_0_with_file/guava-21.0.jar
-Dapache.commons.jar.location=external/org_apache_commons_commons_lang_3_5_without_file/commons-lang3-3.5.jar
```
Under Bazel 8, using `$(rootpath)` for the `org.apache.commons` artifact
converts its `external/`, fixing the Bazel 8 build:
```txt
-Dscala.library.location=../io_bazel_rules_scala_scala_library_2_12_20/scala-library-2.12.20.jar
-Dscala.reflect.location=../io_bazel_rules_scala_scala_reflect_2_12_20/scala-reflect-2.12.20.jar
-Dguava.jar.location=../com_google_guava_guava_21_0_with_file/guava-21.0.jar
-Dapache.commons.jar.location=../org_apache_commons_commons_lang_3_5_without_file/commons-lang3-3.5.jar
```
0 commit comments