Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scala 2.13.13 draft release notes #861

Closed
wants to merge 10 commits into from
82 changes: 82 additions & 0 deletions releases/2.13.13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# Scala 2.13.13

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

The following changes are highlights of this release:

### Language

* Support binary integer literals using `0b`, as in Java ([#10656](https://github.com/scala/scala/pull/10656) by [@som-snytt](https://github.com/som-snytt))

### Compatibility

* TASTy reader: support Scala 3.4 ([#10670](https://github.com/scala/scala/pull/10670) by [@bishabosha](https://github.com/bishabosha))
* Support certain Java libraries compiled on JDK 21 ([#10675](https://github.com/scala/scala/pull/10675) by [@SethTisue](https://github.com/SethTisue))
* For JDK 22 support, upgrade to ASM 9.6 ([#10576](https://github.com/scala/scala/pull/10576) by [@Philippus](https://github.com/Philippus))

### 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](https://github.com/scala/scala/pull/10573) by [@som-snytt](https://github.com/som-snytt))
* For migration to 3, accommodate case companion as function ([#10648](https://github.com/scala/scala/pull/10648) by [@som-snytt](https://github.com/som-snytt))
* Scala 3 migration warning for implicits found in package prefix ([#10621](https://github.com/scala/scala/pull/10621) by [@lrytz](https://github.com/lrytz))

### Other improvements

* `-Yrelease` supplements `--release`, allows access to additional JVM packages ([#10543](https://github.com/scala/scala/pull/10543) by [@som-snytt](https://github.com/som-snytt))
* Add `-Xlint:named-booleans` to lint unnamed boolean literal args [ci: last-only] ([#10612](https://github.com/scala/scala/pull/10612) by [@som-snytt](https://github.com/som-snytt))
* Respect `java.lang.Deprecated` annotation even in Scala sources ([#10517](https://github.com/scala/scala/pull/10517) by [@kapunga](https://github.com/kapunga))
* Optimize tail recursion on effectively final methods even when `final` keyword is absent ([#10629](https://github.com/scala/scala/pull/10629) by [@som-snytt](https://github.com/som-snytt))
* Add `-Xlint:pattern-shadow` to lint pattern varids which are backquotable ([#8806](https://github.com/scala/scala/pull/8806) by [@som-snytt](https://github.com/som-snytt))
* In mixed compilation, allow Java sources to reference `MODULE$` ([#10644](https://github.com/scala/scala/pull/10644) by [@som-snytt](https://github.com/som-snytt))
* Scaladoc: re-align `-doc-source-url` behavior with 2.12 ([#10581](https://github.com/scala/scala/pull/10581) by [@lrytz](https://github.com/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
[#10573](https://github.com/scala/scala/pull/10573) for details
* 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](https://github.com/sbt/sbt/issues/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](https://github.com/scala/bug/issues/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](https://github.com/scala/bug/issues/12957));
we'll fix it in 2.13.14

### More changes

For the complete 2.13.13 change lists, see [all merged PRs](https://github.com/scala/scala/pulls?q=is%3Amerged%20milestone%3A2.13.13) and [all closed bugs](https://github.com/scala/bug/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A2.13.13).

## Compatibility

As usual for our minor releases, Scala 2.13.13 is [binary-compatible](https://docs.scala-lang.org/overviews/core/binary-compatibility-of-scala-releases.html) 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](https://www.lightbend.com/scala) for their continued sponsorship of the Scala 2 team’s efforts. Lightbend offers [commercial support](https://www.lightbend.com/lightbend-platform-subscription) for Scala.

## Scala 2.13 notes

The [release notes for Scala 2.13.0](https://github.com/scala/scala/releases/v2.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](https://scala-lang.org/download/2.13.13.html)
* Obtain JARs via [Maven Central](https://search.maven.org/search?q=g:org.scala-lang%20AND%20v:2.13.13)