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]

Reply via email to