diff --git a/.github/workflows/binary-compatibility-checks.yml b/.github/workflows/binary-compatibility-checks.yml index 96fee72d24..0124a2ef63 100644 --- a/.github/workflows/binary-compatibility-checks.yml +++ b/.github/workflows/binary-compatibility-checks.yml @@ -38,3 +38,6 @@ jobs: - name: Report MiMa Binary Issues run: sbt -jvm-opts .jvmopts-ci "+~ ${{ matrix.scalaVersion }} mimaReportBinaryIssues" + + - name: Check correct MiMa filter directories + run: sbt -jvm-opts .jvmopts-ci checkMimaFilterDirectories diff --git a/akka-actor/src/main/mima-filters/2.6.19.backward.excludes/31055-actorContext-cancelReceiveTimeout.excludes b/akka-actor/src/main/mima-filters/2.6.18.backward.excludes/31055-actorContext-cancelReceiveTimeout.excludes similarity index 100% rename from akka-actor/src/main/mima-filters/2.6.19.backward.excludes/31055-actorContext-cancelReceiveTimeout.excludes rename to akka-actor/src/main/mima-filters/2.6.18.backward.excludes/31055-actorContext-cancelReceiveTimeout.excludes diff --git a/project/MiMa.scala b/project/MiMa.scala index b34fba531c..a9f728c15c 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -18,9 +18,21 @@ object MiMa extends AutoPlugin { override def requires = MimaPlugin override def trigger = allRequirements + val checkMimaFilterDirectories = + taskKey[Unit]("Check that the mima directories are correct compared to latest version") + override val projectSettings = Seq( mimaReportSignatureProblems := true, - mimaPreviousArtifacts := akkaPreviousArtifacts(name.value, organization.value, scalaBinaryVersion.value)) + mimaPreviousArtifacts := akkaPreviousArtifacts(name.value, organization.value, scalaBinaryVersion.value), + checkMimaFilterDirectories := checkFilterDirectories(baseDirectory.value)) + + def checkFilterDirectories(moduleRoot: File): Unit = { + val nextVersionFilterDir = moduleRoot / "src" / "main" / "mima-filters" / s"2.6.${latestPatchOf26 + 1}.backwards.excludes" + if (nextVersionFilterDir.exists()) { + throw new IllegalArgumentException(s"Incorrect mima filter directory exists: '${nextVersionFilterDir}' " + + s"should be with number from current release '${moduleRoot / "src" / "main" / "mima-filters" / s"2.6.${latestPatchOf26}.backwards.excludes"}") + } + } def akkaPreviousArtifacts( projectName: String,