From 50fa0ed1e3b6562752851fb7a38ec9ebc0f0b0d6 Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Thu, 6 Nov 2025 15:24:00 +0100 Subject: [PATCH] 2.13.18 release notes draft --- 2.13.18.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 2.13.18.md diff --git a/2.13.18.md b/2.13.18.md new file mode 100644 index 0000000000..edff1e3aac --- /dev/null +++ b/2.13.18.md @@ -0,0 +1,67 @@ +# Scala 2.13.18 (DRAFT) + +The Scala team at Akka is pleased to announce Scala 2.13.18. + +This release fixes a number of regressions from 2.13.17. It is compatible with JDKs 8 to 26. + +Note: this release is signed with a different GPG key than previous releases. The new key is the same as used by Scala 3. [#11158](https://github.com/scala/scala/pull/11158) + +The following are highlights of this release: + +### Passing a `null` array to a varargs method in Scala 3 + +When passing an array as "sequence argument" to a varargs method, `method(arg: _*)`, the array is converted to a `Seq`. + +In Scala 3 (the syntax is `method(arg*)`), this conversion is done by the `ScalaRunTime.wrapXArray` methods. +These methods were simplified in 2.13.17, which changes the semantics of a `method((null: Array[T])*)` invocation. + +[#11165](https://github.com/scala/scala/pull/11165) restores the previous `null` handling semantics. + +### Fixes for false positive warnings + +* [#11162](https://github.com/scala/scala/pull/11162) reverts `-Xlint:infer-any` to the behavior of 2.13.16. + The lint was extended in 2.13.17 to warn whenever `Nothing` is inferred for a higher-kinded type parameter `T[_]`. + The new warning showed up in many projects: often as a false positive, but even the "true" positive warning was considered unhelpful / spurious in real-world use cases. +* Fix false positive unused warning for private val used in annotation [11149](https://github.com/scala/scala/pull/11149) +* Fix false positive `-Xlint:universal-methods` warning in synthetic code [#11159](https://github.com/scala/scala/pull/11159) +* Fix false positive unused local warning in macro expansion [#11170](https://github.com/scala/scala/pull/11170) + +### Other notable changes + +* On Java 25, `sbt run` now detects main methods that are non-static, non-public or without parameter list [#11137](https://github.com/scala/scala/pull/11137) +* Compiling on Java 26 is now supported [#11179](https://github.com/scala/scala/pull/11179) +* The new `@uncheckedOverride` annotation is equivalent to the `override` keyword, except that it allows to override nothing. + This is useful when cross-building: a method may override or not, depending on the version of some dependency. [#11179](https://github.com/scala/scala/pull/11179) +* Deprecate the `-Xmain-class` compiler flag [#11156](https://github.com/scala/scala/pull/11156) +* Regression fix: 2.13.17 is accidentally dropping certain annotations [#11173](https://github.com/scala/scala/pull/11173) + +### More changes + +For the complete 2.13.18 change lists, see [all merged PRs](https://github.com/scala/scala/pulls?q=is%3Amerged%20milestone%3A2.13.18) and [all closed bugs](https://github.com/scala/bug/issues?utf8=%E2%9C%93&q=is%3Aclosed+milestone%3A2.13.18). + +## Compatibility + +As usual for our minor releases, Scala 2.13.18 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. + +This release was brought to you by 8 contributors, according to `git shortlog -sn --no-merges @ ^v2.13.17 ^2.12.x`. Thank you Lukas Rytz, A. P. Marki, Scala Steward, Seth Tisue, Evgeny Vereshchagin, Kenji Yoshida, NthPortal, Philippus Baalman. + +Thanks to [Akka](https://akka.io) for their continued sponsorship of the Scala 2 team’s efforts. Akka offers commercial support 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.18.html) +* Obtain JARs via [Maven Central](https://search.maven.org/search?q=g:org.scala-lang%20AND%20v:2.13.18)