sbt-mima-plugin v0.4.0 Release Notes

Release Date: 2019-07-09 // almost 5 years ago
  • 💥 Breaking changes

    0️⃣ When mimaPreviousArtifacts is not set, default mimaReportBinaryIssues to fail

    0️⃣ As of v0.4.0 mimaReportBinaryIssues will, by default, fail if mimaPreviousArtifacts is empty, to avoid users thinking they're checking binary-compatibility when they aren't.

    You may need to apply one of the following to mitigate this change:

    • set mimaPreviousArtifacts for all the projects that should be checking their binary compatibility
    • 🔌 set mimaFailOnNoPrevious := false on specific projects that want to opt-out (alternatively disablePlugins(MimaPlugin))
    • 🏗 set mimaFailOnNoPrevious in ThisBuild := false, which disables it build-wide, effectively reverting back to the previous behaviour

    #263 / #289

    ⬇️ Dropped sbt 0.13 support

    ⚡️ As of v0.4.0 MiMa no longer supports sbt 0.13 and is only available for sbt 1.x. We encourage you to update to sbt 1.x, and until that time use keep using MiMa v0.3.0.

    #269 / #272

    ⬇️ Dropped Scala 2.10 support

    👌 Support for Scala 2.10 has also been dropping, meaning you should continue to use MiMa v0.3.0 to verify binary compatibility of a Scala 2.10 project.

    #248 / #272

    👌 Improvements

    Checking generic signatures

    🚀 This release introduces a new problem type, the IncompatibleSignatureProblem. This problem is reported when a method's erased signature has remained the same, but its full type signature has changed. Such a change is not always binary incompatible, but typically worthwhile to manually investigate and explicitly confirm. You can exclude all such problems with a ProblemFilters.exclude[IncompatibleSignatureProblem]("*").

    ⬆️ This change also fixes a problem where IncompatibleResultTypeProblem instances were missed. This means that this upgrade may require adding filters for old, but previously undetected, incompatibilities.

    #40 / #299

    ➕ Additional improvements

    • #162 / #254 Don't fail if an effectively final method becomes final
    • #201 / #295 Don't fail when migrating from Java varargs to @varargs
    • #168 / #323 Handle mimaPreviousArtifacts with dots in their name
    • #239 Allow multiple filter files per version to be loaded from a directory
    • #238 Improve the error message when filter files fail to be processed
    • #305 Subsume the mima-reporter project (and jar) into mima-core

    👀 For full details see the 0.4.0 milestone and/or the 0.3.0...0.4.0 changelog.