Skip to content

Commit

Permalink
Bump protoc-bridge to 0.9.8
Browse files Browse the repository at this point in the history
This version contains this update to
`protocbridge.frontend.PluginFrontend.runWithInputStream()`:

- https://github.com/scalapb/protoc-bridge/blob/c574d50eaee5b800fd54493fe25c4e0eed3b9def/bridge/src/main/scala/protocbridge/frontend/PluginFrontend.scala#L107-L122

This change originally came from:

- https://github.com/scalapb/protoc-bridge/blob/d0d56f635d13f7efaa2755ed0d2d66bdef18b588/bridge/src/main/scala/protocbridge/frontend/PluginFrontend.scala#L107-L122
- scalapb/protoc-bridge#367

This should close scalapb/ScalaPB#1771 and obviate the need for the
`try`/`catch` blocks added in bazelbuild#1630 and bazelbuild#1637, and the
`ScalaPBCodeGenerator` implementation added in bazelbuild#1648.

The update requires special handling in `scripts/create_repository.py`
to ensure that only Scala 3.3 and up receive the `protoc-bridge_3`
version. Scala 3.1 and 3.2 still receive the `protoc-bridge_2.13`
version.

However, the `protoc-bridge_3` version currently fails with the
following (setting `RULES_SCALA_TEST_ONLY="test_scala_version 3.3.4"`
fails the same way):

```txt
$ RULES_SCALA_TEST_ONLY="test_scala_version 3.6.2" \
    ./test_thirdparty_version.sh

ERROR: third_party/test/proto/BUILD.bazel:4:14:
  ProtoScalaPBRule
  third_party/test/proto/proto_jvm_extra_protobuf_generator_scalapb.srcjar
  failed: (Exit 1): scalapb_worker failed: error executing command
  (from target //third_party/test/proto:proto)
  bazel-out/darwin_arm64-opt-exec-2B5CBBC6/bin/src/scala/scripts/scalapb_worker
    ... (remaining 2 arguments skipped)

--scala_out: java.lang.NoClassDefFoundError: Could not initialize class scalapb.ScalaPbCodeGenerator$
  at scripts.ScalaPbCodeGenerator$.process(ScalaPbCodeGeneratorWrapper.scala:8)
  at protocgen.CodeGenApp.run(CodeGenApp.scala:48)
  at protocgen.CodeGenApp.run$(CodeGenApp.scala:41)
  at scripts.ScalaPbCodeGenerator$.run(ScalaPbCodeGeneratorWrapper.scala:5)
  at protocgen.CodeGenApp.run(CodeGenApp.scala:33)
  at protocgen.CodeGenApp.run$(CodeGenApp.scala:32)
  at scripts.ScalaPbCodeGenerator$.run(ScalaPbCodeGeneratorWrapper.scala:5)
  at protocbridge.frontend.PluginFrontend$.runWithBytes(PluginFrontend.scala:48)
  at protocbridge.frontend.PluginFrontend$.runWithInputStream(PluginFrontend.scala:113)
  at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$1$$anonfun$1(SocketBasedPluginFrontend.scala:31)
  at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$1$$anonfun$adapted$1(SocketBasedPluginFrontend.scala:37)
  at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$1$$anon$2.block(ExecutionContextImpl.scala:60)
  at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3118)
  at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$1.blockOn(ExecutionContextImpl.scala:71)
  at scala.concurrent.package$.blocking(package.scala:124)
  at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$1(SocketBasedPluginFrontend.scala:37)
  at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$adapted$1(SocketBasedPluginFrontend.scala:38)
  at scala.concurrent.Future$.$anonfun$apply$1(Future.scala:687)
  at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:467)
  at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
  at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
  at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
  at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
  at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
  at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

java.lang.RuntimeException: Exit with code 1
  at scala.sys.package$.error(package.scala:27)
  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: third_party/test/proto/BUILD.bazel:4:14 Building source jar
  third_party/test/proto/proto_scalapb-src.jar failed: (Exit 1):
  scalapb_worker failed: error executing command
  (from target //third_party/test/proto:proto)
bazel-out/darwin_arm64-opt-exec-2B5CBBC6/bin/src/scala/scripts/scalapb_worker
  ... (remaining 2 arguments skipped)
```
  • Loading branch information
mbland committed Dec 17, 2024
1 parent 719f353 commit 317f993
Show file tree
Hide file tree
Showing 9 changed files with 25 additions and 22 deletions.
7 changes: 5 additions & 2 deletions scripts/create_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
PROTOBUF_JAVA_VERSION = "4.29.0"
JLINE_VERSION = '3.27.1'
SCALAPB_VERSION = '0.11.17'
PROTOC_BRIDGE_VERSION = '0.9.7'
PROTOC_BRIDGE_VERSION = '0.9.8'
GRPC_VERSION = '1.68.1'
GRPC_COMMON_PROTOS_VERSION = '2.48.0'
GRPC_LIBS = ['netty', 'protobuf', 'stub']
Expand Down Expand Up @@ -73,15 +73,18 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
v for v in ROOT_SCALA_VERSIONS if v.startswith('2.')
)
max_scala_2_major = '.'.join(max_scala_2_version.split('.')[:2])
minor_version = int(scala_version.split('.')[1])

scala_2_version = scala_version
scala_2_major = scala_major
scalatest_major = scala_major
protoc_bridge_major = scala_2_major

if is_scala_3:
scala_2_version = max_scala_2_version
scala_2_major = max_scala_2_major
scalatest_major = '3'
protoc_bridge_major = max_scala_2_major if minor_version < 3 else '3'

scalafmt_version = SCALAFMT_VERSION
scalapb_version = SCALAPB_VERSION
Expand All @@ -99,7 +102,7 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
f'com.google.protobuf:protobuf-java:{PROTOBUF_JAVA_VERSION}',
f'com.thesamet.scalapb:compilerplugin_{scala_2_major}:' +
scalapb_version,
f'com.thesamet.scalapb:protoc-bridge_{scala_2_major}:' +
f'com.thesamet.scalapb:protoc-bridge_{protoc_bridge_major}:' +
protoc_bridge_version,
f'com.thesamet.scalapb:scalapb-runtime_{scala_2_major}:' +
scalapb_version,
Expand Down
4 changes: 2 additions & 2 deletions third_party/repositories/scala_2_12.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -815,8 +815,8 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.12:0.9.7",
"sha256": "6d039a28d29253ac78aec0e3102f6423d269e65203c114a17f0d52a91d4876f4",
"artifact": "com.thesamet.scalapb:protoc-bridge_2.12:0.9.8",
"sha256": "4af997be5176753aa480ce40cbe9aab89ba659740a1ca6dae660afffb7bb343a",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library",
Expand Down
4 changes: 2 additions & 2 deletions third_party/repositories/scala_2_13.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -837,8 +837,8 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.8",
"sha256": "0b3827da2cd9bca867d6963c2a821e7eaff41f5ac3babf671c4c00408bd14a9b",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library",
Expand Down
4 changes: 2 additions & 2 deletions third_party/repositories/scala_3_1.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -879,8 +879,8 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.8",
"sha256": "0b3827da2cd9bca867d6963c2a821e7eaff41f5ac3babf671c4c00408bd14a9b",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
Expand Down
4 changes: 2 additions & 2 deletions third_party/repositories/scala_3_2.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -879,8 +879,8 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.8",
"sha256": "0b3827da2cd9bca867d6963c2a821e7eaff41f5ac3babf671c4c00408bd14a9b",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
Expand Down
6 changes: 3 additions & 3 deletions third_party/repositories/scala_3_3.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -880,11 +880,11 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_3:0.9.8",
"sha256": "6e1e38e34f3aaa14c6d46defb66b819f03edbdc4d69965011955da2a4781df9c",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
"@io_bazel_rules_scala_scala_library",
],
},
"scala_proto_rules_scalapb_protoc_gen": {
Expand Down
6 changes: 3 additions & 3 deletions third_party/repositories/scala_3_4.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -880,11 +880,11 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_3:0.9.8",
"sha256": "6e1e38e34f3aaa14c6d46defb66b819f03edbdc4d69965011955da2a4781df9c",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
"@io_bazel_rules_scala_scala_library",
],
},
"scala_proto_rules_scalapb_protoc_gen": {
Expand Down
6 changes: 3 additions & 3 deletions third_party/repositories/scala_3_5.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -880,11 +880,11 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_3:0.9.8",
"sha256": "6e1e38e34f3aaa14c6d46defb66b819f03edbdc4d69965011955da2a4781df9c",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
"@io_bazel_rules_scala_scala_library",
],
},
"scala_proto_rules_scalapb_protoc_gen": {
Expand Down
6 changes: 3 additions & 3 deletions third_party/repositories/scala_3_6.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -889,11 +889,11 @@ artifacts = {
],
},
"scala_proto_rules_scalapb_protoc_bridge": {
"artifact": "com.thesamet.scalapb:protoc-bridge_2.13:0.9.7",
"sha256": "403f0e7223c8fd052cff0fbf977f3696c387a696a3a12d7b031d95660c7552f5",
"artifact": "com.thesamet.scalapb:protoc-bridge_3:0.9.8",
"sha256": "6e1e38e34f3aaa14c6d46defb66b819f03edbdc4d69965011955da2a4781df9c",
"deps": [
"@dev_dirs_directories",
"@io_bazel_rules_scala_scala_library_2",
"@io_bazel_rules_scala_scala_library",
],
},
"scala_proto_rules_scalapb_protoc_gen": {
Expand Down

0 comments on commit 317f993

Please sign in to comment.