Include Scala 3 in cross-build (#30392)
* Include Scala 3 in cross-build sbt cross-building sometimes behaves surprisingly, so this does not work yet: when switching to 3.0.1-RC1 it still tries to build the modules that do not support that version yet, even though they are 'excluded'. This also currently breaks cross-publishing, so we cannot merge this. Once this works we should add a note to the documentation clarifying that the Scala 3 artifacts are experimental. * Fix jackson test dependency * Don't publish docs for scala3 artifacts for now * Publish empty doc packages for Scala 3 artifacts
This commit is contained in:
parent
62139a2220
commit
cdad7938b0
8 changed files with 158 additions and 109 deletions
49
build.sbt
49
build.sbt
|
|
@ -40,8 +40,6 @@ shellPrompt := { s =>
|
|||
}
|
||||
resolverSettings
|
||||
|
||||
def isScala213: Boolean = System.getProperty("akka.build.scalaVersion", "").startsWith("2.13")
|
||||
|
||||
// When this is updated the set of modules in ActorSystem.allModules should also be updated
|
||||
lazy val userProjects: Seq[ProjectReference] = List[ProjectReference](
|
||||
actor,
|
||||
|
|
@ -101,6 +99,8 @@ lazy val root = Project(id = "akka", base = file("."))
|
|||
serialversionRemoverPlugin))
|
||||
.settings(Compile / headerCreate / unmanagedSources := (baseDirectory.value / "project").**("*.scala").get)
|
||||
.enablePlugins(CopyrightHeaderForBuild)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions := Nil)
|
||||
|
||||
lazy val actor = akkaModule("akka-actor")
|
||||
.settings(Dependencies.actor)
|
||||
|
|
@ -113,6 +113,8 @@ lazy val actor = akkaModule("akka-actor")
|
|||
.settings(VersionGenerator.settings)
|
||||
.settings(serialversionRemoverPluginSettings)
|
||||
.enablePlugins(BoilerplatePlugin)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions += akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val actorTests = akkaModule("akka-actor-tests")
|
||||
.dependsOn(testkit % "compile->compile;test->test")
|
||||
|
|
@ -148,6 +150,8 @@ lazy val cluster = akkaModule("akka-cluster")
|
|||
.settings(Test / parallelExecution := false)
|
||||
.configs(MultiJvm)
|
||||
.enablePlugins(MultiNodeScalaTest)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val clusterMetrics = akkaModule("akka-cluster-metrics")
|
||||
.dependsOn(
|
||||
|
|
@ -244,6 +248,8 @@ lazy val docs = akkaModule("akka-docs")
|
|||
Jdk9)
|
||||
.disablePlugins(MimaPlugin)
|
||||
.disablePlugins((if (ScalafixSupport.fixTestScope) Nil else Seq(ScalafixPlugin)): _*)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val jackson = akkaModule("akka-serialization-jackson")
|
||||
.dependsOn(
|
||||
|
|
@ -257,6 +263,8 @@ lazy val jackson = akkaModule("akka-serialization-jackson")
|
|||
.settings(OSGi.jackson)
|
||||
.settings(javacOptions += "-parameters")
|
||||
.enablePlugins(ScaladocNoVerificationOfDiagrams)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val multiNodeTestkit = akkaModule("akka-multi-node-testkit")
|
||||
.dependsOn(remote, testkit)
|
||||
|
|
@ -279,6 +287,8 @@ lazy val persistence = akkaModule("akka-persistence")
|
|||
.settings(OSGi.persistence)
|
||||
.settings(Protobuf.settings)
|
||||
.settings(Test / fork := true)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val persistenceQuery = akkaModule("akka-persistence-query")
|
||||
.dependsOn(stream, persistence % "compile->compile;test->test", streamTestkit % "test")
|
||||
|
|
@ -326,6 +336,8 @@ lazy val persistenceTypedTests = akkaModule("akka-persistence-typed-tests")
|
|||
.settings(javacOptions += "-parameters") // for Jackson
|
||||
.disablePlugins(MimaPlugin)
|
||||
.enablePlugins(NoPublish)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val protobuf = akkaModule("akka-protobuf")
|
||||
.settings(OSGi.protobuf)
|
||||
|
|
@ -388,6 +400,8 @@ lazy val remote =
|
|||
.settings(Test / parallelExecution := false)
|
||||
.settings(serialversionRemoverPluginSettings)
|
||||
.enablePlugins(Jdk9)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val remoteTests = akkaModule("akka-remote-tests")
|
||||
.dependsOn(
|
||||
|
|
@ -402,6 +416,8 @@ lazy val remoteTests = akkaModule("akka-remote-tests")
|
|||
.configs(MultiJvm)
|
||||
.enablePlugins(MultiNodeScalaTest, NoPublish)
|
||||
.disablePlugins(MimaPlugin)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val slf4j = akkaModule("akka-slf4j")
|
||||
.dependsOn(actor, testkit % "test->test")
|
||||
|
|
@ -422,6 +438,8 @@ lazy val streamTestkit = akkaModule("akka-stream-testkit")
|
|||
.settings(Dependencies.streamTestkit)
|
||||
.settings(AutomaticModuleName.settings("akka.stream.testkit"))
|
||||
.settings(OSGi.streamTestkit)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val streamTests = akkaModule("akka-stream-tests")
|
||||
.configs(akka.Jdk9.TestJdk9)
|
||||
|
|
@ -483,6 +501,8 @@ lazy val persistenceTyped = akkaModule("akka-persistence-typed")
|
|||
// To be able to import ContainerFormats.proto
|
||||
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf"))
|
||||
.settings(OSGi.persistenceTyped)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val clusterTyped = akkaModule("akka-cluster-typed")
|
||||
.dependsOn(
|
||||
|
|
@ -524,6 +544,8 @@ lazy val clusterShardingTyped = akkaModule("akka-cluster-sharding-typed")
|
|||
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf"))
|
||||
.configs(MultiJvm)
|
||||
.enablePlugins(MultiNodeScalaTest)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val streamTyped = akkaModule("akka-stream-typed")
|
||||
.dependsOn(
|
||||
|
|
@ -539,6 +561,8 @@ lazy val actorTestkitTyped = akkaModule("akka-actor-testkit-typed")
|
|||
.dependsOn(actorTyped, slf4j, testkit % "compile->compile;test->test")
|
||||
.settings(AutomaticModuleName.settings("akka.actor.testkit.typed"))
|
||||
.settings(Dependencies.actorTestkitTyped)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val actorTypedTests = akkaModule("akka-actor-typed-tests")
|
||||
.dependsOn(actorTyped % "compile->CompileJdk9", actorTestkitTyped % "compile->compile;test->test")
|
||||
|
|
@ -551,12 +575,16 @@ lazy val discovery = akkaModule("akka-discovery")
|
|||
.settings(Dependencies.discovery)
|
||||
.settings(AutomaticModuleName.settings("akka.discovery"))
|
||||
.settings(OSGi.discovery)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val coordination = akkaModule("akka-coordination")
|
||||
.dependsOn(actor, testkit % "test->test", actorTests % "test->test")
|
||||
.settings(Dependencies.coordination)
|
||||
.settings(AutomaticModuleName.settings("akka.coordination"))
|
||||
.settings(OSGi.coordination)
|
||||
// TODO https://github.com/akka/akka/issues/30243
|
||||
.settings(crossScalaVersions -= akka.Dependencies.scala3Version)
|
||||
|
||||
lazy val billOfMaterials = Project("akka-bill-of-materials", file("akka-bill-of-materials"))
|
||||
.enablePlugins(BillOfMaterialsPlugin)
|
||||
|
|
@ -576,17 +604,12 @@ lazy val serialversionRemoverPlugin =
|
|||
Compile / doc / sources := Nil,
|
||||
Compile / publishArtifact := false)
|
||||
|
||||
lazy val serialversionRemoverPluginSettings = {
|
||||
if (akka.Dependencies.getScalaVersion() == akka.Dependencies.scala3Version) {
|
||||
Seq(
|
||||
autoCompilerPlugins := true,
|
||||
Compile / scalacOptions += (
|
||||
"-Xplugin:" + (serialversionRemoverPlugin / Compile / Keys.`package`).value.getAbsolutePath.toString
|
||||
))
|
||||
} else {
|
||||
Seq()
|
||||
}
|
||||
}
|
||||
lazy val serialversionRemoverPluginSettings = Seq(
|
||||
Compile / scalacOptions ++= (
|
||||
if (scalaVersion.value.startsWith("3."))
|
||||
Seq("-Xplugin:" + (serialversionRemoverPlugin / Compile / Keys.`package`).value.getAbsolutePath.toString)
|
||||
else Nil
|
||||
))
|
||||
|
||||
def akkaModule(name: String): Project =
|
||||
Project(id = name, base = file(name))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue