diff --git a/akka-actor-tests/build.sbt b/akka-actor-tests/build.sbt index 0653f125b5..e890cf43a3 100644 --- a/akka-actor-tests/build.sbt +++ b/akka-actor-tests/build.sbt @@ -4,3 +4,5 @@ AkkaBuild.defaultSettings AkkaBuild.dontPublishSettings Formatting.formatSettings Dependencies.actorTests + +disablePlugins(MimaPlugin) diff --git a/akka-actor/build.sbt b/akka-actor/build.sbt index 3fa576860b..e37b72e7b3 100644 --- a/akka-actor/build.sbt +++ b/akka-actor/build.sbt @@ -1,16 +1,9 @@ import akka.{ AkkaBuild, Formatting, OSGi, Dependencies, Version } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.actor - Dependencies.actor - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-actor").value +Version.versionSettings enablePlugins(spray.boilerplate.BoilerplatePlugin) - -Version.versionSettings diff --git a/akka-agent/build.sbt b/akka-agent/build.sbt index 9c28a819fc..7ea13b351e 100644 --- a/akka-agent/build.sbt +++ b/akka-agent/build.sbt @@ -1,14 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, ScaladocNoVerificationOfDiagrams } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.agent - Dependencies.agent -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-agent").value - enablePlugins(ScaladocNoVerificationOfDiagrams) diff --git a/akka-bench-jmh/build.sbt b/akka-bench-jmh/build.sbt index b7beb17645..05c17e5a7e 100644 --- a/akka-bench-jmh/build.sbt +++ b/akka-bench-jmh/build.sbt @@ -2,7 +2,7 @@ import akka._ import com.typesafe.sbt.pgp.PgpKeys.publishSigned enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams) -disablePlugins(Unidoc) +disablePlugins(Unidoc, MimaPlugin) AkkaBuild.defaultSettings diff --git a/akka-camel/build.sbt b/akka-camel/build.sbt index 8e331cf360..ac94d8d585 100644 --- a/akka-camel/build.sbt +++ b/akka-camel/build.sbt @@ -1,12 +1,6 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.camel - Dependencies.camel - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-camel").value diff --git a/akka-cluster-metrics/build.sbt b/akka-cluster-metrics/build.sbt index 1997251d4d..2f95a27041 100644 --- a/akka-cluster-metrics/build.sbt +++ b/akka-cluster-metrics/build.sbt @@ -1,19 +1,12 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest, SigarLoader } import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - SigarLoader.sigarSettings - OSGi.clusterMetrics - Dependencies.clusterMetrics -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-metrics").value - parallelExecution in Test := false enablePlugins(MultiNodeScalaTest) diff --git a/akka-cluster-sharding/build.sbt b/akka-cluster-sharding/build.sbt index fb28b2b12d..097d5847f4 100644 --- a/akka-cluster-sharding/build.sbt +++ b/akka-cluster-sharding/build.sbt @@ -1,14 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.clusterSharding - Dependencies.clusterSharding -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-sharding").value - enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) diff --git a/akka-cluster-tools/build.sbt b/akka-cluster-tools/build.sbt index a37e55c38b..fc9cfe36c8 100644 --- a/akka-cluster-tools/build.sbt +++ b/akka-cluster-tools/build.sbt @@ -1,14 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, ScaladocNoVerificationOfDiagrams, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.clusterTools - Dependencies.clusterTools -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster-tools").value - enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) diff --git a/akka-cluster/build.sbt b/akka-cluster/build.sbt index d367586735..cf565250ca 100644 --- a/akka-cluster/build.sbt +++ b/akka-cluster/build.sbt @@ -1,17 +1,11 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNodeScalaTest } import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.cluster - Dependencies.cluster -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-cluster").value - // disable parallel tests parallelExecution in Test := false diff --git a/akka-contrib/build.sbt b/akka-contrib/build.sbt index 8d4466fb45..502f3d7117 100644 --- a/akka-contrib/build.sbt +++ b/akka-contrib/build.sbt @@ -1,12 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi, MultiNode, ScaladocNoVerificationOfDiagrams } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.contrib - Dependencies.contrib description := """| @@ -21,3 +17,4 @@ description := """| |""".stripMargin enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams) +disablePlugins(MimaPlugin) diff --git a/akka-distributed-data/build.sbt b/akka-distributed-data/build.sbt index 713077ecab..973f3ad9e4 100644 --- a/akka-distributed-data/build.sbt +++ b/akka-distributed-data/build.sbt @@ -1,16 +1,9 @@ import akka.{ AkkaBuild, Dependencies, Formatting, MultiNode, Unidoc, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - AkkaBuild.experimentalSettings - Formatting.formatSettings - OSGi.distributedData - Dependencies.distributedData -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-distributed-data-experimental").value - enablePlugins(MultiNodeScalaTest) diff --git a/akka-docs/build.sbt b/akka-docs/build.sbt index fb17672f14..fe30d2ea6c 100644 --- a/akka-docs/build.sbt +++ b/akka-docs/build.sbt @@ -3,28 +3,21 @@ import akka.ValidatePullRequest._ import com.typesafe.sbt.SbtScalariform.ScalariformKeys import com.typesafe.sbt.SbtSite.site import com.typesafe.sbt.site.SphinxSupport._ -import com.typesafe.tools.mima.plugin.MimaKeys - -enablePlugins(ScaladocNoVerificationOfDiagrams) AkkaBuild.defaultSettings - +AkkaBuild.dontPublishSettings Formatting.docFormatSettings +Dependencies.docs site.settings - site.sphinxSupport() - site.publishSite SphinxDoc.sphinxPreprocessing - SphinxDoc.docsSettings -Dependencies.docs - unmanagedSourceDirectories in ScalariformKeys.format in Test <<= unmanagedSourceDirectories in Test - additionalTasks in ValidatePR += generate in Sphinx -AkkaBuild.dontPublishSettings \ No newline at end of file +enablePlugins(ScaladocNoVerificationOfDiagrams) +disablePlugins(MimaPlugin) diff --git a/akka-http-core/build.sbt b/akka-http-core/build.sbt index b48c8cdc38..4db8b9cbea 100644 --- a/akka-http-core/build.sbt +++ b/akka-http-core/build.sbt @@ -1,8 +1,6 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings Formatting.formatSettings OSGi.httpCore Dependencies.httpCore -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-core").value diff --git a/akka-http-marshallers-java/akka-http-jackson/build.sbt b/akka-http-marshallers-java/akka-http-jackson/build.sbt index dd2817222d..cfdac17dd6 100644 --- a/akka-http-marshallers-java/akka-http-jackson/build.sbt +++ b/akka-http-marshallers-java/akka-http-jackson/build.sbt @@ -1,11 +1,9 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings AkkaBuild.experimentalSettings Formatting.formatSettings OSGi.httpJackson Dependencies.httpJackson -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-jackson").value enablePlugins(ScaladocNoVerificationOfDiagrams) diff --git a/akka-http-marshallers-scala/akka-http-spray-json/build.sbt b/akka-http-marshallers-scala/akka-http-spray-json/build.sbt index ae6e21b61f..9b0ad68674 100644 --- a/akka-http-marshallers-scala/akka-http-spray-json/build.sbt +++ b/akka-http-marshallers-scala/akka-http-spray-json/build.sbt @@ -1,9 +1,7 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings AkkaBuild.experimentalSettings Formatting.formatSettings OSGi.httpSprayJson Dependencies.httpSprayJson -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-spray-json").value diff --git a/akka-http-marshallers-scala/akka-http-xml/build.sbt b/akka-http-marshallers-scala/akka-http-xml/build.sbt index dc6013cdc6..336783a5b2 100644 --- a/akka-http-marshallers-scala/akka-http-xml/build.sbt +++ b/akka-http-marshallers-scala/akka-http-xml/build.sbt @@ -1,9 +1,7 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings AkkaBuild.experimentalSettings Formatting.formatSettings OSGi.httpXml Dependencies.httpXml -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-xml").value diff --git a/akka-http-testkit/build.sbt b/akka-http-testkit/build.sbt index f7bfd7a569..7dff15fb9c 100644 --- a/akka-http-testkit/build.sbt +++ b/akka-http-testkit/build.sbt @@ -1,10 +1,8 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings Formatting.formatSettings OSGi.httpTestkit Dependencies.httpTestkit -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http-testkit").value scalacOptions in Compile += "-language:postfixOps" diff --git a/akka-http-tests/build.sbt b/akka-http-tests/build.sbt index 360d3e92d9..ea9292785e 100644 --- a/akka-http-tests/build.sbt +++ b/akka-http-tests/build.sbt @@ -10,3 +10,5 @@ testOptions += Tests.Argument(TestFrameworks.JUnit, "--ignore-runners=") scalacOptions in Compile += "-language:_" mainClass in run in Test := Some("akka.http.javadsl.SimpleServerApp") + +disablePlugins(MimaPlugin) diff --git a/akka-http/build.sbt b/akka-http/build.sbt index 7a32dc81e2..91659fdd54 100644 --- a/akka-http/build.sbt +++ b/akka-http/build.sbt @@ -1,11 +1,10 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings AkkaBuild.experimentalSettings Formatting.formatSettings OSGi.http Dependencies.http -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-http").value + enablePlugins(spray.boilerplate.BoilerplatePlugin) scalacOptions in Compile += "-language:_" diff --git a/akka-kernel/build.sbt b/akka-kernel/build.sbt index 0918654e52..e642c7b59b 100644 --- a/akka-kernel/build.sbt +++ b/akka-kernel/build.sbt @@ -1,12 +1,7 @@ import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - Dependencies.kernel -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-kernel").value - enablePlugins(ScaladocNoVerificationOfDiagrams) diff --git a/akka-multi-node-testkit/build.sbt b/akka-multi-node-testkit/build.sbt index 1df1754175..7c61d218e1 100644 --- a/akka-multi-node-testkit/build.sbt +++ b/akka-multi-node-testkit/build.sbt @@ -1,8 +1,4 @@ -import akka.{AkkaBuild, Formatting, OSGi} -import com.typesafe.tools.mima.plugin.MimaKeys +import akka.{AkkaBuild, Formatting} AkkaBuild.defaultSettings - Formatting.formatSettings - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-multi-node-testkit").value diff --git a/akka-osgi/build.sbt b/akka-osgi/build.sbt index 785258c953..e3cdbded9e 100644 --- a/akka-osgi/build.sbt +++ b/akka-osgi/build.sbt @@ -1,14 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.osgi - Dependencies.osgi parallelExecution in Test := false - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-osgi").value diff --git a/akka-parsing/build.sbt b/akka-parsing/build.sbt index b8251b13f2..7703337865 100644 --- a/akka-parsing/build.sbt +++ b/akka-parsing/build.sbt @@ -1,5 +1,4 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings Formatting.docFormatSettings @@ -14,3 +13,4 @@ scalacOptions += "-language:_" sources in doc in Compile := List() enablePlugins(ScaladocNoVerificationOfDiagrams) +disablePlugins(MimaPlugin) diff --git a/akka-persistence-query/build.sbt b/akka-persistence-query/build.sbt index 1da8a5905a..c4be5a5638 100644 --- a/akka-persistence-query/build.sbt +++ b/akka-persistence-query/build.sbt @@ -1,18 +1,11 @@ import akka.{ AkkaBuild, Dependencies, Formatting, ScaladocNoVerificationOfDiagrams, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - AkkaBuild.experimentalSettings - Formatting.formatSettings - OSGi.persistenceQuery - Dependencies.persistenceQuery -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-persistence-query-experimental").value +fork in Test := true enablePlugins(ScaladocNoVerificationOfDiagrams) - -fork in Test := true diff --git a/akka-persistence-shared/build.sbt b/akka-persistence-shared/build.sbt index 00f7448099..09f964143f 100644 --- a/akka-persistence-shared/build.sbt +++ b/akka-persistence-shared/build.sbt @@ -6,3 +6,5 @@ Formatting.formatSettings Dependencies.persistenceShared fork in Test := true + +disablePlugins(MimaPlugin) diff --git a/akka-persistence-tck/build.sbt b/akka-persistence-tck/build.sbt index 8beb366b28..c7951b60ec 100644 --- a/akka-persistence-tck/build.sbt +++ b/akka-persistence-tck/build.sbt @@ -1,12 +1,10 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - // OSGi.persistenceTck TODO: we do need to export this as OSGi bundle too? - Dependencies.persistenceTck fork in Test := true + +disablePlugins(MimaPlugin) diff --git a/akka-persistence/build.sbt b/akka-persistence/build.sbt index 8f25bd04cc..234ad152ab 100644 --- a/akka-persistence/build.sbt +++ b/akka-persistence/build.sbt @@ -1,14 +1,8 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.persistence - Dependencies.persistence -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-persistence").value - fork in Test := true diff --git a/akka-protobuf/build.sbt b/akka-protobuf/build.sbt index d304a329c0..323f1bc30e 100644 --- a/akka-protobuf/build.sbt +++ b/akka-protobuf/build.sbt @@ -1,11 +1,8 @@ import akka.{ AkkaBuild, Formatting, OSGi, Unidoc, Dependencies } -import com.typesafe.tools.mima.plugin.MimaKeys - AkkaBuild.defaultSettings - Formatting.formatSettings +OSGi.protobuf enablePlugins(ScaladocNoVerificationOfDiagrams) - -OSGi.protobuf +disablePlugins(MimaPlugin) diff --git a/akka-remote-tests/build.sbt b/akka-remote-tests/build.sbt index 9c26c5b390..2c08eed141 100644 --- a/akka-remote-tests/build.sbt +++ b/akka-remote-tests/build.sbt @@ -1,18 +1,14 @@ import akka.{ AkkaBuild, Dependencies, Formatting, MultiNodeScalaTest, Unidoc } import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - +AkkaBuild.dontPublishSettings Formatting.formatSettings - Dependencies.remoteTests // disable parallel tests parallelExecution in Test := false - publishArtifact in Compile := false enablePlugins(MultiNodeScalaTest) - -AkkaBuild.dontPublishSettings \ No newline at end of file +disablePlugins(MimaPlugin) diff --git a/akka-remote/build.sbt b/akka-remote/build.sbt index ed62d78e6c..774c0d698e 100644 --- a/akka-remote/build.sbt +++ b/akka-remote/build.sbt @@ -1,14 +1,8 @@ import akka.{AkkaBuild, Dependencies, Formatting, OSGi} -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.remote - Dependencies.remote parallelExecution in Test := false - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-remote").value diff --git a/akka-slf4j/build.sbt b/akka-slf4j/build.sbt index 76e7f1fe47..218cbf56e5 100644 --- a/akka-slf4j/build.sbt +++ b/akka-slf4j/build.sbt @@ -1,12 +1,6 @@ import akka.{ AkkaBuild, Dependencies, Formatting, OSGi } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.slf4j - Dependencies.slf4j - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-slf4j").value diff --git a/akka-stream-testkit/build.sbt b/akka-stream-testkit/build.sbt index 1f9446d4f4..089d706f75 100644 --- a/akka-stream-testkit/build.sbt +++ b/akka-stream-testkit/build.sbt @@ -1,8 +1,6 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings Formatting.formatSettings OSGi.streamTestkit Dependencies.streamTestkit -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-stream-testkit").value diff --git a/akka-stream-tests-tck/build.sbt b/akka-stream-tests-tck/build.sbt index ee0d80984a..72496d5c63 100644 --- a/akka-stream-tests-tck/build.sbt +++ b/akka-stream-tests-tck/build.sbt @@ -4,3 +4,5 @@ AkkaBuild.defaultSettings AkkaBuild.dontPublishSettings Formatting.formatSettings Dependencies.streamTestsTck + +disablePlugins(MimaPlugin) diff --git a/akka-stream-tests/build.sbt b/akka-stream-tests/build.sbt index 4e6e0ee6fc..f57f53bd4b 100644 --- a/akka-stream-tests/build.sbt +++ b/akka-stream-tests/build.sbt @@ -4,3 +4,5 @@ AkkaBuild.defaultSettings AkkaBuild.dontPublishSettings Formatting.formatSettings Dependencies.streamTests + +disablePlugins(MimaPlugin) diff --git a/akka-stream/build.sbt b/akka-stream/build.sbt index 4bfcbcfde6..1b71f0dba0 100644 --- a/akka-stream/build.sbt +++ b/akka-stream/build.sbt @@ -1,9 +1,8 @@ import akka._ -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings Formatting.formatSettings OSGi.stream Dependencies.stream -MimaKeys.previousArtifacts := akkaStreamAndHttpPreviousArtifacts("akka-stream").value -enablePlugins(spray.boilerplate.BoilerplatePlugin) \ No newline at end of file + +enablePlugins(spray.boilerplate.BoilerplatePlugin) diff --git a/akka-testkit/build.sbt b/akka-testkit/build.sbt index 0b4f84f8b0..c4cf14f141 100644 --- a/akka-testkit/build.sbt +++ b/akka-testkit/build.sbt @@ -1,15 +1,8 @@ import akka.{ AkkaBuild, Formatting, OSGi, Dependencies } -import com.typesafe.tools.mima.plugin.MimaKeys AkkaBuild.defaultSettings - Formatting.formatSettings - OSGi.testkit - -// to fix scaladoc generation -Dependencies.testkit +Dependencies.testkit // to fix scaladoc generation initialCommands += "import akka.testkit._" - -MimaKeys.previousArtifacts := akkaPreviousArtifacts("akka-testkit").value diff --git a/akka-typed/build.sbt b/akka-typed/build.sbt index abcc7414ed..3aaf7dc2fa 100644 --- a/akka-typed/build.sbt +++ b/akka-typed/build.sbt @@ -1,6 +1,7 @@ -import akka.{ AkkaBuild, Formatting, OSGi, Dependencies } -import com.typesafe.tools.mima.plugin.MimaKeys +import akka.{ AkkaBuild, Formatting } AkkaBuild.defaultSettings AkkaBuild.experimentalSettings Formatting.formatSettings + +disablePlugins(MimaPlugin) diff --git a/build.sbt b/build.sbt index eb3e5d5e8e..4ed1f05c11 100644 --- a/build.sbt +++ b/build.sbt @@ -1 +1,2 @@ enablePlugins(akka.UnidocRoot, akka.TimeStampede, akka.UnidocWithPrValidation) +disablePlugins(MimaPlugin) diff --git a/project/AkkaBuild.scala b/project/AkkaBuild.scala index 5aa1a74321..b4f76c4ba6 100644 --- a/project/AkkaBuild.scala +++ b/project/AkkaBuild.scala @@ -13,6 +13,7 @@ import com.typesafe.sbt.S3Plugin.S3 import com.typesafe.sbt.S3Plugin.s3Settings import com.typesafe.sbt.pgp.PgpKeys.publishSigned import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm +import com.typesafe.tools.mima.plugin.MimaPlugin import sbt.Keys._ import sbt._ import sbtunidoc.Plugin.ScalaUnidoc @@ -50,7 +51,7 @@ object AkkaBuild extends Build { archivesPathFinder.get.map(file => (file -> ("akka/" + file.getName))) } ) - + lazy val root = Project( id = "akka", base = file("."), @@ -60,7 +61,7 @@ object AkkaBuild extends Build { kernel, osgi, docs, contrib, samples, multiNodeTestkit, benchJmh, typed, protobuf, stream, streamTestkit, streamTests, streamTestsTck, parsing, httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit - ) + ) ).settings(rootSettings: _*) lazy val akkaScalaNightly = Project( @@ -75,7 +76,7 @@ object AkkaBuild extends Build { stream, streamTestkit, streamTests, streamTestsTck, parsing, httpCore, http, httpSprayJson, httpXml, httpJackson, httpTests, httpTestkit ) - ).disablePlugins(ValidatePullRequest) + ).disablePlugins(ValidatePullRequest, MimaPlugin) lazy val actor = Project( id = "akka-actor", @@ -341,16 +342,18 @@ object AkkaBuild extends Build { lazy val samplesSettings = parentSettings ++ ActivatorDist.settings lazy val samples = Project( - id = "akka-samples", - base = file("akka-samples"), - // FIXME osgiDiningHakkersSampleMavenTest temporarily removed from aggregate due to #16703 - aggregate = if (!Sample.CliOptions.aggregateSamples) Nil else - Seq(sampleCamelJava, sampleCamelScala, sampleClusterJava, sampleClusterScala, sampleFsmScala, sampleFsmJavaLambda, - sampleMainJava, sampleMainScala, sampleMainJavaLambda, sampleMultiNodeScala, - samplePersistenceJava, samplePersistenceScala, samplePersistenceJavaLambda, - sampleRemoteJava, sampleRemoteScala, sampleSupervisionJavaLambda, - sampleDistributedDataScala, sampleDistributedDataJava) - ).settings(samplesSettings: _*) + id = "akka-samples", + base = file("akka-samples"), + // FIXME osgiDiningHakkersSampleMavenTest temporarily removed from aggregate due to #16703 + aggregate = if (!Sample.CliOptions.aggregateSamples) Nil else + Seq(sampleCamelJava, sampleCamelScala, sampleClusterJava, sampleClusterScala, sampleFsmScala, sampleFsmJavaLambda, + sampleMainJava, sampleMainScala, sampleMainJavaLambda, sampleMultiNodeScala, + samplePersistenceJava, samplePersistenceScala, samplePersistenceJavaLambda, + sampleRemoteJava, sampleRemoteScala, sampleSupervisionJavaLambda, + sampleDistributedDataScala, sampleDistributedDataJava) + ) + .settings(samplesSettings: _*) + .disablePlugins(MimaPlugin) lazy val sampleCamelJava = Sample.project("akka-sample-camel-java") lazy val sampleCamelScala = Sample.project("akka-sample-camel-scala") @@ -529,36 +532,6 @@ object AkkaBuild extends Build { 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 = { import scala.collection.JavaConverters._ val file = new File(fileName) diff --git a/project/MiMa.scala b/project/MiMa.scala index 872333fb7a..289445f619 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -3,19 +3,55 @@ */ package akka -import com.typesafe.tools.mima.plugin.MimaKeys.{bbcIssueFilters, previousArtifacts} -import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings import sbt._ +import sbt.Keys._ +import com.typesafe.tools.mima.plugin.MimaPlugin +import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._ object MiMa extends AutoPlugin { + override def requires = MimaPlugin override def trigger = allRequirements - override val projectSettings = mimaDefaultSettings ++ Seq( - previousArtifacts := Set.empty, - bbcIssueFilters ++= mimaIgnoredProblems + override val projectSettings = Seq( + mimaBackwardIssueFilters ++= 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 { import com.typesafe.tools.mima.core._ override def apply(p: Problem): Boolean = p match { @@ -565,8 +601,7 @@ object MiMa extends AutoPlugin { Map( "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.japi.Pair.toString") // reported on PR validation machine which uses Java 1.8.0_45 + ProblemFilters.exclude[MissingMethodProblem]("akka.actor.ActorCell.clearActorFields") // #17805, incompatibility with 2.4.x fixed in 2.3.12 ), "2.3.14" -> bcIssuesBetween23and24, "2.4.0" -> Seq( @@ -608,6 +643,34 @@ object MiMa extends AutoPlugin { // #19440 ProblemFilters.exclude[MissingMethodProblem]("akka.pattern.PipeToSupport.pipeCompletionStage"), 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") ) ) } diff --git a/project/Sample.scala b/project/Sample.scala index aa0fcdb733..64160c198b 100644 --- a/project/Sample.scala +++ b/project/Sample.scala @@ -76,7 +76,6 @@ object Sample { */ private val enableAutoPlugins = (project: Project) => project.settings(( - MiMa.projectSettings ++ Publish.projectSettings ++ ValidatePullRequest.projectSettings ): _*).configs(ValidatePullRequest.ValidatePR) diff --git a/project/ValidatePullRequest.scala b/project/ValidatePullRequest.scala index 5b16445ddb..5015162392 100644 --- a/project/ValidatePullRequest.scala +++ b/project/ValidatePullRequest.scala @@ -4,6 +4,7 @@ package akka 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.DependencyGraphKeys._ import net.virtualvoid.sbt.graph.ModuleGraph @@ -245,10 +246,7 @@ object ValidatePullRequest extends AutoPlugin { } apply { tasks: Seq[Task[Any]] => tasks.join map { seq => () /* Ignore the sequence of unit returned */ } } - }.value, - - // add reportBinaryIssues to validatePullRequest on minor version maintenance branch - validatePullRequest <<= validatePullRequest.dependsOn(reportBinaryIssues) + }.value ) } @@ -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 { import ValidatePullRequest._ diff --git a/project/plugins.sbt b/project/plugins.sbt index b72fcc9e78..1a0fc603c2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -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-mima-plugin" % "0.1.7-32-g3bebac4") -resolvers += Resolver.url("2m-sbt-plugins", url("https://dl.bintray.com/2m/sbt-plugins/"))(Resolver.ivyStylePatterns) +addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.9") addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")