diff --git a/releases/2.13.13.md b/releases/2.13.13.md new file mode 100644 index 0000000000..452f58ed74 --- /dev/null +++ b/releases/2.13.13.md @@ -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) +