12650 is a regression where case classes that are also value classes (case class ... extends AnyVal) compile to binary-incompatible bytecode. That is, the bytecode may not work for users who are still on an older Scala 2.13.x version.
The problem was caught because MiMa alerts library maintainers when it occurs. MiMa is usable at publishing time, and it is also usable after the fact. So if you have already published a library using 2.13.9, you can use MiMa to determine if your library might be broken (for users who haven’t also moved to 2.13.9). If you used MiMa before publishing and weren’t alerted, then your library should be fine.
We’ll follow up soon with more details about the contents and timing of 2.13.10, but I wanted to get this much information posted ASAP.
For Scala 2, we don’t do “-RC1” style RCs — our practice is to designate a particular nightly build as the release candidate. I’ll post here once we have one.
That’s true. We postpone several internal releases hoping that 2.13.10 will show up very soon.
It refers to the entire ecosystem. So fast-tracking this release is a significant decision indeed.
The usual schedule is: announce a release candidate; wait 14 days; publish; wait 3 days; announce.
Since this is a fast-tracked release and contains only reversions and minor adjustments, let’s proceed as follows: I’ll publish what we have today (Saturday), then we’ll announce it on Thursday, so tooling authors will still have some time to have support ready by announcement time.
Yeah, that’s what I have decided to do… thanks for the nudges.
Note that the currently nightly is either 2.13.10-bin-cd52542 from yesterday, or 2.13.10-bin-4905801 which Travis-CI should finish building in the next hour or two — they should be identical, since the final PR merged only added tests.
The Wartremover 2.4.21 is also published for 2.13.10, and all good.
The sbt-scoverage (2.0.5) / scalac-scoverage-plugin (2.0.7) is also ready for 2.13.10.
In the case of the below troubles, there is a solution. See below.
[error] java.lang.RuntimeException: found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error]
[error] * org.scala-lang.modules:scala-xml_2.12:2.1.0 (early-semver) is selected over {1.3.0, 1.0.6, 1.2.0}
[error] +- org.scoverage:scalac-scoverage-reporter_2.12:2.0.7 (depends on 2.1.0)
[error] ...
The scala/scala-xml is a root cause. This might be connected with this and this. Upgrading Scala version forces upgrading the Scoverage. It might lead to an issue.
If someone runs into similar issue here is a fix/workaround.
Yes. This link is in my message, and I also put a direct link to sbt, a related issue with the fix that exactly worked very well. Thanks @ckipp01 for releasing the Scoverage!