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-http.git
The following commit(s) were added to refs/heads/main by this push:
new 6740cbd3a Update sbt-mima-plugin to 1.2.0 (#1286)
6740cbd3a is described below
commit 6740cbd3a3c6b5f6a0b66e62de962c83e4529db9
Author: Scala Steward <[email protected]>
AuthorDate: Tue Sep 8 23:15:03 2026 +0200
Update sbt-mima-plugin to 1.2.0 (#1286)
* Update sbt-mima-plugin to 1.2.0
* Add MiMa excludes for the additional checks in mima 1.2.0
Motivation:
sbt-mima-plugin 1.2.0 inspects members that 1.1.6 skipped - static
forwarders, synthetic case-class members (copy, copy$default$N, apply,
unapply, _N accessors), trait-field accessors and deprecated members.
Against pekko-http-core 1.0.0 and pekko-http 1.0.0 this surfaces 79 and
11 additional problems on Scala 2.13 (45 and 7 on Scala 3), failing the
Compile and test jobs.
Modification:
Add a MiMa exclude file to http-core and to http covering the newly
reported problems. Every excluded member is internal API: the
org.apache.pekko.http.impl packages, or the @InternalApi @DoNotInherit
private[http] HTTP/2 settings traits and their Impl case classes. No
public API is excluded.
Result:
MiMa passes for http-core and http on both published Scala versions with
the 1.2.0 plugin, and the extra detections stay enabled for future
changes.
Tests:
- sbt "http-core/mimaReportBinaryIssues" "http/mimaReportBinaryIssues" ->
success (Scala 2.13.18)
- sbt "++3.3.8!" "http-core/mimaReportBinaryIssues"
"http/mimaReportBinaryIssues" -> success (Scala 3.3.8)
- No tests added: build-only change with no runtime behaviour change.
References:
Refs #1286
---------
Co-authored-by: PJ Fanning <[email protected]>
---
.../mima-1.2.0-additional-checks.excludes | 114 +++++++++++++++++++++
.../mima-1.2.0-additional-checks.excludes | 30 ++++++
project/plugins.sbt | 2 +-
3 files changed, 145 insertions(+), 1 deletion(-)
diff --git
a/http-core/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
b/http-core/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
new file mode 100644
index 000000000..bbb9d0e9a
--- /dev/null
+++
b/http-core/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
@@ -0,0 +1,114 @@
+# 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.
+
+# MiMa 1.2.0 checks members that 1.1.6 skipped: static forwarders, synthetic
+# case-class members (copy, copy$default$N, apply, unapply, _N accessors),
+# trait-field accessors and deprecated members. Every member below belongs to
internal API - the
+# org.apache.pekko.http.impl packages, or the @InternalApi @DoNotInherit
+# private[http] HTTP/2 settings traits and their Impl case classes.
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.http2.BufferedOutlet.onDownstreamFinish")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.http2.hpack.HeaderDecompression.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.parsing.HttpHeaderParser.toLowerCase")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.parsing.HttpMessageParser.parseChunk")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.parsing.HttpResponseParser.parseChunk")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.engine.ws.WebSocket.stack")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$23")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.previewServerSettings")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.remoteAddressHeader")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.websocketRandomFactory")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.WebSocketSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.WebSocketSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.WebSocketSettingsImpl.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.this")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.engine.http2.Http2Multiplexer.updateConnectionLevelWindow")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.engine.ws.WebSocket.stack$default$3")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._12")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._13")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._14")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._15")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._16")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._17")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._18")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._19")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._20")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._21")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._24")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._26")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$12")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$13")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$14")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$15")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$16")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$17")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$18")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$19")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$20")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$21")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$24")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$26")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$10")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$11")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$12")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$13")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$14")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$15")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$16")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$17")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$18")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$19")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$2")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$20")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$21")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$22")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$3")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$5")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.impl.settings.ServerSettingsImpl.copy$default$9")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy$default$10")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy$default$13")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy$default$6")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy$default$7")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.copy$default$9")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.copy$default$10")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.copy$default$7")
+ProblemFilters.exclude[IncompatibleResultTypeProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.copy$default$8")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl._25")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.impl.settings.ParserSettingsImpl.copy$default$25")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.impl.settings.WebSocketSettingsImpl.unapply")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.scaladsl.settings.Http2ClientSettings#Http2ClientSettingsImpl.unapply")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.scaladsl.settings.Http2ServerSettings#Http2ServerSettingsImpl.unapply")
+ProblemFilters.exclude[MissingTypesProblem]("org.apache.pekko.http.impl.engine.ws.UpgradeToWebSocketLowLevel")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.engine.http2.Http2Multiplexer.updateConnectionLevelWindow")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.engine.http2.Http2StreamHandling.org$apache$pekko$http$impl$engine$http2$Http2StreamHandling$$headRequestStreamIds")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.engine.http2.Http2StreamHandling.org$apache$pekko$http$impl$engine$http2$Http2StreamHandling$_setter_$org$apache$pekko$http$impl$engine$http2$Http2StreamHandling$$headRequestStreamIds_=")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$$acceptQueryMediaRangeChar")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$$sfStringChar")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$$sfStringEscapedChar")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$_setter_$org$apache$pekko$http$impl$model$parser$AcceptHeader$$acceptQueryMediaRangeChar_=")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$_setter_$org$apache$pekko$http$impl$model$parser$AcceptHeader$$sfStringChar_=")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.impl.model.parser.AcceptHeader.org$apache$pekko$http$impl$model$parser$AcceptHeader$_setter_$org$apache$pekko$http$impl$model$parser$AcceptHeader$$sfStringEscapedChar_=")
+ProblemFilters.exclude[ReversedMissingMethodProblem]("org.apache.pekko.http.scaladsl.settings.Http2CommonSettings.maxHeaderListSize")
diff --git
a/http/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
b/http/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
new file mode 100644
index 000000000..26016d490
--- /dev/null
+++
b/http/src/main/mima-filters/2.0.x.backwards.excludes/mima-1.2.0-additional-checks.excludes
@@ -0,0 +1,30 @@
+# 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.
+
+# MiMa 1.2.0 checks members that 1.1.6 skipped: static forwarders, synthetic
+# case-class members (copy, copy$default$N, apply, unapply, _N accessors),
+# trait-field accessors and deprecated members. The members below all belong
+# to internal (org.apache.pekko.http.impl) settings classes, so they are not
+# part of the public API surface.
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.RoutingSettingsImpl.apply")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.RoutingSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.RoutingSettingsImpl.fileIODispatcher")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.RoutingSettingsImpl.this")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSentEventSettingsImpl.copy")
+ProblemFilters.exclude[DirectMissingMethodProblem]("org.apache.pekko.http.impl.settings.ServerSentEventSettingsImpl.this")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.impl.settings.RoutingSettingsImpl.unapply")
+ProblemFilters.exclude[IncompatibleSignatureProblem]("org.apache.pekko.http.impl.settings.ServerSentEventSettingsImpl.unapply")
diff --git a/project/plugins.sbt b/project/plugins.sbt
index def397ec3..cab6ca19d 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -10,7 +10,7 @@
resolvers += Classpaths.sbtPluginReleases
addSbtPlugin("com.github.sbt" % "sbt-multi-jvm" % "0.7.0")
-addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.6")
+addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.2.0")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.2")
addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1")
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.6.1")
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]