From 5dc6755ad25610438661ebeff84ac8aed51e6b20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Andr=C3=A9n?= Date: Wed, 2 Feb 2022 11:08:48 +0100 Subject: [PATCH] Add CI check for wrong mima filter directories (#31088) And fix incorrect filter mima directory for 31055 --- .github/workflows/binary-compatibility-checks.yml | 3 +++ ...1055-actorContext-cancelReceiveTimeout.excludes | 0 project/MiMa.scala | 14 +++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) rename akka-actor/src/main/mima-filters/{2.6.19.backward.excludes => 2.6.18.backward.excludes}/31055-actorContext-cancelReceiveTimeout.excludes (100%) 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,