#18765 Update to latest MiMa which is now an AutoPlugin.

* check for binary inc. issues by default
* if check is not needed, disable MimaPlugin
* determine old artifact id from the current one
This commit is contained in:
Martynas Mickevičius 2016-03-10 10:45:35 +02:00
parent 87113f9b14
commit 50f99328fe
43 changed files with 137 additions and 210 deletions

View file

@ -4,3 +4,5 @@ AkkaBuild.defaultSettings
AkkaBuild.dontPublishSettings AkkaBuild.dontPublishSettings
Formatting.formatSettings Formatting.formatSettings
Dependencies.actorTests Dependencies.actorTests
disablePlugins(MimaPlugin)

View file

@ -1,16 +1,9 @@
import akka.{ AkkaBuild, Formatting, OSGi, Dependencies, Version } import akka.{ AkkaBuild, Formatting, OSGi, Dependencies, Version }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.actor OSGi.actor
Dependencies.actor Dependencies.actor
Version.versionSettings
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-actor").value
enablePlugins(spray.boilerplate.BoilerplatePlugin) enablePlugins(spray.boilerplate.BoilerplatePlugin)
Version.versionSettings

View file

@ -1,14 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, ScaladocNoVerificationOfDiagrams } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, ScaladocNoVerificationOfDiagrams }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.agent OSGi.agent
Dependencies.agent Dependencies.agent
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-agent").value
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)

View file

@ -2,7 +2,7 @@ import akka._
import com.typesafe.sbt.pgp.PgpKeys.publishSigned import com.typesafe.sbt.pgp.PgpKeys.publishSigned
enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams) enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams)
disablePlugins(Unidoc) disablePlugins(Unidoc, MimaPlugin)
AkkaBuild.defaultSettings AkkaBuild.defaultSettings

View file

@ -1,12 +1,6 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.camel OSGi.camel
Dependencies.camel Dependencies.camel
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-camel").value

View file

@ -1,19 +1,12 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest, SigarLoader } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest, SigarLoader }
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
SigarLoader.sigarSettings SigarLoader.sigarSettings
OSGi.clusterMetrics OSGi.clusterMetrics
Dependencies.clusterMetrics Dependencies.clusterMetrics
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-metrics").value
parallelExecution in Test := false parallelExecution in Test := false
enablePlugins(MultiNodeScalaTest) enablePlugins(MultiNodeScalaTest)

View file

@ -1,14 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.clusterSharding OSGi.clusterSharding
Dependencies.clusterSharding Dependencies.clusterSharding
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-sharding").value
enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams)

View file

@ -1,14 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.clusterTools OSGi.clusterTools
Dependencies.clusterTools Dependencies.clusterTools
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-tools").value
enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams)

View file

@ -1,17 +1,11 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest }
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.cluster OSGi.cluster
Dependencies.cluster Dependencies.cluster
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster").value
// disable parallel tests // disable parallel tests
parallelExecution in Test := false parallelExecution in Test := false

View file

@ -1,12 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNode, ScaladocNoVerificationOfDiagrams } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNode, ScaladocNoVerificationOfDiagrams }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.contrib OSGi.contrib
Dependencies.contrib Dependencies.contrib
description := """| description := """|
@ -21,3 +17,4 @@ description := """|
|""".stripMargin |""".stripMargin
enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams)
disablePlugins(MimaPlugin)

View file

@ -1,16 +1,9 @@
import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, Unidoc, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, Unidoc, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.distributedData OSGi.distributedData
Dependencies.distributedData Dependencies.distributedData
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-distributed-data-experimental").value
enablePlugins(MultiNodeScalaTest) enablePlugins(MultiNodeScalaTest)

View file

@ -3,28 +3,21 @@ import akka.ValidatePullRequest._
import com.typesafe.sbt.SbtScalariform.ScalariformKeys import com.typesafe.sbt.SbtScalariform.ScalariformKeys
import com.typesafe.sbt.SbtSite.site import com.typesafe.sbt.SbtSite.site
import com.typesafe.sbt.site.SphinxSupport._ import com.typesafe.sbt.site.SphinxSupport._
import com.typesafe.tools.mima.plugin.MimaKeys
enablePlugins(ScaladocNoVerificationOfDiagrams)
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.dontPublishSettings
Formatting.docFormatSettings Formatting.docFormatSettings
Dependencies.docs
site.settings site.settings
site.sphinxSupport() site.sphinxSupport()
site.publishSite site.publishSite
SphinxDoc.sphinxPreprocessing SphinxDoc.sphinxPreprocessing
SphinxDoc.docsSettings SphinxDoc.docsSettings
Dependencies.docs
unmanagedSourceDirectories in ScalariformKeys.format in Test <<= unmanagedSourceDirectories in Test unmanagedSourceDirectories in ScalariformKeys.format in Test <<= unmanagedSourceDirectories in Test
additionalTasks in ValidatePR += generate in Sphinx additionalTasks in ValidatePR += generate in Sphinx
AkkaBuild.dontPublishSettings enablePlugins(ScaladocNoVerificationOfDiagrams)
disablePlugins(MimaPlugin)

View file

@ -1,8 +1,6 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.httpCore OSGi.httpCore
Dependencies.httpCore Dependencies.httpCore
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-core").value

View file

@ -1,11 +1,9 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.httpJackson OSGi.httpJackson
Dependencies.httpJackson Dependencies.httpJackson
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-jackson").value
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)

View file

@ -1,9 +1,7 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.httpSprayJson OSGi.httpSprayJson
Dependencies.httpSprayJson Dependencies.httpSprayJson
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-spray-json").value

View file

@ -1,9 +1,7 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.httpXml OSGi.httpXml
Dependencies.httpXml Dependencies.httpXml
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-xml").value

View file

@ -1,10 +1,8 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.httpTestkit OSGi.httpTestkit
Dependencies.httpTestkit Dependencies.httpTestkit
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-testkit").value
scalacOptions in Compile += "-language:postfixOps" scalacOptions in Compile += "-language:postfixOps"

View file

@ -10,3 +10,5 @@ testOptions += Tests.Argument(TestFrameworks.JUnit, "--ignore-runners=")
scalacOptions in Compile += "-language:_" scalacOptions in Compile += "-language:_"
mainClass in run in Test := Some("akka.http.javadsl.SimpleServerApp") mainClass in run in Test := Some("akka.http.javadsl.SimpleServerApp")
disablePlugins(MimaPlugin)

View file

@ -1,11 +1,10 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.http OSGi.http
Dependencies.http Dependencies.http
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http").value
enablePlugins(spray.boilerplate.BoilerplatePlugin) enablePlugins(spray.boilerplate.BoilerplatePlugin)
scalacOptions in Compile += "-language:_" scalacOptions in Compile += "-language:_"

View file

@ -1,12 +1,7 @@
import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams } import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
Dependencies.kernel Dependencies.kernel
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-kernel").value
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)

View file

@ -1,8 +1,4 @@
import akka.{AkkaBuild, Formatting, OSGi} import akka.{AkkaBuild, Formatting}
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-multi-node-testkit").value

View file

@ -1,14 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.osgi OSGi.osgi
Dependencies.osgi Dependencies.osgi
parallelExecution in Test := false parallelExecution in Test := false
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-osgi").value

View file

@ -1,5 +1,4 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.docFormatSettings Formatting.docFormatSettings
@ -14,3 +13,4 @@ scalacOptions += "-language:_"
sources in doc in Compile := List() sources in doc in Compile := List()
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)
disablePlugins(MimaPlugin)

View file

@ -1,18 +1,11 @@
import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.persistenceQuery OSGi.persistenceQuery
Dependencies.persistenceQuery Dependencies.persistenceQuery
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-persistence-query-experimental").value fork in Test := true
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)
fork in Test := true

View file

@ -6,3 +6,5 @@ Formatting.formatSettings
Dependencies.persistenceShared Dependencies.persistenceShared
fork in Test := true fork in Test := true
disablePlugins(MimaPlugin)

View file

@ -1,12 +1,10 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
// OSGi.persistenceTck TODO: we do need to export this as OSGi bundle too? // OSGi.persistenceTck TODO: we do need to export this as OSGi bundle too?
Dependencies.persistenceTck Dependencies.persistenceTck
fork in Test := true fork in Test := true
disablePlugins(MimaPlugin)

View file

@ -1,14 +1,8 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.persistence OSGi.persistence
Dependencies.persistence Dependencies.persistence
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-persistence").value
fork in Test := true fork in Test := true

View file

@ -1,11 +1,8 @@
import akka.{ AkkaBuild, Formatting, OSGi, Unidoc, Dependencies } import akka.{ AkkaBuild, Formatting, OSGi, Unidoc, Dependencies }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.protobuf
enablePlugins(ScaladocNoVerificationOfDiagrams) enablePlugins(ScaladocNoVerificationOfDiagrams)
disablePlugins(MimaPlugin)
OSGi.protobuf

View file

@ -1,18 +1,14 @@
import akka.{ AkkaBuild, Dependencies, Formatting, MultiNodeScalaTest, Unidoc } import akka.{ AkkaBuild, Dependencies, Formatting, MultiNodeScalaTest, Unidoc }
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.dontPublishSettings
Formatting.formatSettings Formatting.formatSettings
Dependencies.remoteTests Dependencies.remoteTests
// disable parallel tests // disable parallel tests
parallelExecution in Test := false parallelExecution in Test := false
publishArtifact in Compile := false publishArtifact in Compile := false
enablePlugins(MultiNodeScalaTest) enablePlugins(MultiNodeScalaTest)
disablePlugins(MimaPlugin)
AkkaBuild.dontPublishSettings

View file

@ -1,14 +1,8 @@
import akka.{AkkaBuild, Dependencies, Formatting, OSGi} import akka.{AkkaBuild, Dependencies, Formatting, OSGi}
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.remote OSGi.remote
Dependencies.remote Dependencies.remote
parallelExecution in Test := false parallelExecution in Test := false
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-remote").value

View file

@ -1,12 +1,6 @@
import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } import akka.{ AkkaBuild, Dependencies, Formatting, OSGi }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.slf4j OSGi.slf4j
Dependencies.slf4j Dependencies.slf4j
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-slf4j").value

View file

@ -1,8 +1,6 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.streamTestkit OSGi.streamTestkit
Dependencies.streamTestkit Dependencies.streamTestkit
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-stream-testkit").value

View file

@ -4,3 +4,5 @@ AkkaBuild.defaultSettings
AkkaBuild.dontPublishSettings AkkaBuild.dontPublishSettings
Formatting.formatSettings Formatting.formatSettings
Dependencies.streamTestsTck Dependencies.streamTestsTck
disablePlugins(MimaPlugin)

View file

@ -4,3 +4,5 @@ AkkaBuild.defaultSettings
AkkaBuild.dontPublishSettings AkkaBuild.dontPublishSettings
Formatting.formatSettings Formatting.formatSettings
Dependencies.streamTests Dependencies.streamTests
disablePlugins(MimaPlugin)

View file

@ -1,9 +1,8 @@
import akka._ import akka._
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.stream OSGi.stream
Dependencies.stream Dependencies.stream
MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-stream").value
enablePlugins(spray.boilerplate.BoilerplatePlugin) enablePlugins(spray.boilerplate.BoilerplatePlugin)

View file

@ -1,15 +1,8 @@
import akka.{ AkkaBuild, Formatting, OSGi, Dependencies } import akka.{ AkkaBuild, Formatting, OSGi, Dependencies }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
Formatting.formatSettings Formatting.formatSettings
OSGi.testkit OSGi.testkit
Dependencies.testkit // to fix scaladoc generation
// to fix scaladoc generation
Dependencies.testkit
initialCommands += "import akka.testkit._" initialCommands += "import akka.testkit._"
MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-testkit").value

View file

@ -1,6 +1,7 @@
import akka.{ AkkaBuild, Formatting, OSGi, Dependencies } import akka.{ AkkaBuild, Formatting }
import com.typesafe.tools.mima.plugin.MimaKeys
AkkaBuild.defaultSettings AkkaBuild.defaultSettings
AkkaBuild.experimentalSettings AkkaBuild.experimentalSettings
Formatting.formatSettings Formatting.formatSettings
disablePlugins(MimaPlugin)

View file

@ -1 +1,2 @@
enablePlugins(akka.UnidocRoot, akka.TimeStampede, akka.UnidocWithPrValidation) enablePlugins(akka.UnidocRoot, akka.TimeStampede, akka.UnidocWithPrValidation)
disablePlugins(MimaPlugin)

View file

@ -13,6 +13,7 @@ import com.typesafe.sbt.S3Plugin.S3
import com.typesafe.sbt.S3Plugin.s3Settings import com.typesafe.sbt.S3Plugin.s3Settings
import com.typesafe.sbt.pgp.PgpKeys.publishSigned import com.typesafe.sbt.pgp.PgpKeys.publishSigned
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm
import com.typesafe.tools.mima.plugin.MimaPlugin
import sbt.Keys._ import sbt.Keys._
import sbt._ import sbt._
import sbtunidoc.Plugin.ScalaUnidoc import sbtunidoc.Plugin.ScalaUnidoc
@ -50,7 +51,7 @@ object AkkaBuild extends Build {
archivesPathFinder.get.map(file => (file -> ("akka/" + file.getName))) archivesPathFinder.get.map(file => (file -> ("akka/" + file.getName)))
} }
) )
lazy val root = Project( lazy val root = Project(
id = "akka", id = "akka",
base = file("."), base = file("."),
@ -60,7 +61,7 @@ object AkkaBuild extends Build {
kernel, osgi, docs, contrib, samples, multiNodeTestkit, benchJmh, typed, protobuf, kernel, osgi, docs, contrib, samples, multiNodeTestkit, benchJmh, typed, protobuf,
stream, streamTestkit, streamTests, streamTestsTck, parsing, stream, streamTestkit, streamTests, streamTestsTck, parsing,
httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit
) )
).settings(rootSettings: _*) ).settings(rootSettings: _*)
lazy val akkaScalaNightly = Project( lazy val akkaScalaNightly = Project(
@ -75,7 +76,7 @@ object AkkaBuild extends Build {
stream, streamTestkit, streamTests, streamTestsTck, parsing, stream, streamTestkit, streamTests, streamTestsTck, parsing,
httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit
) )
).disablePlugins(ValidatePullRequest) ).disablePlugins(ValidatePullRequest, MimaPlugin)
lazy val actor = Project( lazy val actor = Project(
id = "akka-actor", id = "akka-actor",
@ -341,16 +342,18 @@ object AkkaBuild extends Build {
lazy val samplesSettings = parentSettings ++ ActivatorDist.settings lazy val samplesSettings = parentSettings ++ ActivatorDist.settings
lazy val samples = Project( lazy val samples = Project(
id = "akka-samples", id = "akka-samples",
base = file("akka-samples"), base = file("akka-samples"),
// FIXME osgiDiningHakkersSampleMavenTest temporarily removed from aggregate due to #16703 // FIXME osgiDiningHakkersSampleMavenTest temporarily removed from aggregate due to #16703
aggregate = if (!Sample.CliOptions.aggregateSamples) Nil else aggregate = if (!Sample.CliOptions.aggregateSamples) Nil else
Seq(sampleCamelJava, sampleCamelScala, sampleClusterJava, sampleClusterScala, sampleFsmScala, sampleFsmJavaLambda, Seq(sampleCamelJava, sampleCamelScala, sampleClusterJava, sampleClusterScala, sampleFsmScala, sampleFsmJavaLambda,
sampleMainJava, sampleMainScala, sampleMainJavaLambda, sampleMultiNodeScala, sampleMainJava, sampleMainScala, sampleMainJavaLambda, sampleMultiNodeScala,
samplePersistenceJava, samplePersistenceScala, samplePersistenceJavaLambda, samplePersistenceJava, samplePersistenceScala, samplePersistenceJavaLambda,
sampleRemoteJava, sampleRemoteScala, sampleSupervisionJavaLambda, sampleRemoteJava, sampleRemoteScala, sampleSupervisionJavaLambda,
sampleDistributedDataScala, sampleDistributedDataJava) sampleDistributedDataScala, sampleDistributedDataJava)
).settings(samplesSettings: _*) )
.settings(samplesSettings: _*)
.disablePlugins(MimaPlugin)
lazy val sampleCamelJava = Sample.project("akka-sample-camel-java") lazy val sampleCamelJava = Sample.project("akka-sample-camel-java")
lazy val sampleCamelScala = Sample.project("akka-sample-camel-scala") lazy val sampleCamelScala = Sample.project("akka-sample-camel-scala")
@ -529,36 +532,6 @@ object AkkaBuild extends Build {
javacOptions in doc ++= Seq("-Xdoclint:none") javacOptions in doc ++= Seq("-Xdoclint:none")
) )
def akkaPreviousArtifacts(id: String): Def.Initialize[Set[sbt.ModuleID]] = Def.setting {
if (enableMiMa) {
val versions = {
val akka23Versions = Seq("2.3.11", "2.3.12", "2.3.13", "2.3.14")
val akka24Versions = Seq("2.4.0", "2.4.1")
val akka24NewArtifacts = Seq(
"akka-cluster-sharding",
"akka-cluster-tools",
"akka-cluster-metrics",
"akka-persistence",
"akka-distributed-data-experimental",
"akka-persistence-query-experimental"
)
scalaBinaryVersion.value match {
case "2.11" if !akka24NewArtifacts.contains(id) => akka23Versions ++ akka24Versions
case _ => akka24Versions // Only Akka 2.4.x for scala > than 2.11
}
}
// check against all binary compatible artifacts
versions.map(organization.value %% id % _).toSet
}
else Set.empty
}
def akkaStreamAndHttpPreviousArtifacts(id: String): Def.Initialize[Set[sbt.ModuleID]] = Def.setting {
// TODO fix MiMa for 2.4 Akka streams
Set.empty
}
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

@ -3,19 +3,55 @@
*/ */
package akka package akka
import com.typesafe.tools.mima.plugin.MimaKeys.{bbcIssueFilters, previousArtifacts}
import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings
import sbt._ import sbt._
import sbt.Keys._
import com.typesafe.tools.mima.plugin.MimaPlugin
import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._
object MiMa extends AutoPlugin { object MiMa extends AutoPlugin {
override def requires = MimaPlugin
override def trigger = allRequirements override def trigger = allRequirements
override val projectSettings = mimaDefaultSettings ++ Seq( override val projectSettings = Seq(
previousArtifacts := Set.empty, mimaBackwardIssueFilters ++= mimaIgnoredProblems,
bbcIssueFilters ++= mimaIgnoredProblems mimaPreviousArtifacts := akkaPreviousArtifacts(name.value, organization.value, scalaBinaryVersion.value)
) )
def akkaPreviousArtifacts(projectName: String, organization: String, scalaBinaryVersion: String): Set[sbt.ModuleID] = {
val versions = {
val akka23Versions = Seq("2.3.11", "2.3.12", "2.3.13", "2.3.14")
val akka24NoStreamVersions = Seq("2.4.0", "2.4.1")
val akka24StreamVersions = Seq("2.4.2")
val akka24NewArtifacts = Seq(
"akka-cluster-sharding",
"akka-cluster-tools",
"akka-cluster-metrics",
"akka-persistence",
"akka-distributed-data-experimental",
"akka-persistence-query-experimental"
)
val akka242NewArtifacts = Seq(
"akka-stream",
"akka-stream-testkit",
"akka-http-core",
"akka-http-experimental",
"akka-http-testkit",
"akka-http-jackson-experimental",
"akka-http-spray-json-experimental",
"akka-http-xml-experimental"
)
scalaBinaryVersion match {
case "2.11" if !(akka24NewArtifacts ++ akka242NewArtifacts).contains(projectName) => akka23Versions ++ akka24NoStreamVersions ++ akka24StreamVersions
case _ if akka242NewArtifacts.contains(projectName) => akka24StreamVersions
case _ => akka24NoStreamVersions ++ akka24StreamVersions // Only Akka 2.4.x for scala > than 2.11
}
}
// check against all binary compatible artifacts
versions.map(organization %% projectName % _).toSet
}
case class FilterAnyProblem(name: String) extends com.typesafe.tools.mima.core.ProblemFilter { case class FilterAnyProblem(name: String) extends com.typesafe.tools.mima.core.ProblemFilter {
import com.typesafe.tools.mima.core._ import com.typesafe.tools.mima.core._
override def apply(p: Problem): Boolean = p match { override def apply(p: Problem): Boolean = p match {
@ -565,8 +601,7 @@ object MiMa extends AutoPlugin {
Map( Map(
"2.3.11" -> Seq( "2.3.11" -> Seq(
ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields"), // #17805, incompatibility with 2.4.x fixed in 2.3.12 ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields") // #17805, incompatibility with 2.4.x fixed in 2.3.12
ProblemFilters.exclude[MissingMethodProblem]("akka.japi.Pair.toString") // reported on PR validation machine which uses Java 1.8.0_45
), ),
"2.3.14" -> bcIssuesBetween23and24, "2.3.14" -> bcIssuesBetween23and24,
"2.4.0" -> Seq( "2.4.0" -> Seq(
@ -608,6 +643,34 @@ object MiMa extends AutoPlugin {
// #19440 // #19440
ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.PipeToSupport.pipeCompletionStage"), ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.PipeToSupport.pipeCompletionStage"),
ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.FutureTimeoutSupport.afterCompletionStage") ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.FutureTimeoutSupport.afterCompletionStage")
),
"2.4.2" -> Seq(
FilterAnyProblemStartingWith("akka.stream.impl.VirtualProcessor"),
ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.Stages$Drop"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.stream.impl.MaterializerSession.assignPort"),
ProblemFilters.exclude[MissingClassProblem]("akka.stream.impl.Stages$Drop$"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.FanIn#InputBunch.dequeuePrefering"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.fusing.Fusing#BuildStructuralInfo.registerInteral"),
ProblemFilters.exclude[MissingTypesProblem]("akka.stream.impl.fusing.Drop"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.stream.impl.fusing.Drop.onPush"),
ProblemFilters.exclude[FinalClassProblem]("akka.stream.stage.GraphStageLogic$Reading"), // this class is private
// #19815 make HTTP compile under Scala 2.12.0-M3
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.model.headers.CacheDirectives#private.apply"),
ProblemFilters.exclude[IncompatibleMethTypeProblem]("akka.http.scaladsl.model.headers.CacheDirectives#no-cache.apply"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.impl.model.parser.SimpleHeaders.strict-transport-security"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.rendering.RequestRenderingContext.copy"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.rendering.RequestRenderingContext.this"),
ProblemFilters.exclude[MissingTypesProblem]("akka.http.impl.engine.rendering.RequestRenderingContext$"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.rendering.RequestRenderingContext.apply"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.engine.parsing.HttpResponseParser.setRequestMethodForNextResponse"),
ProblemFilters.exclude[DirectMissingMethodProblem]("akka.http.impl.util.package.errorHandling"),
// #19983 withoutSizeLimit overrides for Scala API
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.RequestEntity.withoutSizeLimit"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.UniversalEntity.withoutSizeLimit"),
ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.http.scaladsl.model.ResponseEntity.withoutSizeLimit")
) )
) )
} }

View file

@ -76,7 +76,6 @@ object Sample {
*/ */
private val enableAutoPlugins = (project: Project) => private val enableAutoPlugins = (project: Project) =>
project.settings(( project.settings((
MiMa.projectSettings ++
Publish.projectSettings ++ Publish.projectSettings ++
ValidatePullRequest.projectSettings ValidatePullRequest.projectSettings
): _*).configs(ValidatePullRequest.ValidatePR) ): _*).configs(ValidatePullRequest.ValidatePR)

View file

@ -4,6 +4,7 @@
package akka package akka
import com.typesafe.tools.mima.plugin.MimaKeys.reportBinaryIssues import com.typesafe.tools.mima.plugin.MimaKeys.reportBinaryIssues
import com.typesafe.tools.mima.plugin.MimaPlugin
import net.virtualvoid.sbt.graph.backend.SbtUpdateReport import net.virtualvoid.sbt.graph.backend.SbtUpdateReport
import net.virtualvoid.sbt.graph.DependencyGraphKeys._ import net.virtualvoid.sbt.graph.DependencyGraphKeys._
import net.virtualvoid.sbt.graph.ModuleGraph import net.virtualvoid.sbt.graph.ModuleGraph
@ -245,10 +246,7 @@ object ValidatePullRequest extends AutoPlugin {
} apply { tasks: Seq[Task[Any]] => } apply { tasks: Seq[Task[Any]] =>
tasks.join map { seq => () /* Ignore the sequence of unit returned */ } tasks.join map { seq => () /* Ignore the sequence of unit returned */ }
} }
}.value, }.value
// add reportBinaryIssues to validatePullRequest on minor version maintenance branch
validatePullRequest <<= validatePullRequest.dependsOn(reportBinaryIssues)
) )
} }
@ -271,6 +269,20 @@ object MultiNodeWithPrValidation extends AutoPlugin {
) )
} }
/**
* This autoplugin adds MiMa binary issue reporting to validatePullRequest task,
* when a project has MimaPlugin autoplugin enabled.
*/
object MimaWithPrValidation extends AutoPlugin {
import ValidatePullRequest._
override def trigger = allRequirements
override def requires = ValidatePullRequest && MimaPlugin
override lazy val projectSettings = Seq(
additionalTasks in ValidatePR += reportBinaryIssues
)
}
object UnidocWithPrValidation extends AutoPlugin { object UnidocWithPrValidation extends AutoPlugin {
import ValidatePullRequest._ import ValidatePullRequest._

View file

@ -17,8 +17,7 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.7.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.6.0") addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.6.0")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.7-32-g3bebac4") addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.9")
resolvers += Resolver.url("2m-sbt-plugins", url("https://dl.bintray.com/2m/sbt-plugins/"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0") addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")