From f43127c714df5e3315f3f4667be9e3bdcac112a8 Mon Sep 17 00:00:00 2001 From: Grigory Pomadchin Date: Sat, 4 Sep 2021 18:01:11 -0400 Subject: [PATCH] Set MIMA plugin for the project --- .github/workflows/ci.yml | 3 +++ build.sbt | 14 ++++++++++++-- project/plugins.sbt | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9a335dc66..2587f5513 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,9 @@ jobs: - name: Check that workflows are up to date run: sbt ++${{ matrix.scala }} githubWorkflowCheck + - name: Binary compatibility check + run: sbt ++${{ matrix.scala }} mimaReportBinaryIssues + - name: Setup Python uses: actions/setup-python@v2 with: diff --git a/build.sbt b/build.sbt index 017bba6db..a44e95e4f 100644 --- a/build.sbt +++ b/build.sbt @@ -10,6 +10,8 @@ val irrecVersion = "0.4.0" val Scala212 = "2.12.14" +val previousVersion = "0.10.1" + ThisBuild / versionScheme := Some("semver-spec") ThisBuild / crossScalaVersions := Seq(Scala212) @@ -19,6 +21,7 @@ lazy val root = Project("frameless", file("." + "frameless")).in(file(".")) .aggregate(core, cats, dataset, ml, docs) .settings(framelessSettings: _*) .settings(noPublishSettings: _*) + .settings(mimaPreviousArtifacts := Set(), mimaFailOnNoPrevious := false) lazy val core = project .settings(name := "frameless-core") @@ -88,6 +91,7 @@ lazy val docs = project "-Ydelambdafy:inline" ) ) + .settings(mimaPreviousArtifacts := Set(), mimaFailOnNoPrevious := false) .dependsOn(dataset, cats, ml) lazy val framelessSettings = Seq( @@ -120,7 +124,8 @@ lazy val framelessSettings = Seq( "org.scalacheck" %% "scalacheck" % scalacheck % "test"), Test / javaOptions ++= Seq("-Xmx1G", "-ea"), Test / fork := true, - Test / parallelExecution := false + Test / parallelExecution := false, + mimaPreviousArtifacts := Set("org.typelevel" %% name.value % previousVersion) ) ++ consoleSettings lazy val consoleSettings = Seq( @@ -213,7 +218,12 @@ copyReadme := copyReadmeImpl.value ThisBuild / githubWorkflowArtifactUpload := false -ThisBuild / githubWorkflowBuild := Seq( +ThisBuild / githubWorkflowBuild := Seq(WorkflowStep.Sbt( + List("mimaReportBinaryIssues"), + name = Some("Binary compatibility check") +)) + +ThisBuild / githubWorkflowBuild ++= Seq( WorkflowStep.Use(UseRef.Public("actions", "setup-python", "v2"), name = Some("Setup Python"), params = Map("python-version" -> "3.x") diff --git a/project/plugins.sbt b/project/plugins.sbt index 899d0c82d..6185e6f8e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,3 +2,4 @@ addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.7") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.8.2") addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.13.0") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.23") +addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.0.0")