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
Bumps dependencies to versions that are compatible with both Bazel 7.5.0
and 8.0.0. Part of bazelbuild#1482. Closesbazelbuild#1652.
- ScalaPB jars: 0.11.17 => 1.0.0-alpha.1
- `rules_python`: 0.38.0 => 1.2.0
- `rules_cc`: 0.0.9 => 0.1.1
- `abseil-cpp`: 20220623.1 => 20250127.0
- `rules_java`: 7.12.4 => 8.9.0
- `protobuf`: 21.7 => 29.3
- `rules_proto`: 6.0.2 => 7.1.0
- `google-common-protos`: 2.52.0 => 2.53.0
This precipitated the following updates also included in this commit:
- Loads `java_proto_library` from `com_google_protobuf`.
- Bumps `.bazelversion` to 7.5.0.
- Sets `.bazelci/presubmit.yml` to use Bazel 7.5.0 instead of 6.5.0, and
`last_rc` in place of `7.x`.
- Sets `common --enable_workspace --noenable_bzlmod` in `.bazelrc` and
`tools/bazel\.rc\.buildkite`.
- Adds `allow_empty = True` to a `glob` expression in
`//test/semanticdb:lib_with_tempsrc`.
- Removes Scala 2.11 test cases.
Bazel 6 is officially unsupported as of this change and the upcoming
`rules_scala` 7.0.0 release. `WORKSPACE` builds succeed under Bazel
6.5.0 (with C++ compiler flags) for the time being, but are not
guaranteed to continue working. (Bazel 6 Bzlmod builds would break
anyway, because Bazel 6 doesn't provide `use_repo_rule`, required by
`rules_jvm_external` 6.3, which is required by `protobuf` v29.)
The `README` now documents that `scala_proto` or any rules otherwise
depending on `protobuf` are no longer supported out of the box for Scala
2.11. Such users will have to ensure they register their own downgraded
versions, at their own risk of future `rules_scala` 7.x incompatibility.
Version bump related updates to `.bazelversion`,`WORKSPACE`, and
`third_party/repositories` comprise the bulk of this change. Other
small, yet important changes (other than those due to the version bumps
noted above) include:
- Adding a new `examples/overridden_artifacts` repository and the
`overridden_artifacts_example` test case in
`test/shell/test_examples.sh`.
- Making `_validate_scalac_srcjar()` and `dt_patched_compiler_setup()` in
`scala/private/macros/scala_repositories.bzl` more tolerant of
dictionaries containing keys mapped to `None`. The new
`overridden_artifacts_example` test covers this.
Bazel 8 and `rules_java` 8 require `protobuf` >= v29. After the
`protobuf` v29 bump, and before the ScalaPB 1.0.0-alpha.1 bump,
`scala_proto` targets would fail with the following error:
```txt
ERROR: .../external/com_google_protobuf/src/google/protobuf/BUILD.bazel:23:14:
ProtoScalaPBRule
external/com_google_protobuf/src/google/protobuf/any_proto_jvm_extra_protobuf_generator_scalapb.srcjar
failed: (Exit 1): scalapb_worker failed:
error executing ProtoScalaPBRule command
(from target @@com_google_protobuf//src/google/protobuf:any_proto)
bazel-out/.../bin/src/scala/scripts/scalapb_worker
... (remaining 2 arguments skipped)
--jvm_extra_protobuf_generator_out:
java.lang.NoSuchMethodError:
'java.lang.Object com.google.protobuf.DescriptorProtos$FieldOptions.getExtension(com.google.protobuf.GeneratedMessage$GeneratedExtension)'
at scalapb.compiler.DescriptorImplicits$ExtendedFieldDescriptor.fieldOptions(DescriptorImplicits.scala:329)
[ ...snip... ]
java.lang.RuntimeException: Exit with code 1
at scala.sys.package$.error(package.scala:30)
at scripts.ScalaPBWorker$.work(ScalaPBWorker.scala:44)
at io.bazel.rulesscala.worker.Worker.persistentWorkerMain(Worker.java:96)
at io.bazel.rulesscala.worker.Worker.workerMain(Worker.java:49)
at scripts.ScalaPBWorker$.main(ScalaPBWorker.scala:39)
at scripts.ScalaPBWorker.main(ScalaPBWorker.scala)
ERROR: .../external/com_google_protobuf/src/google/protobuf/BUILD.bazel:23:14
Building source jar external/com_google_protobuf/src/google/protobuf/any_proto_scalapb-src.jar
failed: (Exit 1): scalapb_worker failed:
error executing ProtoScalaPBRule command
(from target @@com_google_protobuf//src/google/protobuf:any_proto)
bazel-out/darwin_arm64-opt-exec-ST-a828a81199fe/bin/src/scala/scripts/scalapb_worker
... (remaining 2 arguments skipped)
```
Here's why the other changes were necessary in light of the version
bumps:
- `java_proto_library` from `rules_java` is now officially deprecated,
hence loading it from `com_google_protobuf`.
- Setting `common --enable_workspace --noenable_bzlmod` (instead of
`build`) fixes `test_semanticdb_handles_removed_sourcefiles`. This
test relies on `bazel query`, which is also affected by these flags,
hence `common` instead of `build`. Bazel 8 defaults to
`--enable_bzlmod --noenable_workspace`, causing the `WORKSPACE` run of
this test to fail.
- `glob` requires an explicit `allow_empty = True` parameter now that
`--incompatible_disallow_empty_glob` defaults to `True` in Bazel 8.
- ScalaPB 0.9.8, the last version compatible with Scala 2.11, does not
support `protobuf` >= 26.0. For this reason, we must remove the Scala
2.11 test cases.
We should consider dropping Scala 2.11 support at this point, since
there's no ScalaPB release for it that supports later versions of
`protobuf`. That, and we could remove some of the special case code
added in the following changes, amongst other 2.11 support details:
- bazelbuild#1631
- bazelbuild#1648
- bazelbuild#1687
- bazelbuild#1688
Finally, the motivation for the non-version bump changes:
- The design bug in the upcoming Bzlmod API for `overridden_artifacts`
reported by @dmivankov precipitated the `examples/overriden_artifacts`
repo and test. See:
bazelbuild#1482 (comment)bazelbuild#1482 (comment)
- The `_validate_scalac_srcjar()` update maintains the strict checks for
mutually exclusive values, while preventing client code from having to
explicitly filter out `None` entries. This pairs with the change in
`dt_patched_compiler_setup()` that uses the `compiler_srcjar`
dictionary. These changes helps keep the upcoming module extension a
bit cleaner.
- "./test_rules_scala.sh || buildkite-agent annotate --style 'warning' \"Optional build with latest Bazel version failed, [see here](${BUILDKITE_BUILD_URL}#${BUILDKITE_JOB_ID}) (It is not mandatory but worth checking)\""
42
+
- "./test_rules_scala.sh || buildkite-agent annotate --style 'warning' \"Optional build with last_rc Bazel version failed, [see here](${BUILDKITE_BUILD_URL}#${BUILDKITE_JOB_ID}) (It is not mandatory but worth checking)\""
42
43
test_rules_scala_macos:
43
44
name: "./test_rules_scala"
44
45
platform: macos
@@ -53,16 +54,16 @@ tasks:
53
54
- "set PATH=/usr/bin;%PATH%"#Make sure bash uses msys commands over windows commands. (i.e. find).
#Windows needs --worker_quit_after_build due to workers not being shut down when the compiler tools need to be rebuilt (resulting in 'file in use' errors). See Bazel Issue#10498.
0 commit comments