3.4.0 release thread

3.4.0-RC3 and RC4 are ready for testing! Both compiler versions were available on Maven Central for a few days already. I was waiting with the announcement until we were sure that there were no problems in tooling directly using the compiler.

RC3 fixes the minor forward compatibility issue mentioned earlier and aligns the context bounds treatment under the -3.4-migration setting with the standard behavior.

RC4 is identical, but it bumps a version of jsoup - a dependency of scaladoc. The previous version was affected by a CVE. Copying my comment from the 3.3.2 thread:

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.

2 Likes

Hi,
Is the fixed for this issue, Match Types for Type Projection not working in 3.4.0-RC1 · Issue #19445 · lampepfl/dotty · GitHub, in RC4? A quick test using Scastie Scastie - An interactive playground for Scala. shows that it is still broken.

I don’t think so. It’ll be in 3.4.1 RCs.

Noted with thanks. Is there any way I can do a quick test, as I would need to make sure that is the only problem that is causing our internal library to break in Scala 3.4.x.

You should be able to test with a nightly build of the compiler. See

Noted with thanks!

The release procedure has started: 3.4.0 & 3.4.1-RC1 Release procedure · Issue #19679 · lampepfl/dotty · GitHub

1 Like

I understand 3.4.0 will be released anytime soon, and its release has been tracked here extensively, but I see no information on what is 3.4.1.

When is 3.4.1 expected to be released, given it already has RC now?

When will fixes from 3.4.1 be released in LTS, like 3.3.3 or whatever?

I am not much interested in any new language features, but my project fails to compile with 3.3.1 at the moment and corresponding fixes seem to be present in 3.4.1-RC1.

Have you given 3.3.2 a try? Maybe the fixes are there too? Like 3.4.0, it’s on Maven Central but won’t be announced until tooling support is in place.

The most critical fix for an issue for which I have no reasonable workaround is Fix #19528: Actually remove Dynamic from interfaces of native JS classes. by sjrd · Pull Request #19536 · lampepfl/dotty · GitHub (inheriting Dynamic on Scala.js). I have tested it and the fix is not present in 3.3.2, while being present in 3.4.1-RC1.

I see. Feel free to comment on the PR and mention that you’re hoping it will be backported, with any supporting information. I see it’s marked as “needs assessment” for backporting — that assessment will presumably happen after the team is all done with 3.3.2 and 3.4.0.

(Whether there might be some technical barrier to backporting, I have no idea.)

1 Like

The issue is already listed in Scala 3.3 LTS backports · GitHub as Needs Assessment. I made a comment in it. If there is some work I could do to help the backport, I will be glad to do it (prepare a PR or whatever is needed - I have no idea how backporting works in practice).

1 Like

Some “leaked” info:

The earliest the fix can be applied is 3.3.3 which is ~6 weeks from now.

Is ~6 weeks a syntactic sugar for obligatory 4-6 weeks?

1 Like

8 Likes

Hi there -

Can we add a line to the release notes that indicates that this release is not an LTS release, and perhaps a link to information regarding that? As well as perhaps linking to the release blog? We’ve already seen confusion on this matter at our work.

6 Likes

Congrats on this milestone!
I see in scastie this error:
image

I know that the release process makes sure all relevant artifacts are available before the announcements. Maybe Mtags was missed somehow.

Thanks team :heart: just got 3.4.0 from SDKMAN.
SIP 46 seems to be not included, is that correct? Was looking forward to it :cry:

1 Like

Oh, I think I didn’t backport the PR that supports dotty presentation compiler to Scastie. Will fix it today :sweat_smile:

1 Like

Same issue is present in VS Code with Metals. It’s causing worksheets to not evaluate when using 3.4.0 (I think that’s the reason?)
I get this in Metals:

2024.03.02 21:09:05 INFO Failed to resolve mtags for 3.4.0

Hey, from 3.4.0 mtags are longer be released for metals, and they rely on presentation compiler provided by dotty. There should be another log below saying: Presentation Compiler found for 3.4.0

Despite that, worksheets should work for you, so if you don’t mind sharing the snippet in direct message, that caused the failure or provide any more information I’ll be glad to help solve this issue.

1 Like