Scala 3.3.2-RC1 is available on Maven Central. The release brings improvements to the coverage, enhances reporting, and introduces the first experimental parts of the presentation compiler. A stable release is planned for January 30th.
Later this week, you can expect the RC1 of Scala 3.4.0 - the first release of Scala Next. It will contain, among many other things, a fully functional presentation compiler. All the changes from 3.4.0 that do not break any of our compatibility guarantees will be backported to 3.3.3 later.
An important trait of 3.3.2-RC1 is that, as far as we can tell, it is fully backward and forward, source and output, compatible with 3.3.1. From over 1000 tested projects all that were compiling with 3.3.1 are also passing compilation with 3.3.2-RC1. There are also numerous old regressions fixed.
Not yet. We need to backport things that were merged before that change first. Then, we need to ensure it is not causing any new regressions. Waiting for that (and some other heavily requested fixes) would delay 3.3.2 even more, and we wouldn’t have an RC before New Year. Fix for that particular issue will land in 3.3.3 for sure.
I cannot imagine any scenario in which backporting it causes any problems for anyone. It also falls nicely into Is backport of the fix heavily requested? node of our backporting decision diagram. So unless there are objections from the other compiler team members, it should land in 3.3.3.
Sounds like a great Christmas present!
A bit off-topic, but will this have Scala-cli as the default scala command?
Also it would be nice to have it available on, say, SDKMAN, or some other convenient method to install, like cs or scala-cli. (I assume it probably will be, I’m just ignorant on the subject.)
Unfortunately, not yet. We really wanted to deliver it, but we ran out of time if we wanted to start the new release cycle this year. But don’t worry, scala-cli installed with any method (including cs and sdkman) will download and work with 3.4.
Thanks for the info
Scala 2 supports exluding the files from the coverage but scala 3 does not support the same.
Is there any alternate solution provided in 3.3.2-Rc1?
Due to one regression found outside of the Open Community Build and CVE* in one of the Scaladoc dependencies, we needed to release RC2 and RC3. The compiler artifacts are already on Maven Central. I usually wait with the announcement until we have all accompanying tooling ready and tested with the new version. This time, we have a delay on Metals and DAP. Everything should be sorted out on Monday (Feb 5th).
The current expected release is around February 14th.
The mentioned CVE is CVE-2022-36033. In our case, it is absolutely not exploitable in any way. However, we treat such things seriously, so we decided to release 3.3.2-RC3 and 3.4.0-RC4, being identical to the previous release candidate but having jsoup dependency bumped to not vulnerable version.
All tooling problems are sorted out, and RC2 and RC3 are ready to be tested. If there are no new circumstances, stable release (identical to RC3) is expected around February 14th
Unfortunately, a subtle bug in the TASTy reader managed to survive the Release Candidate process. The bug caused 3.3.2 to emit TASTy files incompatible with previous releases in the LTS line, namely 3.3.1 and 3.3.0. This means that should a library author release a new version using 3.3.2, all users still based on older 3.3.x releases will encounter issues. We have decided to abandon the 3.3.2 release entirely and release the 3.3.3 version as a hotfix.
If nothing sudden happens, a release should be announced in the next 24 hours.
The procedure can be found here.