3.3.2 release thread

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.

The changelog can be, as always, found on GitHub.

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.

12 Likes

That’s really great! I’m still having the following regression:

Was the fix not backported?

Does that include the Relaxed Extension Methods SIP (as non-experimental)?

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.

5 Likes

That’s awesome! So I’ll wait patiently for Scala 3.3.3 :slight_smile:

4 Likes

Sounds like a great Christmas present! :gift: :christmas_tree:
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.)

2 Likes

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.

5 Likes

Hi Team,
I saw that 3.3.2 is released on 30th Jan 2024.
Is the release was happened last night.

Apparently, there is another release cadence in the works:

1 Like

Thanks for the information.
Am curious to know that the below scoverage fix was included in this 3.3.2-RC2?

doesn’t look like it AFAICS:

Thanks for info.
how soon the scoverage fix will be available

Both fixes referenced in Compiler produces incorrect/incomplete coverage data · Issue #16634 · lampepfl/dotty · GitHub are back-ported to 3.3.2 and should be already included in 3.3.2-RC1:

1 Like

I just tested 3.3.2-RC2 on pekko, it compiles, and
Constructor not generated on 3.3.1 · Issue #19569 · lampepfl/dotty · GitHub will fail on runtime, but that happens in 3.3.1 too.

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.

2 Likes

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.

7 Likes

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

6 Likes
3 Likes

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.

7 Likes
3 Likes