Announcing Scala.js 1.15.0

Dec 29, 2023.

We are pleased to announce the release of Scala.js 1.15.0!

This release mainly brings a change in how the Scala 2 standard library is versioned in anticipation of SIP 51. There is no user visible impact expected from this change at this point. Transition of the ecosystem will be handled as part of SIP 51.

Read on for more details.

Getting started

If you are new to Scala.js, head over to the tutorial.

If you need help with anything related to Scala.js, you may find our community in #scala-js on Discord and on Stack Overflow.

Bug reports can be filed on GitHub.

Release notes

If upgrading from Scala.js 0.6.x, make sure to read the release notes of Scala.js 1.0.0 first, as they contain a host of important information, including breaking changes.

This is a minor release:

  • It is backward binary compatible with all earlier versions in the 1.x series: libraries compiled with 1.0.x through 1.14.x can be used with 1.15.0 without change.
  • Despite being a minor release, 1.15.0 is forward binary compatible with 1.13.x or later. It is not forward binary compatible with 1.12.x. Libraries compiled with 1.15.0 can be used with 1.13.x or later but not with 1.12.x or earlier.
  • It is not entirely backward source compatible: it is not guaranteed that a codebase will compile as is when upgrading from 1.13.x (in particular in the presence of -Xfatal-warnings).

As a reminder, libraries compiled with 0.6.x cannot be used with Scala.js 1.x; they must be republished with 1.x first.

Improvements

  • Add java.io.FilterReader to the javalib (thanks to @ekrich).
  • Reduce memory usage of the linker with more static string allocation.
  • Split the scalalib into a separate artifact (for SIP 51).