This is an automated email from the ASF dual-hosted git repository.

fanningpj pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-pekko-persistence-cassandra.git


The following commit(s) were added to refs/heads/main by this push:
     new 230aafe  enable mima (#114)
230aafe is described below

commit 230aafef64d38ce4d1f19b89a5ef5ff749121c8e
Author: PJ Fanning <[email protected]>
AuthorDate: Mon Nov 13 09:16:24 2023 +0100

    enable mima (#114)
---
 .github/workflows/unit-tests.yml | 30 ++++++++++++++++++++++++++++++
 build.sbt                        | 16 +++++++++++++---
 project/plugins.sbt              |  1 +
 3 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
index e84ff75..df9404b 100644
--- a/.github/workflows/unit-tests.yml
+++ b/.github/workflows/unit-tests.yml
@@ -57,6 +57,36 @@ jobs:
         run: |-
           docker-compose up -d ${{ matrix.container }} && sbt ${{ 
matrix.scalaVersion }} ${{matrix.test}}
 
+  mima:
+    name: MiMa check
+    if: github.repository == 'apache/incubator-pekko-persistence-cassandra'
+    runs-on: ubuntu-22.04
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+          fetch-tags: true
+
+      - name: Checkout GitHub merge
+        if: github.event.pull_request
+        run: |-
+          git fetch origin pull/${{ github.event.pull_request.number 
}}/merge:scratch
+          git checkout scratch
+
+      - name: Setup Java 8
+        uses: actions/setup-java@v3
+        with:
+          distribution: temurin
+          java-version: 8
+
+      - name: Cache Coursier cache
+        uses: coursier/[email protected]
+
+      - name: MiMa Check
+        run: sbt +mimaReportBinaryIssues
+
   docs:
     name: ScalaDoc, Documentation with Paradox
     if: github.repository == 'apache/incubator-pekko-persistence-cassandra'
diff --git a/build.sbt b/build.sbt
index a5c36ab..41582cc 100644
--- a/build.sbt
+++ b/build.sbt
@@ -24,10 +24,12 @@ addCommandAlias("applyCodeStyle", ";scalafmtAll; 
scalafmtSbt; javafmtAll; docs/j
 addCommandAlias("checkCodeStyle",
   ";+headerCheckAll; scalafmtCheckAll; scalafmtSbtCheck; javafmtCheckAll; 
docs/javafmtCheckAll")
 
+val mimaCompareVersion = "1.0.0"
+
 lazy val root = project
   .in(file("."))
   .enablePlugins(Common, ScalaUnidocPlugin)
-  .disablePlugins(SitePlugin)
+  .disablePlugins(SitePlugin, MimaPlugin)
   .aggregate(core, cassandraLauncher)
   .settings(name := "pekko-persistence-cassandra-root", publish / skip := true)
 
@@ -36,18 +38,22 @@ dumpSchema := (core / Test / runMain).toTask(" 
org.apache.pekko.persistence.cass
 
 lazy val core = project
   .in(file("core"))
-  .enablePlugins(Common, AutomateHeaderPlugin, MultiJvmPlugin)
+  .enablePlugins(Common, AutomateHeaderPlugin, MimaPlugin, MultiJvmPlugin)
   .dependsOn(cassandraLauncher % Test)
   .settings(
     name := "pekko-persistence-cassandra",
     libraryDependencies ++= Dependencies.pekkoPersistenceCassandraDependencies,
     Compile / packageBin / packageOptions += Package.ManifestAttributes(
-      "Automatic-Module-Name" -> "pekko.persistence.cassandra"))
+      "Automatic-Module-Name" -> "pekko.persistence.cassandra"),
+    mimaReportSignatureProblems := true,
+    mimaPreviousArtifacts := Set(
+      organization.value %% name.value % mimaCompareVersion))
   .configs(MultiJvm)
 
 lazy val cassandraLauncher = project
   .in(file("cassandra-launcher"))
   .enablePlugins(Common)
+  .disablePlugins(MimaPlugin)
   .settings(
     name := "pekko-persistence-cassandra-launcher",
     Compile / managedResourceDirectories += (cassandraBundle / target).value / 
"bundle",
@@ -58,6 +64,7 @@ lazy val cassandraLauncher = project
 lazy val cassandraBundle = project
   .in(file("cassandra-bundle"))
   .enablePlugins(Common, AutomateHeaderPlugin)
+  .disablePlugins(MimaPlugin)
   .settings(
     name := "pekko-persistence-cassandra-bundle",
     crossPaths := false,
@@ -72,6 +79,7 @@ lazy val cassandraBundle = project
 lazy val endToEndExample = project
   .in(file("example"))
   .dependsOn(core)
+  .disablePlugins(MimaPlugin)
   .settings(
     libraryDependencies ++= Dependencies.exampleDependencies, publish / skip 
:= true,
     // make version compatible with docker for publishing example project,
@@ -107,11 +115,13 @@ lazy val endToEndExample = project
 
 lazy val dseTest = project
   .in(file("dse-test"))
+  .disablePlugins(MimaPlugin)
   .dependsOn(core % "test->test")
   .settings(libraryDependencies ++= Dependencies.dseTestDependencies)
 
 lazy val docs = project
   .enablePlugins(ParadoxPlugin, PekkoParadoxPlugin, ParadoxSitePlugin, 
PreprocessPlugin)
+  .disablePlugins(MimaPlugin)
   .dependsOn(core)
   .settings(
     name := "Apache Pekko Persistence Cassandra",
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 4e39043..aa057a4 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -17,6 +17,7 @@ addSbtPlugin("com.typesafe.sbt" % "sbt-multi-jvm" % "0.4.0")
 addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")
 addSbtPlugin("org.mdedetrich" % "sbt-apache-sonatype" % "0.1.10")
 addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.11")
+addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.3")
 
 // Documentation
 addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to