Scala 3.3.8 LTS release thread

Scala 3.3.8-RC1 is now available for testing.

This patch release backports most of the bugfixes and some of the improvements introduced in the Scala Next series up to the Scala 3.8.4 release.

All of the backported changes were proven to not break either binary or source compatibility, by testing over 1500 projects in the Scala 3 Open Community Build.

Notable changes

  • Support for JDK 26 #24430
  • Multiple coverage improvement to make it on par with Scala 2 support including
    // $COVERAGE-OFF$ and // $COVERAGE-ON$ markers
  • New @uncheckedOverride annotation for definitions that might or might not override. (This can be useful when cross-building.)
    #24545
  • Trap Ctrl-C in the REPL: if no command is running clear the prompt, if some
    command is running ask for confirmation before exiting.
    #24127
  • Numerous linting and presentation compiler improvements and fixes.

For a full list of changes and contributor credits, please refer to the release notes.

The final release is planned for next month 7th June.

4 Likes

There is something I don’t understand. The number of failing projects has increased from 3.3.6 to 3.3.7, and again from 3.3.7 to 3.3.8. The ā€œpromiseā€ of LTS was to see this number consistently drop, not rise.

We always check the failing projects and the reason for them to start failing.

There is a few reason why they can end up in that state:

  • project no longer exists and can’t be checked out
  • project started to use Scala 3.4.0+ and is no longer possible to compile with Scala 3.3.x
  • new projects that were never compiling
  • projects failing due to complexity of the build and it can’t be easily tested automatically

We usually check the latter ones manually and we make sure each failure is not due to changes in the compiler itself.

4 Likes

Is there tracking of why projects fail that’s public? I want try some automation to get the entire community build into a green state.

It seems to work nicely. I started from oldest Scala 3 version projects that are stuck on (3.2.2), and Claude already minimized three tickets. We’ll try to vibe code fixes as long as they are not too drastic.

Tracking progress here: [CB] Scala 3.9.0 nightly community-build triage — 0c8c581 (2026-05-01) Ā· Issue #1 Ā· soronpo/dottybug Ā· GitHub

1 Like

Really nice! Already 11 projects have relevant tickets filed + a tentative PR to fix them.

1 Like

java.lang.StackOverflowError

Have created issue java.lang.StackOverflowError Ā· Issue #26071 Ā· scala/scala3 Ā· GitHub

Will this be backported to Scala 3.3.8? as I think people can not move to 3.9.0 any time soon.

Why?

2 Likes

Will this be backported to Scala 3.3.8?

JVM backend optimizer won’t get backported to 3.3 LTS - that’s a large change that also depends on previous, not backported refactors and changes

2 Likes

any stack where you dont control the platform and need JDK 8

New release candidate is now available, it includes security fixes, improvements to the presentation compiler helpful for Metals v2 as well as fixes discovered regression in pekko.

4 Likes

Is 7th June still the planned date or did it move?

The standard procedure for compiler releases is that RC can become a Stable release after at least a week since announcement, so it can be tried out against regressions and give time for opening issues.
Based on that a clock started ticking 8h ago, but the final decision is on the LTS release officer.

1 Like

You can test it with 3.3.8-RC2 now

I now realised that 7th is Sunday, so most likely it will be the next week instead. I will double check for regressions and see if there is anything we still need to take care of.