Scala 2.13.10 release planning

This thread is for updates and discussions about the upcoming Scala 2.13.10 release.

We’ll be fast-tracking this release in order to promptly address [2.13.9] `productIterator` change to case classes breaks bincompat if the class is also a value class · Issue #12650 · scala/bug · GitHub.

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.


Good news! Are you planning on an RC to kick the tires? Otherwise I can use a nightly for it.

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.

In the meantime, you can use the current nightly: How do I tell sbt or scala-cli to use a nightly build of Scala 2.12 or 2.13? - Stack Overflow

We merged a number of PRs yesterday. It appears likely that we’ll only be merging one more change (bugfix: Matcher should be able to match on name exactly by tgodzik · Pull Request #10148 · scala/scala · GitHub), which only affects code completion.


Can we skip bugfix: Matcher should be able to match on name exactly by tgodzik · Pull Request #10148 · scala/scala · GitHub and release sooner? It looks like it’ll take a while until that PR is merged and I think it’d be good to have this release sooner than later - 2.13.9 fixes a security vulnerability, but introduces this bincompat issue, so upgrading is sort of deadlocked.


so upgrading is sort of deadlocked

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.


Can we skip bugfix: Matcher should be able to match on name exactly by tgodzik · Pull Request #10148 · scala/scala · GitHub and release sooner?

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.

1 Like

Draft release notes, feedback welcome: Scala 2.13.10 release notes draft by SethTisue · Pull Request #820 · scala/scala-dev · GitHub


Scala 2.13.10 is now available from Maven Central.

We intend to announce on Thursday. Please test, publish plugins and tooling, and so on.


The compiler plugins for Scala.js 1.11.0 were published about 11 hours ago. I have now sent to Maven Central those for v1.7.1 up to v1.10.1, included.


Semanticdb compiler plugin has been back published for 4.5.11, 4.5.12, 4.5.13 and 4.6.0.


Metals 0.11.9 released for Scala 2.13.10. We are still waiting for merge to make it work in nightlies. I will try to finish everything tomorrow.


better-tostring 0.3.17 published for 2.13.10.


Scala Native compiler plugins for versions 0.4.3-0.4.7 were just published to the Maven central


Metals should work correctly in all the new nightlies and expression evaluator published thanks to @adpi2 :tada:


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] 	* 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.


You can see this being further discussed here, and there is also a workaround in there that you can use.

1 Like

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!

1 Like

Yes. This link is in my message,

Ahh, sorry I read and responded too quickly!


scalafix & sbt-scalafix 0.10.4 are out with support for Scala 2.13.10