Skip to content

sbt 2#432

Open
xuwei-k wants to merge 1 commit intothesamet:masterfrom
xuwei-k:sbt-2
Open

sbt 2#432
xuwei-k wants to merge 1 commit intothesamet:masterfrom
xuwei-k:sbt-2

Conversation

@xuwei-k
Copy link
Copy Markdown
Contributor

@xuwei-k xuwei-k commented Apr 13, 2026

@xuwei-k xuwei-k marked this pull request as ready for review April 13, 2026 13:16
@xuwei-k xuwei-k mentioned this pull request Apr 13, 2026
@hugo-vrijswijk
Copy link
Copy Markdown

I tried this branch locally, and ran into this error:

[error] Modules were resolved with conflicting cross-version suffixes in ProjectRef(uri("file:/Users/hvanrijswijk1/ws/stryker4s/project/"), "stryker4s-build"):
[error]    com.thesamet.scalapb:protoc-bridge _3, _2.13
[error] java.lang.RuntimeException: Conflicting cross-version suffixes in: com.thesamet.scalapb:protoc-bridge
[error]         at scala.sys.package$.error(package.scala:28)
[error]         at sbt.librarymanagement.ConflictWarning$.processCrossVersioned(ConflictWarning.scala:39)
[error]         at sbt.librarymanagement.ConflictWarning$.apply(ConflictWarning.scala:19)
[error]         at sbt.Classpaths$.ivyBaseSettings$$anonfun$63(Defaults.scala:3437)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:79)
[error]         at scala.Function1.$anonfun$compose$1(Function1.scala:79)
[error]         at sbt.std.Transform$$anon$3.work(Transform.scala:79)
[error]         at sbt.std.Transform$$anon$3.work(Transform.scala:79)
[error]         at sbt.Execute.submit$$anonfun$1$$anonfun$1(Execute.scala:283)
[error]         at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error]         at sbt.Execute.work(Execute.scala:294)
[error]         at sbt.Execute.submit$$anonfun$1(Execute.scala:283)
[error]         at sbt.ConcurrentRestrictions$$anon$4.$anonfun$2(ConcurrentRestrictions.scala:269)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:75)
[error]         at sbt.CompletionService$$anon$2.call(CompletionService.scala:73)
[error]         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error]         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[error]         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[error]         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[error]         at java.base/java.lang.Thread.run(Thread.java:1583)
[error] (update) Conflicting cross-version suffixes in: com.thesamet.scalapb:protoc-bridge

Which happens because of this line in plugins.sbt:

libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.20"

It looks like scalapb is using .cross(CrossVersion.for3Use2_13) for some dependencies. I think that would have to be changed to fully Scala 3 published artifacts to get things working

@xuwei-k
Copy link
Copy Markdown
Contributor Author

xuwei-k commented Apr 17, 2026

It looks like scalapb is using .cross(CrossVersion.for3Use2_13) for some dependencies. I think that would have to be changed to fully Scala 3 published artifacts to get things working

@hugo-vrijswijk
Copy link
Copy Markdown

Not sure if this is related to your changes or something else, but since this PR is the only way to run on sbt 2 I thought I'd document it here. I'm testing and running into this error when trying to generate protoc files:

sbt:stryker4s> testRunnerApi/protocGenerate
[info] Compiling 1 protobuf files to /Users/hvanrijswijk1/ws/stryker4s/target/out/jvm/scala-3.3.7/stryker4s-testrunner-api/src_managed/main/scalapb
--jvm_0_out: java.lang.NoSuchMethodError: 'scala.collection.convert.Decorators$AsScala scala.collection.JavaConverters$.asScalaBufferConverter(java.util.List)'
        at protocgen.CodeGenRequest$.apply(CodeGenRequest.scala:21)
        at protocgen.CodeGenApp.run(CodeGenApp.scala:46)
        at protocgen.CodeGenApp.run$(CodeGenApp.scala:41)
        at scalapb.ScalaPbCodeGenerator$.run(ScalaPbCodeGenerator.scala:11)
        at protocgen.CodeGenApp.run(CodeGenApp.scala:33)
        at protocgen.CodeGenApp.run$(CodeGenApp.scala:32)
        at scalapb.ScalaPbCodeGenerator$.run(ScalaPbCodeGenerator.scala:11)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at protocbridge.SandboxedJvmGenerator$$anon$1.run(Generator.scala:126)
        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:37)
        at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$1$$anonfun$adapted$1(SocketBasedPluginFrontend.scala:43)
        at scala.concurrent.impl.ExecutionContextImpl$$anon$2.block(ExecutionContextImpl.scala:61)
        at java.base/java.util.concurrent.ForkJoinPool.compensatedBlock(ForkJoinPool.java:3740)
        at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3723)
        at scala.concurrent.impl.ExecutionContextImpl$DefaultThreadFactory$$anon$1.blockOn(ExecutionContextImpl.scala:72)
        at scala.concurrent.package$.blocking(package.scala:126)
        at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$1(SocketBasedPluginFrontend.scala:43)
        at protocbridge.frontend.SocketBasedPluginFrontend.prepare$$anonfun$adapted$1(SocketBasedPluginFrontend.scala:44)
        at scala.concurrent.Future$.apply$$anonfun$1(Future.scala:692)
        at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:503)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)

[error] stack trace is suppressed; run last testRunnerApi / Compile / protocGenerate for the full output
[error] (testRunnerApi / Compile / protocGenerate) protoc returned exit code: 1

When running sbt testRunnerApi/protocGenerate, available on this branch: https://github.com/stryker-mutator/stryker4s/tree/sbt-2-test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

support sbt 2

2 participants