Remove Scala 2.11 from crossScalaVersions (#26656)

* Remove Scala 2.11 from crossScalaVersions

* because +buildRelease doesn't work with mixed crossScalaVersions
* let's use akka.build.scalaVersion when building for 2.11
* aggregatedProjects adjusted depending on akka.build.scalaVersion is 2.11 or not,
  there excluding/including the -typed modules

* update travis to use akka.build.scalaVersion
This commit is contained in:
Patrik Nordwall 2019-04-02 15:16:01 +02:00 committed by GitHub
parent fe2317b46e
commit b5b592c8f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 81 additions and 51 deletions

View file

@ -30,7 +30,7 @@ cache:
script: script:
- jabba use "adopt@~1.8.202-08" - jabba use "adopt@~1.8.202-08"
# need to override as the default is to test # need to override as the default is to test
- sbt -jvm-opts .jvmopts-travis ";++$TRAVIS_SCALA_VERSION update ;++$TRAVIS_SCALA_VERSION mimaReportBinaryIssues ;++$TRAVIS_SCALA_VERSION test:compile ;++$TRAVIS_SCALA_VERSION validateCompile" - sbt -jvm-opts .jvmopts-travis -Dakka.build.scalaVersion=$TRAVIS_SCALA_VERSION ";update ;mimaReportBinaryIssues ;test:compile ;validateCompile"
# make 'git branch' work again # make 'git branch' work again
- git branch -f "$TRAVIS_BRANCH" && git checkout "$TRAVIS_BRANCH" - git branch -f "$TRAVIS_BRANCH" && git checkout "$TRAVIS_BRANCH"
# check policies, if on master also upload # check policies, if on master also upload

View file

@ -22,12 +22,14 @@ initialize := {
initialize.value initialize.value
} }
// akka.AkkaBuild.buildSettings akka.AkkaBuild.buildSettings
shellPrompt := { s => Project.extract(s).currentProject.id + " > " } shellPrompt := { s => Project.extract(s).currentProject.id + " > " }
resolverSettings resolverSettings
def isScala211: Boolean = System.getProperty("akka.build.scalaVersion", "").startsWith("2.11")
// When this is updated the set of modules in ActorSystem.allModules should also be updated // When this is updated the set of modules in ActorSystem.allModules should also be updated
lazy val aggregatedProjects: Seq[ProjectReference] = Seq( lazy val aggregatedProjects: Seq[ProjectReference] = List[ProjectReference](
actor, actorTests, actor, actorTests,
agent, agent,
benchJmh, benchJmh,
@ -35,7 +37,6 @@ lazy val aggregatedProjects: Seq[ProjectReference] = Seq(
cluster, clusterMetrics, clusterSharding, clusterTools, cluster, clusterMetrics, clusterSharding, clusterTools,
contrib, contrib,
distributedData, distributedData,
docs,
multiNodeTestkit, multiNodeTestkit,
osgi, osgi,
persistence, persistenceQuery, persistenceShared, persistenceTck, persistence, persistenceQuery, persistenceShared, persistenceTck,
@ -44,14 +45,18 @@ lazy val aggregatedProjects: Seq[ProjectReference] = Seq(
slf4j, slf4j,
stream, streamTestkit, streamTests, streamTestsTck, stream, streamTestkit, streamTests, streamTestsTck,
testkit, testkit,
actorTyped, actorTypedTests, actorTestkitTyped,
persistenceTyped,
clusterTyped, clusterShardingTyped,
benchJmhTyped,
streamTyped,
discovery, discovery,
coordination coordination
) ) ++
(if (isScala211) List.empty[ProjectReference]
else List[ProjectReference](
docs,
actorTyped, actorTypedTests, actorTestkitTyped,
persistenceTyped,
clusterTyped, clusterShardingTyped,
benchJmhTyped,
streamTyped
))
lazy val root = Project( lazy val root = Project(
id = "akka", id = "akka",
@ -62,8 +67,7 @@ lazy val root = Project(
(CrossVersion.partialVersion(scalaVersion.value) match { (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, n)) if n == 11 => aggregatedProjects // ignore all, don't unidoc when scalaVersion is 2.11 case Some((2, n)) if n == 11 => aggregatedProjects // ignore all, don't unidoc when scalaVersion is 2.11
case _ => Seq(remoteTests, benchJmh, benchJmhTyped, protobuf, akkaScalaNightly, docs) case _ => Seq(remoteTests, benchJmh, benchJmhTyped, protobuf, akkaScalaNightly, docs)
}), })
crossScalaVersions := Nil, // Allows some modules (typed) to be only for 2.12 sbt/sbt#3465
) )
.settings( .settings(
unmanagedSources in(Compile, headerCreate) := (baseDirectory.value / "project").**("*.scala").get unmanagedSources in(Compile, headerCreate) := (baseDirectory.value / "project").**("*.scala").get
@ -124,7 +128,6 @@ lazy val benchJmhTyped = akkaModule("akka-bench-jmh-typed")
).map(_ % "compile->compile;compile->test"): _* ).map(_ % "compile->compile;compile->test"): _*
) )
.settings(Dependencies.benchJmh) .settings(Dependencies.benchJmh)
.settings(AkkaBuild.noScala211)
.enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams, NoPublish, CopyrightHeader) .enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams, NoPublish, CopyrightHeader)
.disablePlugins(MimaPlugin, WhiteSourcePlugin, ValidatePullRequest, CopyrightHeaderInPr) .disablePlugins(MimaPlugin, WhiteSourcePlugin, ValidatePullRequest, CopyrightHeaderInPr)
@ -269,7 +272,6 @@ lazy val docs = akkaModule("akka-docs")
resolvers += Resolver.jcenterRepo, resolvers += Resolver.jcenterRepo,
deployRsyncArtifact := List((paradox in Compile).value -> s"www/docs/akka/${version.value}") deployRsyncArtifact := List((paradox in Compile).value -> s"www/docs/akka/${version.value}")
) )
.settings(AkkaBuild.noScala211)
.enablePlugins( .enablePlugins(
AkkaParadoxPlugin, DeployRsync, NoPublish, ParadoxBrowse, AkkaParadoxPlugin, DeployRsync, NoPublish, ParadoxBrowse,
ScaladocNoVerificationOfDiagrams, ScaladocNoVerificationOfDiagrams,
@ -418,7 +420,6 @@ lazy val actorTyped = akkaModule("akka-actor-typed")
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AutomaticModuleName.settings("akka.actor.typed")) // fine for now, eventually new module name to become typed.actor .settings(AutomaticModuleName.settings("akka.actor.typed")) // fine for now, eventually new module name to become typed.actor
.settings(OSGi.actorTyped) .settings(OSGi.actorTyped)
.settings(AkkaBuild.noScala211)
.settings( .settings(
initialCommands := initialCommands :=
""" """
@ -442,7 +443,6 @@ lazy val persistenceTyped = akkaModule("akka-persistence-typed")
) )
.settings(Dependencies.persistenceShared) .settings(Dependencies.persistenceShared)
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AkkaBuild.noScala211)
.settings(AutomaticModuleName.settings("akka.persistence.typed")) .settings(AutomaticModuleName.settings("akka.persistence.typed"))
.settings(OSGi.persistenceTyped) .settings(OSGi.persistenceTyped)
.disablePlugins(MimaPlugin) .disablePlugins(MimaPlugin)
@ -461,7 +461,6 @@ lazy val clusterTyped = akkaModule("akka-cluster-typed")
remoteTests % "test->test" remoteTests % "test->test"
) )
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AkkaBuild.noScala211)
.settings(AutomaticModuleName.settings("akka.cluster.typed")) .settings(AutomaticModuleName.settings("akka.cluster.typed"))
.disablePlugins(MimaPlugin) .disablePlugins(MimaPlugin)
.configs(MultiJvm) .configs(MultiJvm)
@ -478,7 +477,6 @@ lazy val clusterShardingTyped = akkaModule("akka-cluster-sharding-typed")
remoteTests % "test->test" remoteTests % "test->test"
) )
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AkkaBuild.noScala211)
.settings(AutomaticModuleName.settings("akka.cluster.sharding.typed")) .settings(AutomaticModuleName.settings("akka.cluster.sharding.typed"))
// To be able to import ContainerFormats.proto // To be able to import ContainerFormats.proto
.settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf")) .settings(Protobuf.importPath := Some(baseDirectory.value / ".." / "akka-remote" / "src" / "main" / "protobuf"))
@ -495,7 +493,6 @@ lazy val streamTyped = akkaModule("akka-stream-typed")
actorTypedTests % "test->test" actorTypedTests % "test->test"
) )
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AkkaBuild.noScala211)
.settings(AutomaticModuleName.settings("akka.stream.typed")) .settings(AutomaticModuleName.settings("akka.stream.typed"))
.disablePlugins(MimaPlugin) .disablePlugins(MimaPlugin)
.enablePlugins(ScaladocNoVerificationOfDiagrams) .enablePlugins(ScaladocNoVerificationOfDiagrams)
@ -504,7 +501,6 @@ lazy val actorTestkitTyped = akkaModule("akka-actor-testkit-typed")
.dependsOn(actorTyped, testkit % "compile->compile;test->test") .dependsOn(actorTyped, testkit % "compile->compile;test->test")
.settings(AutomaticModuleName.settings("akka.actor.testkit.typed")) .settings(AutomaticModuleName.settings("akka.actor.testkit.typed"))
.settings(Dependencies.actorTestkitTyped) .settings(Dependencies.actorTestkitTyped)
.settings(AkkaBuild.noScala211)
.disablePlugins(MimaPlugin) .disablePlugins(MimaPlugin)
lazy val actorTypedTests = akkaModule("akka-actor-typed-tests") lazy val actorTypedTests = akkaModule("akka-actor-typed-tests")
@ -513,7 +509,6 @@ lazy val actorTypedTests = akkaModule("akka-actor-typed-tests")
actorTestkitTyped % "compile->compile;test->test" actorTestkitTyped % "compile->compile;test->test"
) )
.settings(AkkaBuild.mayChangeSettings) .settings(AkkaBuild.mayChangeSettings)
.settings(AkkaBuild.noScala211)
.disablePlugins(MimaPlugin) .disablePlugins(MimaPlugin)
.enablePlugins(NoPublish) .enablePlugins(NoPublish)

View file

@ -234,10 +234,6 @@ object AkkaBuild {
javacOptions in doc ++= Seq("-Xdoclint:none", "--ignore-source-errors")) javacOptions in doc ++= Seq("-Xdoclint:none", "--ignore-source-errors"))
lazy val noScala211 = Seq(
crossScalaVersions := crossScalaVersions.value.filterNot(_.startsWith("2.11"))
)
def loadSystemProperties(fileName: String): Unit = { def loadSystemProperties(fileName: String): Unit = {
import scala.collection.JavaConverters._ import scala.collection.JavaConverters._
val file = new File(fileName) val file = new File(fileName)

View file

@ -21,14 +21,15 @@ object Dependencies {
val aeronVersion = "1.15.1" val aeronVersion = "1.15.1"
val Versions = Seq( val Versions = Seq(
crossScalaVersions := Seq("2.12.8", "2.11.12", "2.13.0-M5"), crossScalaVersions := Seq("2.12.8", "2.13.0-M5"),
scalaVersion := System.getProperty("akka.build.scalaVersion", crossScalaVersions.value.head), scalaVersion := System.getProperty("akka.build.scalaVersion", crossScalaVersions.value.head),
scalaStmVersion := sys.props.get("akka.build.scalaStmVersion").getOrElse("0.9"), scalaStmVersion := sys.props.get("akka.build.scalaStmVersion").getOrElse("0.9"),
scalaCheckVersion := sys.props.get("akka.build.scalaCheckVersion").getOrElse( scalaCheckVersion := sys.props
CrossVersion.partialVersion(scalaVersion.value) match { .get("akka.build.scalaCheckVersion")
case Some((2, n)) if n >= 12 => "1.14.0" // does not work for 2.11 .getOrElse(CrossVersion.partialVersion(scalaVersion.value) match {
case _ => "1.13.2" case Some((2, n)) if n >= 12 => "1.14.0" // does not work for 2.11
}), case _ => "1.13.2"
}),
scalaTestVersion := "3.0.7", scalaTestVersion := "3.0.7",
java8CompatVersion := { java8CompatVersion := {
CrossVersion.partialVersion(scalaVersion.value) match { CrossVersion.partialVersion(scalaVersion.value) match {
@ -41,7 +42,7 @@ object Dependencies {
object Compile { object Compile {
// Compile // Compile
val camelCore = "org.apache.camel" % "camel-core" % "2.17.7" exclude ("org.slf4j", "slf4j-api") // ApacheV2 val camelCore = ("org.apache.camel" % "camel-core" % "2.17.7").exclude("org.slf4j", "slf4j-api") // ApacheV2
// when updating config version, update links ActorSystem ScalaDoc to link to the updated version // when updating config version, update links ActorSystem ScalaDoc to link to the updated version
val config = "com.typesafe" % "config" % "1.3.3" // ApacheV2 val config = "com.typesafe" % "config" % "1.3.3" // ApacheV2
@ -77,7 +78,6 @@ object Dependencies {
val aeronDriver = "io.aeron" % "aeron-driver" % aeronVersion // ApacheV2 val aeronDriver = "io.aeron" % "aeron-driver" % aeronVersion // ApacheV2
val aeronClient = "io.aeron" % "aeron-client" % aeronVersion // ApacheV2 val aeronClient = "io.aeron" % "aeron-client" % aeronVersion // ApacheV2
object Docs { object Docs {
val sprayJson = "io.spray" %% "spray-json" % "1.3.4" % "test" val sprayJson = "io.spray" %% "spray-json" % "1.3.4" % "test"
val gson = "com.google.code.gson" % "gson" % "2.8.5" % "test" val gson = "com.google.code.gson" % "gson" % "2.8.5" % "test"
@ -124,18 +124,16 @@ object Dependencies {
// If changed, update akka-docs/build.sbt as well // If changed, update akka-docs/build.sbt as well
val sigarLoader = "io.kamon" % "sigar-loader" % "1.6.6-rev002" % "optional;provided;test" // ApacheV2 val sigarLoader = "io.kamon" % "sigar-loader" % "1.6.6-rev002" % "optional;provided;test" // ApacheV2
// Non-default module in Java9, removed in Java11. For Camel. // Non-default module in Java9, removed in Java11. For Camel.
val jaxb = "javax.xml.bind" % "jaxb-api" % "2.3.0" % "provided;test" val jaxb = "javax.xml.bind" % "jaxb-api" % "2.3.0" % "provided;test"
val activation = "com.sun.activation" % "javax.activation" % "1.2.0" % "provided;test" val activation = "com.sun.activation" % "javax.activation" % "1.2.0" % "provided;test"
val levelDB = "org.iq80.leveldb" % "leveldb" % "0.10" % "optional;provided" // ApacheV2 val levelDB = "org.iq80.leveldb" % "leveldb" % "0.10" % "optional;provided" // ApacheV2
val levelDBmultiJVM = "org.iq80.leveldb" % "leveldb" % "0.10" % "optional;provided;multi-jvm" // ApacheV2 val levelDBmultiJVM = "org.iq80.leveldb" % "leveldb" % "0.10" % "optional;provided;multi-jvm" // ApacheV2
val levelDBNative = "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.8" % "optional;provided" // New BSD val levelDBNative = "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.8" % "optional;provided" // New BSD
val junit = Compile.junit % "optional;provided;test" val junit = Compile.junit % "optional;provided;test"
val scalatest = Def.setting { "org.scalatest" %% "scalatest" % scalaTestVersion.value % "optional;provided;test" } // ApacheV2 val scalatest = Def.setting { "org.scalatest" %% "scalatest" % scalaTestVersion.value % "optional;provided;test" } // ApacheV2
} }
@ -155,10 +153,16 @@ object Dependencies {
val testkit = l ++= Seq(Test.junit, Test.scalatest.value) ++ Test.metricsAll val testkit = l ++= Seq(Test.junit, Test.scalatest.value) ++ Test.metricsAll
val actorTests = l ++= Seq( val actorTests = l ++= Seq(
Test.junit, Test.scalatest.value, Test.commonsCodec, Test.commonsMath, Test.junit,
Test.mockito, Test.scalacheck.value, Test.jimfs, Test.scalatest.value,
Test.dockerClient, Provided.activation // dockerClient needs javax.activation.DataSource in JDK 11+ Test.commonsCodec,
) Test.commonsMath,
Test.mockito,
Test.scalacheck.value,
Test.jimfs,
Test.dockerClient,
Provided.activation // dockerClient needs javax.activation.DataSource in JDK 11+
)
val actorTestkitTyped = l ++= Seq(Provided.junit, Provided.scalatest.value) val actorTestkitTyped = l ++= Seq(Provided.junit, Provided.scalatest.value)
@ -170,7 +174,12 @@ object Dependencies {
val clusterTools = l ++= Seq(Test.junit, Test.scalatest.value) val clusterTools = l ++= Seq(Test.junit, Test.scalatest.value)
val clusterSharding = l ++= Seq(Provided.levelDBmultiJVM, Provided.levelDBNative, Test.junit, Test.scalatest.value, Test.commonsIo) val clusterSharding = l ++= Seq(
Provided.levelDBmultiJVM,
Provided.levelDBNative,
Test.junit,
Test.scalatest.value,
Test.commonsIo)
val clusterMetrics = l ++= Seq(Provided.sigarLoader, Test.slf4jJul, Test.slf4jLog4j, Test.logback, Test.mockito) val clusterMetrics = l ++= Seq(Provided.sigarLoader, Test.slf4jJul, Test.slf4jLog4j, Test.logback, Test.mockito)
@ -180,17 +189,49 @@ object Dependencies {
val agent = l ++= Seq(scalaStm.value, Test.scalatest.value, Test.junit) val agent = l ++= Seq(scalaStm.value, Test.scalatest.value, Test.junit)
val persistence = l ++= Seq(Provided.levelDB, Provided.levelDBNative, Test.scalatest.value, Test.junit, Test.commonsIo, Test.commonsCodec, Test.scalaXml) val persistence = l ++= Seq(
Provided.levelDB,
Provided.levelDBNative,
Test.scalatest.value,
Test.junit,
Test.commonsIo,
Test.commonsCodec,
Test.scalaXml)
val persistenceQuery = l ++= Seq(Test.scalatest.value, Test.junit, Test.commonsIo, Provided.levelDB, Provided.levelDBNative) val persistenceQuery = l ++= Seq(
Test.scalatest.value,
Test.junit,
Test.commonsIo,
Provided.levelDB,
Provided.levelDBNative)
val persistenceTck = l ++= Seq(Test.scalatest.value.withConfigurations(Some("compile")), Test.junit.withConfigurations(Some("compile")), Provided.levelDB, Provided.levelDBNative) val persistenceTck = l ++= Seq(
Test.scalatest.value.withConfigurations(Some("compile")),
Test.junit.withConfigurations(Some("compile")),
Provided.levelDB,
Provided.levelDBNative)
val persistenceShared = l ++= Seq(Provided.levelDB, Provided.levelDBNative) val persistenceShared = l ++= Seq(Provided.levelDB, Provided.levelDBNative)
val camel = l ++= Seq(camelCore, Provided.jaxb, Provided.activation, Test.scalatest.value, Test.junit, Test.mockito, Test.logback, Test.commonsIo) val camel = l ++= Seq(
camelCore,
Provided.jaxb,
Provided.activation,
Test.scalatest.value,
Test.junit,
Test.mockito,
Test.logback,
Test.commonsIo)
val osgi = l ++= Seq(osgiCore, osgiCompendium, Test.logback, Test.commonsIo, Test.pojosr, Test.tinybundles, Test.scalatest.value, Test.junit) val osgi = l ++= Seq(
osgiCore,
osgiCompendium,
Test.logback,
Test.commonsIo,
Test.pojosr,
Test.tinybundles,
Test.scalatest.value,
Test.junit)
val docs = l ++= Seq(Test.scalatest.value, Test.junit, Docs.sprayJson, Docs.gson, Provided.levelDB) val docs = l ++= Seq(Test.scalatest.value, Test.junit, Docs.sprayJson, Docs.gson, Provided.levelDB)
@ -200,10 +241,7 @@ object Dependencies {
// akka stream // akka stream
lazy val stream = l ++= Seq[sbt.ModuleID]( lazy val stream = l ++= Seq[sbt.ModuleID](reactiveStreams, sslConfigCore, Test.scalatest.value)
reactiveStreams,
sslConfigCore,
Test.scalatest.value)
lazy val streamTestkit = l ++= Seq(Test.scalatest.value, Test.scalacheck.value, Test.junit) lazy val streamTestkit = l ++= Seq(Test.scalatest.value, Test.scalacheck.value, Test.junit)
@ -241,6 +279,6 @@ object DependencyHelpers {
// 2.12.0 // 2.12.0
case version @ ScalaVersion() => version case version @ ScalaVersion() => version
// transforms 2.12.0-custom-version to 2.12.0 // transforms 2.12.0-custom-version to 2.12.0
case version => version.takeWhile(_ != '-') case version => version.takeWhile(_ != '-')
} }
} }

View file

@ -299,6 +299,7 @@ else
RELEASE_OPT="-Dakka.genjavadoc.enabled=true" RELEASE_OPT="-Dakka.genjavadoc.enabled=true"
fi fi
try sbt $RELEASE_OPT +buildRelease try sbt $RELEASE_OPT +buildRelease
try sbt -Dakka.build.scalaVersion=2.11.12 -D$RELEASE_OPT buildRelease
try sbt $RELEASE_OPT buildDocs try sbt $RELEASE_OPT buildDocs
echolog "Successfully created local release" echolog "Successfully created local release"