This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new a2ab4a06fb Update sbt-mima-plugin to 1.2.1 (#3558)
a2ab4a06fb is described below
commit a2ab4a06fb080c95a4deeb1f1cd4a5dc537de2c4
Author: Scala Steward <[email protected]>
AuthorDate: Thu Sep 24 12:07:20 2026 +0200
Update sbt-mima-plugin to 1.2.1 (#3558)
* Update sbt-mima-plugin to 1.2.1
* Keep narrowed definitions checked for sbt-mima-plugin 1.2.1
Motivation:
sbt-mima-plugin 1.2.1 reports definitions that were public in 1.0.0 but are
now private[pekko] or sealed as ClassNoLongerCheckedProblem,
MethodNoLongerCheckedProblem or HierarchyNoLongerCheckedProblem, because it
stops watching them even though the bytecode stays public. The
Check / Binary Compatibility job failed on actor, stream, remote,
cluster-sharding and cluster-sharding-typed with 29 such reports.
Modification:
Add a src/main/mima-filters/binary-api file to each of the five modules with
the BinaryApi.keep entries the report suggested. This keeps MiMa checking
those definitions instead of silencing them with ProblemFilters, so a later
removal is still reported against clients compiled against 1.0.x.
Result:
mimaReportBinaryIssues passes with sbt-mima-plugin 1.2.1 and the narrowed
definitions remain under binary compatibility checking.
Tests:
- Not run locally; the 29 entries are the lines suggested by the failing
Check / Binary Compatibility job, verified by diff. CI re-runs the check.
References:
None - follow-up for the sbt-mima-plugin 1.2.1 bump in this PR
---------
Co-authored-by: PJ Fanning <[email protected]>
---
actor/src/main/mima-filters/binary-api | 33 ++++++++++++++++++
.../src/main/mima-filters/binary-api | 22 ++++++++++++
cluster-sharding/src/main/mima-filters/binary-api | 22 ++++++++++++
project/plugins.sbt | 2 +-
remote/src/main/mima-filters/binary-api | 23 +++++++++++++
stream/src/main/mima-filters/binary-api | 39 ++++++++++++++++++++++
6 files changed, 140 insertions(+), 1 deletion(-)
diff --git a/actor/src/main/mima-filters/binary-api
b/actor/src/main/mima-filters/binary-api
new file mode 100644
index 0000000000..64a8d9b6f1
--- /dev/null
+++ b/actor/src/main/mima-filters/binary-api
@@ -0,0 +1,33 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Definitions that were narrowed to private[pekko] or sealed in 2.0.x but are
still public in
+# bytecode. Kept checked so a later removal is still reported against clients
compiled
+# against 1.0.x. See
https://github.com/scala-garden/mima#keeping-a-definition-checked
+
+# org.apache.pekko.dispatch.BalancingDispatcher escaped through
org.apache.pekko.dispatch.BalancingDispatcherConfigurator.create
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.dispatch.BalancingDispatcher")
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.dispatch.BalancingDispatcherConfigurator")
+BinaryApi.keep[HierarchyNoLongerCheckedProblem]("org.apache.pekko.io.Dns$Command")
+# org.apache.pekko.pattern.BackoffReset escaped through
org.apache.pekko.pattern.BackoffSupervisor.reset
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.pattern.BackoffReset")
+# org.apache.pekko.pattern.HandleBackoff escaped as a parent of class
org.apache.pekko.pattern.internal.BackoffOnStopSupervisor, class
org.apache.pekko.pattern.BackoffSupervisor
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.pattern.HandleBackoff")
+# org.apache.pekko.pattern.HandlingWhileStopped escaped through
org.apache.pekko.pattern.internal.BackoffOnStopSupervisor.this, as a parent of
class org.apache.pekko.pattern.BackoffSupervisor
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.pattern.HandlingWhileStopped")
+# org.apache.pekko.pattern.internal.BackoffOnStopSupervisor escaped as a
parent of class org.apache.pekko.pattern.BackoffSupervisor
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.pattern.internal.BackoffOnStopSupervisor")
diff --git a/cluster-sharding-typed/src/main/mima-filters/binary-api
b/cluster-sharding-typed/src/main/mima-filters/binary-api
new file mode 100644
index 0000000000..bab4205e28
--- /dev/null
+++ b/cluster-sharding-typed/src/main/mima-filters/binary-api
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Definitions that were narrowed to private[pekko] in 2.0.x but are still
public in
+# bytecode. Kept checked so a later removal is still reported against clients
compiled
+# against 1.0.x. See
https://github.com/scala-garden/mima#keeping-a-definition-checked
+
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.cluster.sharding.typed.ClusterShardingSettings#PassivationStrategySettings.this(scala.Option,scala.Option,scala.Option,scala.Option)Unit")
diff --git a/cluster-sharding/src/main/mima-filters/binary-api
b/cluster-sharding/src/main/mima-filters/binary-api
new file mode 100644
index 0000000000..f8f6e52651
--- /dev/null
+++ b/cluster-sharding/src/main/mima-filters/binary-api
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Definitions that were narrowed to private[pekko] in 2.0.x but are still
public in
+# bytecode. Kept checked so a later removal is still reported against clients
compiled
+# against 1.0.x. See
https://github.com/scala-garden/mima#keeping-a-definition-checked
+
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.cluster.sharding.PersistentShardCoordinator")
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 2fe2208fff..a7bf97438c 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -15,7 +15,7 @@ addSbtPlugin("com.lightbend.sbt" % "sbt-bill-of-materials" %
"1.1.1")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.2")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.14.9")
addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.10.0")
-addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.2.0")
+addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.2.1")
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.6.1")
addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" %
"3.1.0")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8")
diff --git a/remote/src/main/mima-filters/binary-api
b/remote/src/main/mima-filters/binary-api
new file mode 100644
index 0000000000..55659b6088
--- /dev/null
+++ b/remote/src/main/mima-filters/binary-api
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Definitions that were narrowed to private[pekko] in 2.0.x but are still
public in
+# bytecode. Kept checked so a later removal is still reported against clients
compiled
+# against 1.0.x. See
https://github.com/scala-garden/mima#keeping-a-definition-checked
+
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.remote.transport.netty.NettyTransportSettings.PortSelector()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.remote.transport.netty.NettyTransportSettings.BindPortSelector()Int")
diff --git a/stream/src/main/mima-filters/binary-api
b/stream/src/main/mima-filters/binary-api
new file mode 100644
index 0000000000..927817bb0e
--- /dev/null
+++ b/stream/src/main/mima-filters/binary-api
@@ -0,0 +1,39 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Definitions that were narrowed to private[pekko] or sealed in 2.0.x but are
still public in
+# bytecode. Kept checked so a later removal is still reported against clients
compiled
+# against 1.0.x. See
https://github.com/scala-garden/mima#keeping-a-definition-checked
+
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializer")
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializer$")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.initialInputBufferSize()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.maxInputBufferSize()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.dispatcher()java.lang.String")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.supervisionDecider()scala.Function1")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.debugLogging()Boolean")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.outputBurstLimit()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.fuzzingMode()Boolean")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.autoFusing()Boolean")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.maxFixedBufferSize()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.syncProcessingLimit()Int")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.blockingIoDispatcher()java.lang.String")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings.withDispatcher(java.lang.String)org.apache.pekko.stream.ActorMaterializerSettings")
+BinaryApi.keep[ClassNoLongerCheckedProblem]("org.apache.pekko.stream.ActorMaterializerSettings$")
+BinaryApi.keep[HierarchyNoLongerCheckedProblem]("org.apache.pekko.stream.Attributes$MandatoryAttribute")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.StreamSubscriptionTimeoutSettings.mode()org.apache.pekko.stream.StreamSubscriptionTimeoutTerminationMode")
+BinaryApi.keep[MethodNoLongerCheckedProblem]("org.apache.pekko.stream.StreamSubscriptionTimeoutSettings.timeout()scala.concurrent.duration.FiniteDuration")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]