-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrate to sbt-typelevel #2791
Migrate to sbt-typelevel #2791
Conversation
build.sbt
Outdated
ProblemFilters | ||
.exclude[ReversedMissingMethodProblem]("fs2.io.net.tls.TLSSocket.applicationProtocol") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was a legit bincompat break 😬 but yolo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, TLSSocket
is sealed
. phew!
FYI this would be a very good chance to migrate to s01 with ThisBuild / tlSonatypeUseLegacyHost := false |
MiMa problems we are just discovering on JVM Scala 3:
|
MiMa just keeps coming 😓
|
@mpilquist it seems like bincompat is badly broken for anything involving default args on Scala 3 ... any thoughts what to do about that? |
build.sbt
Outdated
ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.compression.Compression.gzip$default$*"), | ||
ProblemFilters.exclude[DirectMissingMethodProblem]("fs2.compression.Compression.gunzip$default$1$") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some optimism that these missing methods will be restored once the gzip
and gunzip
methods move back to the shared Compression
trait in #2771.
@@ -267,7 +248,8 @@ lazy val io = crossProject(JVMPlatform, JSPlatform) | |||
.jsEnablePlugins(ScalaJSBundlerPlugin) | |||
.settings( | |||
name := "fs2-io", | |||
libraryDependencies += "com.comcast" %%% "ip4s-core" % "3.1.2" | |||
libraryDependencies += "com.comcast" %%% "ip4s-core" % "3.1.2", | |||
tlVersionIntroduced ~= { _.updated("3", "3.1.0") } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes for an easy fix, WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fine with me
What's done is done. Let's focus on ensuring there are no more bincompat issues going forward though. I don't fully understand what's going on here with default args and the Scala 3 encoding, but I'm concerned that we'll be unable to evolve APIs due to some encoding detail. Have you dug in to the issue yet? |
I haven't really looked in detail and at first glance the encoding seemed similar to Scala 2. I think the difference though is that in Scala 3, the methods for the default args e.g. In any case, when moving methods with default args up to a parent |
Huh, now I'm more confused. As an experiment I commented out this method and ran MiMa on Scala 2 and Scala 3. fs2/core/jvm/src/main/scala/fs2/compression/CompressionPlatform.scala Lines 65 to 72 in 8b285a6
Scala 2
Scala 3
|
More research: I decompiled https://gist.github.com/armanbilge/bd4bdbcc3f76294b9245cf347a42bc8a See also lightbend-labs/mima#136 for related discussion surround default args and synthetics. |
@mpilquist ready to make the jump? |
No description provided.