Add MIMA SBT plugin, aiming at binary compatibility as of 1.0.0-M8

This commit is contained in:
Alexandre Archambault 2016-02-16 01:03:00 +01:00
parent 34b237d89d
commit f19288bafb
3 changed files with 31 additions and 2 deletions

View File

@ -1,5 +1,11 @@
import java.io.FileOutputStream
import com.typesafe.tools.mima.plugin.MimaPlugin.mimaDefaultSettings
import com.typesafe.tools.mima.plugin.MimaKeys
import MimaKeys.{ previousArtifacts, binaryIssueFilters }
val binaryCompatibilityVersion = "1.0.0-M7"
lazy val releaseSettings = Seq(
publishMavenStyle := true,
licenses := Seq("Apache 2.0" -> url("http://opensource.org/licenses/Apache-2.0")),
@ -110,6 +116,7 @@ lazy val commonSettings = baseCommonSettings ++ Seq(
lazy val core = crossProject
.settings(commonSettings: _*)
.settings(mimaDefaultSettings: _*)
.settings(
name := "coursier",
resourceGenerators.in(Compile) += {
@ -132,6 +139,13 @@ lazy val core = crossProject
Seq(f)
}.taskValue
},
previousArtifacts := Set(organization.value %% moduleName.value % binaryCompatibilityVersion),
binaryIssueFilters ++= {
import com.typesafe.tools.mima.core._
import com.typesafe.tools.mima.core.ProblemFilters._
Seq()
}
)
.jvmSettings(
@ -189,12 +203,26 @@ lazy val testsJs = tests.js.dependsOn(`fetch-js` % "test")
lazy val cache = project
.dependsOn(coreJvm)
.settings(commonSettings)
.settings(mimaDefaultSettings)
.settings(
name := "coursier-cache",
libraryDependencies ++= Seq(
"org.scalaz" %% "scalaz-concurrent" % "7.1.2",
"com.lihaoyi" %% "ammonite-terminal" % "0.5.0"
)
),
previousArtifacts := Set(organization.value %% moduleName.value % binaryCompatibilityVersion),
binaryIssueFilters ++= {
import com.typesafe.tools.mima.core._
import com.typesafe.tools.mima.core.ProblemFilters._
Seq(
ProblemFilters.exclude[MissingTypesProblem]("coursier.TermDisplay$Info$"),
ProblemFilters.exclude[MissingMethodProblem]("coursier.TermDisplay#Info.apply"),
ProblemFilters.exclude[MissingMethodProblem]("coursier.TermDisplay#Info.copy"),
ProblemFilters.exclude[MissingMethodProblem]("coursier.TermDisplay#Info.pct"),
ProblemFilters.exclude[MissingMethodProblem]("coursier.TermDisplay#Info.this")
)
}
)
lazy val bootstrap = project

View File

@ -5,3 +5,4 @@ addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.1.0")
addSbtPlugin("org.tpolecat" % "tut-plugin" % "0.4.0")
addSbtPlugin("com.github.alexarchambault" % "coursier-sbt-plugin" % "1.0.0-M4")
addSbtPlugin("com.typesafe.sbt" % "sbt-proguard" % "0.2.2")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.8")

View File

@ -32,7 +32,7 @@ function isMasterOrDevelop() {
# TODO Add coverage once https://github.com/scoverage/sbt-scoverage/issues/111 is fixed
SBT_COMMANDS="compile test"
SBT_COMMANDS="compile test coreJVM/mimaReportBinaryIssues cache/mimaReportBinaryIssues"
if isNotPr && publish && isMaster; then
SBT_COMMANDS="$SBT_COMMANDS publish"
fi