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.

10 Likes

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.

3 Likes

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.

2 Likes

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.

7 Likes

Can we skip https://github.com/scala/scala/pull/10148 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

2 Likes

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.

5 Likes

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.

2 Likes

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

2 Likes

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.

2 Likes

better-tostring 0.3.17 published for 2.13.10.

2 Likes

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

3 Likes

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

3 Likes

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.

3 Likes

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!

2 Likes

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

2 Likes