github scala/scala v2.13.13
Scala 2.13.13

latest release: v2.13.14
2 months ago

The Scala team at Lightbend is pleased to announce Scala 2.13.13.

The following changes are highlights of this release:

Language

Compatibility

Align with Scala 3

  • Allow either -Xsource:3 (for preparing to switch to 3) or -Xsource:3-cross (for crossbuilding on 2 and 3); some existing users of -Xsource:3 should switch to -Xsource:3-cross to avoid unwanted behavior changes (#10573 by @som-snytt)
    • A new section in the Scala 3 Migration Guide documents -Xsource:3 and -Xsource:3-cross: documentation
  • For migration to 3, accommodate case companion as function (#10648 by @som-snytt)
  • Scala 3 migration warning for implicits found in package prefix (#10621 by @lrytz)

Other improvements

  • -Yrelease supplements -release, allows access to additional JVM packages (#10543 by @som-snytt)
  • -Xlint now enables -Xlint:named-booleans to lint unnamed boolean literal args (#10612 by @som-snytt)
  • Respect java.lang.Deprecated annotation even in Scala sources (#10517 by @kapunga)
  • Optimize tail recursion on effectively final methods even when final keyword is absent (#10629 by @som-snytt)
  • Add -Xlint:pattern-shadow to lint pattern varids which are backquotable (#8806 by @som-snytt)
  • In mixed compilation, allow Java sources to reference MODULE$ (#10644 by @som-snytt)
  • Scaladoc: re-align -doc-source-url behavior with 2.12 (#10581 by @lrytz)

Known issues

  • When upgrading to 2.13.13, existing users of -Xsource:3 should explicitly consider switching to -Xsource:3-cross. Some behaviors of -Xsource:3 have changed, e.g. in result type inference for inherited methods; see new doc page for details
  • Some library authors who were already using -Xsource:3 are getting MiMa failures when upgrading to 2.13.13 and switching from -Xsource:3 to -Xsource:3-cross. If you’re in this situation, you may need to wait for 2.13.14; see scala/bug#12961
  • Users of sbt must upgrade to sbt 1.9.9 to use the console task to access the 2.13.13 REPL (sbt/sbt#7502); error message is NoSuchMethodError: org.jline.utils.AttributedString.fromAnsi
  • Regression: Scaladoc generation may fail if you are using the TASTy reader to access Scala 3 dependencies (scala/bug#12955); error message is "Unsupported Scala 3 generic tuple type"; we'll fix it in 2.13.14
  • Regression: on JDK 11 (but not 8 or 17 or 21), the REPL prints a harmless "illegal reflective access" warning at startup (scala/bug#12957); we'll fix it in 2.13.14
  • The inclusion of -Xlint:named-booleans in -Xlint (#10612) has already proved at least somewhat controversial, and will likely be adjusted for 2.13.14; you can leave feedback on this at #10704

More changes

For the complete 2.13.13 change lists, see all merged PRs and all closed bugs.

Compatibility

As usual for our minor releases, Scala 2.13.13 is binary-compatible with the whole Scala 2.13 series.

Upgrading from 2.12? Enable -Xmigration while upgrading to request migration advice from the compiler.

Contributors

A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation, spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.

We especially acknowledge and thank A. P. Marki, also known as Som Snytt, who is responsible for many of the improvements in this release.

This release was brought to you by 23 contributors, according to git shortlog -sn --no-merges @ ^v2.13.12 ^2.12.x. Thank you A. P. Marki, Lukas Rytz, Jamie Thompson, Seth Tisue, Scala Steward, friendseeker, Paul J Thordarson, Philippus Baalman, Shardul Chiplunkar, Stefan Zeiger, Dale Wijnand, Dmitry Komanov, Eugene Yokota, Georgi Krastev, GerretS, Jason Zaugg, Martijn, Mohammad Yousuf Minhaj Zia, Roberto Tyley, Ryan Scheidter, Trey Cahill, c, Dependabot.

Thanks to Lightbend for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers commercial support for Scala.

Scala 2.13 notes

The release notes for Scala 2.13.0 have important information applicable to the whole 2.13 series.

Obtaining Scala

Scala releases are available through a variety of channels, including (but not limited to):

  • Bump the using scala setting in your Scala CLI project
  • Bump the scalaVersion setting in your sbt or Mill project
  • Download a distribution from scala-lang.org
  • Obtain JARs via Maven Central

Don't miss a new scala release

NewReleases is sending notifications on new releases.