diff --git a/.travis.yml b/.travis.yml index a0b9fd8..d5108f1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,8 @@ language: scala scala: - 2.11.12 - - 2.12.12 - - 2.13.4 + - 2.12.13 + - 2.13.5 env: - ADOPTOPENJDK=8 diff --git a/build.sbt b/build.sbt index cb6a47c..a7151a9 100644 --- a/build.sbt +++ b/build.sbt @@ -18,6 +18,9 @@ def osgiExport(scalaVersion: String, version: String) = { }) ++ Seq(s"scala.compat.java8.*;version=${version}") } +ThisBuild / versionScheme := Some("early-semver") +ThisBuild / versionPolicyIntention := Compatibility.BinaryAndSourceCompatible + lazy val commonSettings = Seq( scalacOptions ++= Seq("-feature", "-deprecation", "-unchecked"), @@ -70,7 +73,23 @@ lazy val scalaJava8Compat = (project in file(".")) libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test", - scalaModuleMimaPreviousVersion := None, + // we're still in 0.x land so we could choose to break bincompat, + // but let's at least be aware when we're doing it. also we should + // think about going 1.0, it's been a while + scalaModuleMimaPreviousVersion := Some("0.9.1"), + + mimaBinaryIssueFilters ++= { + import com.typesafe.tools.mima.core._, ProblemFilters._ + Seq( + // bah + exclude[IncompatibleSignatureProblem]("*"), + // mysterious -- see scala/scala-java8-compat#211 + exclude[DirectMissingMethodProblem ]("scala.compat.java8.Priority1FunctionConverters.enrichAsJavaIntFunction"), + exclude[ReversedMissingMethodProblem]("scala.compat.java8.Priority1FunctionConverters.enrichAsJavaIntFunction"), + exclude[DirectMissingMethodProblem ]("scala.compat.java8.FunctionConverters.package.enrichAsJavaIntFunction" ), + exclude[ReversedMissingMethodProblem]("scala.compat.java8.FunctionConverters.package.enrichAsJavaIntFunction" ), + ) + }, testOptions += Tests.Argument(TestFrameworks.JUnit, "-v", "-a"), diff --git a/build.sh b/build.sh index 65cc465..8dcf234 100755 --- a/build.sh +++ b/build.sh @@ -62,4 +62,4 @@ export CI_SNAPSHOT_RELEASE="publish" # for now, until we're confident in the new release scripts, just close the staging repo. export CI_SONATYPE_RELEASE="; sonatypePrepare; sonatypeBundleUpload; sonatypeClose" -sbt "$setTagScalaVersion" clean test publishLocal $releaseTask +sbt "$setTagScalaVersion" clean test versionPolicyCheck publishLocal $releaseTask diff --git a/project/plugins.sbt b/project/plugins.sbt index 53db5d3..32698b2 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1 +1,2 @@ addSbtPlugin("org.scala-lang.modules" % "sbt-scala-module" % "2.2.4") +addSbtPlugin("ch.epfl.scala" % "sbt-version-policy" % "1.0.0-RC5")