From 317f99381ed51803af835e1fd99ee0f084dfe4d4 Mon Sep 17 00:00:00 2001 From: Mike Bland Date: Tue, 17 Dec 2024 14:34:02 -0500 Subject: [PATCH] Bump protoc-bridge to 0.9.8 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 - https://github.com/scalapb/protoc-bridge/pull/367 This should close scalapb/ScalaPB#1771 and obviate the need for the `try`/`catch` blocks added in #1630 and #1637, and the `ScalaPBCodeGenerator` implementation added in #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) ``` --- scripts/create_repository.py | 7 +++++-- third_party/repositories/scala_2_12.bzl | 4 ++-- third_party/repositories/scala_2_13.bzl | 4 ++-- third_party/repositories/scala_3_1.bzl | 4 ++-- third_party/repositories/scala_3_2.bzl | 4 ++-- third_party/repositories/scala_3_3.bzl | 6 +++--- third_party/repositories/scala_3_4.bzl | 6 +++--- third_party/repositories/scala_3_5.bzl | 6 +++--- third_party/repositories/scala_3_6.bzl | 6 +++--- 9 files changed, 25 insertions(+), 22 deletions(-) diff --git a/scripts/create_repository.py b/scripts/create_repository.py index 9ade78254..df23a07c5 100755 --- a/scripts/create_repository.py +++ b/scripts/create_repository.py @@ -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'] @@ -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 @@ -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, diff --git a/third_party/repositories/scala_2_12.bzl b/third_party/repositories/scala_2_12.bzl index b25066a41..d28df107d 100644 --- a/third_party/repositories/scala_2_12.bzl +++ b/third_party/repositories/scala_2_12.bzl @@ -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", diff --git a/third_party/repositories/scala_2_13.bzl b/third_party/repositories/scala_2_13.bzl index 891fc654d..dd8ed35f9 100644 --- a/third_party/repositories/scala_2_13.bzl +++ b/third_party/repositories/scala_2_13.bzl @@ -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", diff --git a/third_party/repositories/scala_3_1.bzl b/third_party/repositories/scala_3_1.bzl index e8bda4e22..6a25db21c 100644 --- a/third_party/repositories/scala_3_1.bzl +++ b/third_party/repositories/scala_3_1.bzl @@ -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", diff --git a/third_party/repositories/scala_3_2.bzl b/third_party/repositories/scala_3_2.bzl index 7d16e7242..006f2ef8f 100644 --- a/third_party/repositories/scala_3_2.bzl +++ b/third_party/repositories/scala_3_2.bzl @@ -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", diff --git a/third_party/repositories/scala_3_3.bzl b/third_party/repositories/scala_3_3.bzl index 62079504c..3a7a13b85 100644 --- a/third_party/repositories/scala_3_3.bzl +++ b/third_party/repositories/scala_3_3.bzl @@ -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": { diff --git a/third_party/repositories/scala_3_4.bzl b/third_party/repositories/scala_3_4.bzl index 7d7fe65bd..9f75b8256 100644 --- a/third_party/repositories/scala_3_4.bzl +++ b/third_party/repositories/scala_3_4.bzl @@ -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": { diff --git a/third_party/repositories/scala_3_5.bzl b/third_party/repositories/scala_3_5.bzl index 061f8c20f..c5b1d12c2 100644 --- a/third_party/repositories/scala_3_5.bzl +++ b/third_party/repositories/scala_3_5.bzl @@ -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": { diff --git a/third_party/repositories/scala_3_6.bzl b/third_party/repositories/scala_3_6.bzl index 6e91ba7ed..231d609eb 100644 --- a/third_party/repositories/scala_3_6.bzl +++ b/third_party/repositories/scala_3_6.bzl @@ -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": {