From d0027850e6ab2c229c1eaa07e1ce872ca14113e1 Mon Sep 17 00:00:00 2001 From: Johannes Rudolph Date: Wed, 4 Dec 2019 15:40:38 +0100 Subject: [PATCH] build: fix mima checking for Akka 2.6.0 (#28300) Previously, due to a syntax problem, only typed artifacts were checked against 2.6.0. Co-Authored-By: Arnout Engelen --- .../28300-fix-2.6.0-mima.excludes | 2 ++ .../28300-fix-2.6.0-mima.excludes | 4 ++++ .../28300-fix-2.6.0-mima.excludes | 10 +++++++++ project/MiMa.scala | 22 +++++++++++-------- 4 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 akka-actor/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes create mode 100644 akka-remote/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes create mode 100644 akka-stream/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes diff --git a/akka-actor/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes b/akka-actor/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes new file mode 100644 index 0000000000..0088cffb7c --- /dev/null +++ b/akka-actor/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes @@ -0,0 +1,2 @@ +# Akka 2.6.0 for Scala 2.13 accidentally contained a copy of the protobuf classes which has now been fixed +ProblemFilters.exclude[MissingClassProblem]("akka.protobufv3.internal.*") diff --git a/akka-remote/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes b/akka-remote/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes new file mode 100644 index 0000000000..dd890abd94 --- /dev/null +++ b/akka-remote/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes @@ -0,0 +1,4 @@ +# Internal incompatibilities introduced in the scala 2.13.0->2.13.1 update +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.remote.EndpointManager#Send.unapply") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.remote.artery.Association#OutboundStreamMatValues.unapply") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.remote.transport.AkkaPduCodec#Message.unapply") diff --git a/akka-stream/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes b/akka-stream/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes new file mode 100644 index 0000000000..c41cc0852e --- /dev/null +++ b/akka-stream/src/main/mima-filters/2.6.0.backwards.excludes/28300-fix-2.6.0-mima.excludes @@ -0,0 +1,10 @@ +# Incompatibilities against 2.6.0 / Scala 2.13 in implementation classes +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompletedTraversalBuilder.curried") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompletedTraversalBuilder.tupled") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompletedTraversalBuilder.unapply") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompositeTraversalBuilder.curried") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompositeTraversalBuilder.tupled") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.CompositeTraversalBuilder.unapply") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.LinearTraversalBuilder.unapply") +ProblemFilters.exclude[IncompatibleSignatureProblem]("akka.stream.impl.VirtualProcessor#Establishing.unapply") + diff --git a/project/MiMa.scala b/project/MiMa.scala index 3e0b9eba00..2540d77ea2 100644 --- a/project/MiMa.scala +++ b/project/MiMa.scala @@ -33,15 +33,19 @@ object MiMa extends AutoPlugin { else if (projectName.contains("coordination")) 22 else 0 - 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. - expandVersions(2, 5, ((firstPatchOf25 to latestPatchOf25).toSet - 18).toList) - } else { - Nil - } ++ expandVersions(2, 6, 0 to latestPatchOf26) + 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. + expandVersions(2, 5, ((firstPatchOf25 to latestPatchOf25).toSet - 18).toList) + } else { + Nil + } + val akka26Previous = expandVersions(2, 6, 0 to latestPatchOf26) + + akka25Previous ++ akka26Previous } val akka25PromotedArtifacts = Set("akka-distributed-data")