#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
Formatting.formatSettings
Dependencies.actorTests
disablePlugins(MimaPlugin)

View file

@ -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

View file

@ -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)

View file

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

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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
enablePlugins(ScaladocNoVerificationOfDiagrams)
disablePlugins(MimaPlugin)

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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)

View file

@ -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:_"

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

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

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -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
disablePlugins(MimaPlugin)

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

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

View file

@ -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)

View file

@ -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

View file

@ -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)

View file

@ -1 +1,2 @@
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.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
@ -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)

View file

@ -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")
)
)
}

View file

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

View file

@ -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._

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-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")