Scala 2.12.18 release planning

This thread is for updates and discussions about the upcoming Scala 2.12.18 release.

The main motivation for the release would be to add JDK 20 support. (As usual, a new JDK version requires an ASM upgrade in order for the optimizer work.) The necessary changes, by Philippus Baalman, have already been merged. Oracle’s target release date for JDK 20 is March 21, 2023.

Timing-wise, we intend to do 2.12.18 and 2.13.11 at the same time; see the 2.13.11 release planning thread.

Our team at Lightbend has also been making some changes to help users migrate from 2.12 to 2.13, typically under the -Xsource:2.13 flag.

The 2.12.18 milestone on GitHub has lists of open and merged PRs for the release. You may wish to filter by the “release-notes” label to see only the most significant changes.

Feel free to use this thread to ask questions and share concerns about the timing and contents of the release.


We’ve just finished QAing the current 2.12 nightly on JDK 20 and all is well. Our test suite is green and will run nightly on JDK 20 from now on, and the same is true of the Scala 2.12 community build.

An update on timing: 3.3.0 is a bit delayed (not before April 17, is my understanding, since we don’t have RC4 yet), so that pushes 2.12.18 until at least April 20.

3.3.0-RC5 is now out. With a little luck, 3.3.0 will follow before too much longer.

2.12.18 seems to be in good shape. There are no remaining open tickets or pull requests.

If you would like to test a release candidate, it’s 2.12.18-bin-d56572e.

You can scala-cli -S 2.12.nightly, or see these instructions.

Scala 2.12.18 draft release notes:

If you have any suggested improvements to the notes themselves, you can comment on this pull request.

Both Scalameta and Metals work with the newest release candidate for 2.12.18 :tada:

A WIP PR for Scalameta is here chore: Add support for Scala 2.12.18 by tgodzik · Pull Request #3120 · scalameta/scalameta · GitHub

1 Like

We have a new release candidate: 2.12.18-bin-ceaf7e6. The only change since the last candidate is a classfile parsing fix that makes the compiler work on the current JDK 21 early access build.

1 Like

Just to be maximally clear about timing: our release candidate, 2.12.18-bin-ceaf7e6, was announced here on Monday, May 22. Unless someone finds some serious late breaking problem in testing, we’ll build 2.12.18 no sooner than Tuesday, May 30.

To test the nightly, you can scala-cli -S 2.12.nightly, or see these instructions.

Note that Scala 3.3.0 is now on Maven Central. (As usual, the publication of those JARs is just an early step in the overall release process.)


2.12.18 JARs are now on Maven Central.

Tooling and compiler plugin maintainer powers, activate! Please publish support.

We won’t announce before Wednesday, June 7, 2023. (This is a little longer wait than usual, because we are coordinating with 2.13.11.)

1 Like

The compiler plugins of Scala.js 1.13.1 are on their way to Maven Central for Scala 2.12.18.

I will release some earlier versions later today.

Edit: all versions since v1.7.1 are now available for Scala 2.12.18.


Scala Native compiler plugins for 2.12.18 are on their way to Maven Central (last 3 releases 0.4.10-0.4.12)

1 Like

Scala 2.12.18 is now supported in Scalameta 4.7.7-4.7.8 and Metals 0.11.12. Nightlies will be updated soon.


Hi, is this available on Maven Central? returns 404 today (2023-06-02).

Eugene: I’ve noticed recently that may 404 on a directory listing even when the directory exists and its content exists. So for example is still 404 even days after I published it, but the actual files such as are present and resolvable by sbt, scala-cli, et al.

It looks to me like this is also happening with the directory you mention.

(I assume, or at least hope, that the directory listings will eventually catch up with reality…?)

That’s gnarly, and you’re right – Central Repository: org/scalameta/semanticdb-scalac_2.12.18/4.7.8 is there!

scalafix & sbt-scalafix 0.11.0 are on Maven central, built with and supporting 2.12.18


I still get 404 today (07/06/2023) when using sbt 1.9.0 with semantic db? I guess this is an issue now, because it’s been a few days since the artifact was published.

Scala 2.12.18 is announced. Thanks all!

@thanh can you share an exact reproduction so we can see it happen on our own computers…?

yes of course. I set Global / semanticdbEnabled := true in ~/.sbt/1.0/global.sbt.
and it fails for any projects that use sbt 1.9.0.
Here is the logs:

[lila] $ reload
[info] welcome to sbt 1.9.0 (Eclipse Adoptium Java 17.0.7)
[info] loading settings for project lila-build-build-build from metals.sbt ...
[info] loading project definition from /Users/tle/git/lichess/lila/project/project/project
[info] Updating
[info] Resolved  dependencies
[warn]  Note: Unresolved dependencies path:
[error] stack trace is suppressed; run last update for the full output
[error] (update) sbt.librarymanagement.ResolveException: Error downloading org.scalameta:semanticdb-scalac_2.12.18:4.5.13
[error]   Not found
[error]   Not found
[error]   not found:
[error]   not found: /Users/tle/.ivy2/local/org.scalameta/semanticdb-scalac_2.12.18/4.5.13/ivys/ivy.xml
[error]   not found:
[error]   not found:
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
1 Like

Could you also set the semanticdb version to a newest one? We haven’t released semanticdb for all the older versions.

semanticdbVersion := "4.7.8"