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.git
The following commit(s) were added to refs/heads/main by this push:
new 533759ae56 enable mima check (#481)
533759ae56 is described below
commit 533759ae56ea8080814eafdca56f9610ec6a5b70
Author: PJ Fanning <[email protected]>
AuthorDate: Sat Jul 15 10:31:54 2023 +0100
enable mima check (#481)
* enable mima check
* use java 11 when running mima checks (java 8 builds are missing jfr
classes)
* copy over excludes from akka
* fix up excludes
---
.github/workflows/binary-compatibility-checks.yml | 32 +++++-------------
.github/workflows/publish-nightly.yml | 7 ++--
.../1.0.x.backwards.excludes/jfr.excludes | 2 ++
.../jdk-11-specific-classes.excludes | 7 ++++
project/MiMa.scala | 38 ++++------------------
.../jdk11-specific-classes.backwards.excludes | 2 ++
.../28324-jdk9-specific-classes.backwards.excludes | 5 +++
7 files changed, 34 insertions(+), 59 deletions(-)
diff --git a/.github/workflows/binary-compatibility-checks.yml
b/.github/workflows/binary-compatibility-checks.yml
index 1ce482629b..172aabc6f4 100644
--- a/.github/workflows/binary-compatibility-checks.yml
+++ b/.github/workflows/binary-compatibility-checks.yml
@@ -30,11 +30,11 @@ jobs:
# we don't know what commit the last tag was it's safer to get
entire repo so previousStableVersion resolves
fetch-depth: 0
- - name: Setup Java 8
+ - name: Setup Java 11
uses: actions/setup-java@v3
with:
distribution: temurin
- java-version: 8
+ java-version: 11
- name: Cache Coursier cache
uses: coursier/[email protected]
@@ -42,29 +42,13 @@ jobs:
- name: Enable jvm-opts
run: cp .jvmopts-ci .jvmopts
- # compile code instead of doing mima check (until we re-enable mima
check)
- name: Compile code
run: sbt "+~ ${{ matrix.scalaVersion }} Test/compile"
- # disable mima check until first pekko release is done
- #- name: Report MiMa Binary Issues
- # run: sbt "+~ ${{ matrix.scalaVersion }} mimaReportBinaryIssues"
+ - name: Report MiMa Binary Issues
+ run: |-
+ sbt "+~ ${{ matrix.scalaVersion }} mimaReportBinaryIssues"
- #- name: Check correct MiMa filter directories
- # run: sbt checkMimaFilterDirectories
-
- # comment out email actions until we have an email address to use (and
we need to get INFRA to whitelist dawidd6/action-send-mail)
- #- name: Email on failure
- # if: ${{ failure() }}
- # uses: dawidd6/action-send-mail@v3
- # with:
- # server_address: smtp.gmail.com
- # server_port: 465
- # username: ${{secrets.MAIL_USERNAME}}
- # password: ${{secrets.MAIL_PASSWORD}}
- # subject: "Failed: ${{ github.workflow }} / ${{ github.job }}"
- # to: [email protected]
- # from: Akka CI (GHActions)
- # body: |
- # Job ${{ github.job }} in workflow ${{ github.workflow }} of
${{github.repository}} failed!
- #
https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
+ - name: Check correct MiMa filter directories
+ run: |
+ sbt checkMimaFilterDirectories
diff --git a/.github/workflows/publish-nightly.yml
b/.github/workflows/publish-nightly.yml
index ccd673536a..df273b31a9 100644
--- a/.github/workflows/publish-nightly.yml
+++ b/.github/workflows/publish-nightly.yml
@@ -51,10 +51,9 @@ jobs:
run: |-
sudo apt-get install graphviz
-# disable mima check until first pekko release is done
-# - name: Report MIMA incompatibility issues
-# run: |-
-# sbt +mimaReportBinaryIssues
+ - name: Report MIMA incompatibility issues
+ run: |-
+ sbt +mimaReportBinaryIssues
- name: Publish to Apache Maven repo
env:
diff --git
a/actor-typed/src/main/mima-filters/1.0.x.backwards.excludes/jfr.excludes
b/actor-typed/src/main/mima-filters/1.0.x.backwards.excludes/jfr.excludes
new file mode 100644
index 0000000000..597181ef3c
--- /dev/null
+++ b/actor-typed/src/main/mima-filters/1.0.x.backwards.excludes/jfr.excludes
@@ -0,0 +1,2 @@
+# JDK9+ classes for JFR
+ProblemFilters.exclude[Problem]("org.apache.pekko.actor.typed.internal.jfr.*")
diff --git
a/cluster-sharding/src/main/mima-filters/1.0.x.backwards.excludes/jdk-11-specific-classes.excludes
b/cluster-sharding/src/main/mima-filters/1.0.x.backwards.excludes/jdk-11-specific-classes.excludes
new file mode 100644
index 0000000000..9bd5f75d69
--- /dev/null
+++
b/cluster-sharding/src/main/mima-filters/1.0.x.backwards.excludes/jdk-11-specific-classes.excludes
@@ -0,0 +1,7 @@
+# Java 11 only flight recorder classes
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.Passivate")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.RememberEntityWrite")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.JFRShardingFlightRecorder")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.RememberEntityAdd")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.RememberEntityRemove")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.cluster.sharding.internal.jfr.PassivateRestart")
diff --git a/project/MiMa.scala b/project/MiMa.scala
index 16d6d7be00..27da70fb25 100644
--- a/project/MiMa.scala
+++ b/project/MiMa.scala
@@ -21,8 +21,7 @@ import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._
object MiMa extends AutoPlugin {
- private val latestPatchOf25 = 32
- private val latestPatchOf26 = 20
+ private val latestPatchOf10 = 0
override def requires = MimaPlugin
override def trigger = allRequirements
@@ -37,10 +36,10 @@ object MiMa extends AutoPlugin {
def checkFilterDirectories(moduleRoot: File): Unit = {
val nextVersionFilterDir =
- moduleRoot / "src" / "main" / "mima-filters" / s"2.6.${latestPatchOf26 +
1}.backwards.excludes"
+ moduleRoot / "src" / "main" / "mima-filters" / s"1.0.${latestPatchOf10 +
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"}")
+ s"should be with number from current release '${moduleRoot / "src" /
"main" / "mima-filters" / s"1.0.$latestPatchOf10.backwards.excludes"}")
}
}
@@ -53,39 +52,16 @@ object MiMa extends AutoPlugin {
Set.empty
} else {
val versions: Seq[String] = {
- val firstPatchOf25 =
- if (scalaBinaryVersion.startsWith("2.13")) 25
- else if (projectName.contains("discovery")) 19
- else if (projectName.contains("coordination")) 22
- else 0
+ val firstPatchOf10 = 0
- val akka25Previous =
- if (!(projectName.contains("typed") ||
projectName.contains("jackson"))) {
- // 2.5.18 is the only release built with Scala 2.12.7, which due to
- // https://github.com/scala/bug/issues/11207 produced many more
- // static methods than expected. These are hard to filter out, so
- // we exclude it here and rely on the checks for 2.5.17 and 2.5.19.
- // Additionally, 2.5.30 had some problems related to
- // https://github.com/akka/akka/issues/28807
- expandVersions(2, 5, ((firstPatchOf25 to latestPatchOf25).toSet -
18 - 30).toList)
- } else {
- Nil
- }
- val akka26Previous = expandVersions(2, 6, 0 to latestPatchOf26)
+ val pekko10Previous = expandVersions(1, 0, 0 to latestPatchOf10)
- akka25Previous ++ akka26Previous
+ pekko10Previous
}
- val akka25PromotedArtifacts = Set("pekko-distributed-data")
-
// check against all binary compatible artifacts
versions.map { v =>
- val adjustedProjectName =
- if (akka25PromotedArtifacts(projectName) && v.startsWith("2.4"))
- projectName + "-experimental"
- else
- projectName
- organization %% adjustedProjectName % v
+ organization %% projectName % v
}.toSet
}
}
diff --git
a/remote/src/main/mima-filters/1.0.x.backwards.excludes/jdk11-specific-classes.backwards.excludes
b/remote/src/main/mima-filters/1.0.x.backwards.excludes/jdk11-specific-classes.backwards.excludes
new file mode 100644
index 0000000000..f8dfa1193b
--- /dev/null
+++
b/remote/src/main/mima-filters/1.0.x.backwards.excludes/jdk11-specific-classes.backwards.excludes
@@ -0,0 +1,2 @@
+# Java11+ API's will have to be always filtered until we have these classes in
our normal build flow
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.remote.artery.jfr.*")
diff --git
a/stream/src/main/mima-filters/1.0.x.backwards.excludes/28324-jdk9-specific-classes.backwards.excludes
b/stream/src/main/mima-filters/1.0.x.backwards.excludes/28324-jdk9-specific-classes.backwards.excludes
new file mode 100644
index 0000000000..022cb0e184
--- /dev/null
+++
b/stream/src/main/mima-filters/1.0.x.backwards.excludes/28324-jdk9-specific-classes.backwards.excludes
@@ -0,0 +1,5 @@
+# Java9+ API's will have to be always filtered until we have these classes in
our normal build flow
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.stream.javadsl.JavaFlowSupport*")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.stream.scaladsl.JavaFlowSupport*")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.stream.impl.JavaFlow*")
+ProblemFilters.exclude[MissingClassProblem]("org.apache.pekko.stream.impl.Rs*")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]