I've got a project using scala 3.0.0-M1 (https://github.com/softwaremill/sttp-model), and I think there's some incompatibility with the versioning scheme and projectmatrix. sbt itself loads fine, and generates projects e.g.:
Here's the first problem: it's not possible to cross-build for 3.0.0-M1 and 3.0.0-M2. I suppose for the milestone/RC releases, the full version should be appended?
The second problem surfaces when trying to import the project to IntelliJ. Not sure what kind of task intellij is issuing to sbt, but it ends up with the following stacktrace:
java.lang.RuntimeException: project matching List(PlatformAxis(jvm,JVM,jvm)) and 3.0.0-M1 was not found
at scala.sys.package$.error(package.scala:30)
at sbt.internal.ProjectMatrix$ProjectMatrixDef$AxisBaseProjectFinder.$anonfun$apply$1(ProjectMatrix.scala:447)
at scala.Option.getOrElse(Option.scala:189)
at sbt.internal.ProjectMatrix$ProjectMatrixDef$AxisBaseProjectFinder.apply(ProjectMatrix.scala:447)
at $bbcc4c7e53b3abe6a5ab$.$anonfun$projectAggregates$3(build.sbt:111)
at scala.collection.immutable.List.flatMap(List.scala:366)
at $bbcc4c7e53b3abe6a5ab$.projectAggregates$lzycompute(build.sbt:111)
at $bbcc4c7e53b3abe6a5ab$.projectAggregates(build.sbt:104)
at $bbcc4c7e53b3abe6a5ab$.rootProject$lzycompute(build.sbt:125)
at $bbcc4c7e53b3abe6a5ab$.rootProject(build.sbt:122)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.compiler.EvalDefinitions.$anonfun$values$1(Eval.scala:59)
at scala.collection.immutable.List.map(List.scala:293)
at sbt.compiler.EvalDefinitions.values(Eval.scala:59)
at sbt.internal.DefinedSbtValues.$anonfun$values$1(LoadedSbtFile.scala:50)
at scala.collection.immutable.List.flatMap(List.scala:366)
at sbt.internal.DefinedSbtValues.values(LoadedSbtFile.scala:50)
at sbt.internal.EvaluateConfigurations$.$anonfun$evaluateSbtFile$4(EvaluateConfigurations.scala:165)
at sbt.internal.Load$.loadSettingsFile$1(Load.scala:1107)
at sbt.internal.Load$.$anonfun$discoverProjects$2(Load.scala:1116)
at scala.collection.MapLike.getOrElse(MapLike.scala:131)
at scala.collection.MapLike.getOrElse$(MapLike.scala:129)
at scala.collection.AbstractMap.getOrElse(Map.scala:65)
at sbt.internal.Load$.memoLoadSettingsFile$1(Load.scala:1115)
at sbt.internal.Load$.$anonfun$discoverProjects$4(Load.scala:1123)
at scala.collection.immutable.List.map(List.scala:293)
at sbt.internal.Load$.loadFiles$1(Load.scala:1123)
at sbt.internal.Load$.discoverProjects(Load.scala:1137)
at sbt.internal.Load$.discover$1(Load.scala:889)
at sbt.internal.Load$.loadTransitive(Load.scala:943)
at sbt.internal.Load$.loadProjects$1(Load.scala:726)
at sbt.internal.Load$.$anonfun$loadUnit$11(Load.scala:729)
at sbt.internal.Load$.timed(Load.scala:1382)
at sbt.internal.Load$.$anonfun$loadUnit$1(Load.scala:729)
at sbt.internal.Load$.timed(Load.scala:1382)
at sbt.internal.Load$.loadUnit(Load.scala:688)
at sbt.internal.Load$.$anonfun$builtinLoader$4(Load.scala:486)
at sbt.internal.BuildLoader$.$anonfun$componentLoader$5(BuildLoader.scala:180)
at sbt.internal.BuildLoader.apply(BuildLoader.scala:245)
at sbt.internal.Load$.loadURI$1(Load.scala:548)
at sbt.internal.Load$.loadAll(Load.scala:564)
at sbt.internal.Load$.loadURI(Load.scala:494)
at sbt.internal.Load$.load(Load.scala:473)
at sbt.internal.Load$.$anonfun$apply$1(Load.scala:242)
at sbt.internal.Load$.timed(Load.scala:1382)
at sbt.internal.Load$.apply(Load.scala:242)
at sbt.internal.Load$.defaultLoad(Load.scala:55)
at sbt.BuiltinCommands$.liftedTree1$1(Main.scala:931)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:931)
at sbt.BuiltinCommands$.$anonfun$loadProjectImpl$2(Main.scala:884)
at sbt.Command$.$anonfun$applyEffect$4(Command.scala:150)
at sbt.Command$.$anonfun$applyEffect$2(Command.scala:145)
at sbt.Command$.process(Command.scala:189)
at sbt.MainLoop$.$anonfun$processCommand$5(MainLoop.scala:244)
at scala.Option.getOrElse(Option.scala:189)
at sbt.MainLoop$.process$1(MainLoop.scala:244)
at sbt.MainLoop$.processCommand(MainLoop.scala:270)
at sbt.MainLoop$.$anonfun$next$5(MainLoop.scala:162)
at sbt.State$StateOpsImpl$.runCmd$1(State.scala:289)
at sbt.State$StateOpsImpl$.process$extension(State.scala:325)
at sbt.MainLoop$.$anonfun$next$4(MainLoop.scala:162)
at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
at sbt.MainLoop$.next(MainLoop.scala:162)
at sbt.MainLoop$.run(MainLoop.scala:143)
at sbt.MainLoop$.$anonfun$runWithNewLog$1(MainLoop.scala:118)
at sbt.io.Using.apply(Using.scala:27)
at sbt.MainLoop$.runWithNewLog(MainLoop.scala:111)
at sbt.MainLoop$.runAndClearLast(MainLoop.scala:65)
at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:50)
at sbt.MainLoop$.runLogged(MainLoop.scala:41)
at sbt.StandardMain$.runManaged(Main.scala:190)
at sbt.xMain$.$anonfun$run$8(Main.scala:102)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withIn(Console.scala:230)
at sbt.internal.util.Terminal$.withIn(Terminal.scala:557)
at sbt.internal.util.Terminal$.$anonfun$withStreams$1(Terminal.scala:347)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withOut(Console.scala:167)
at sbt.internal.util.Terminal$.$anonfun$withOut$2(Terminal.scala:547)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
at scala.Console$.withErr(Console.scala:196)
at sbt.internal.util.Terminal$.withOut(Terminal.scala:547)
at sbt.internal.util.Terminal$.withStreams(Terminal.scala:347)
at sbt.xMain$.run(Main.scala:86)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at sbt.internal.XMainConfiguration.run(XMainConfiguration.scala:83)
at sbt.xMain.run(Main.scala:46)
at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:111)
at xsbt.boot.Launch$.withContextLoader(Launch.scala:130)
at xsbt.boot.Launch$.run(Launch.scala:111)
at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:37)
at xsbt.boot.Launch$.launch(Launch.scala:119)
at xsbt.boot.Launch$.apply(Launch.scala:20)
at xsbt.boot.Boot$.runImpl(Boot.scala:56)
at xsbt.boot.Boot$.main(Boot.scala:18)
at xsbt.boot.Boot.main(Boot.scala)
This might be something in IntelliJ, but I suspect it's also due to the fact that the versioning scheme for milestone releases isn't supported.d
I've got a project using scala 3.0.0-M1 (https://github.com/softwaremill/sttp-model), and I think there's some incompatibility with the versioning scheme and projectmatrix. sbt itself loads fine, and generates projects e.g.:
Here's the first problem: it's not possible to cross-build for 3.0.0-M1 and 3.0.0-M2. I suppose for the milestone/RC releases, the full version should be appended?
The second problem surfaces when trying to import the project to IntelliJ. Not sure what kind of task intellij is issuing to sbt, but it ends up with the following stacktrace:
This might be something in IntelliJ, but I suspect it's also due to the fact that the versioning scheme for milestone releases isn't supported.d