Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
Play 2.9.8 source code.tar.gz | 2025-06-30 | 3.5 MB | |
Play 2.9.8 source code.zip | 2025-06-30 | 5.3 MB | |
README.md | 2025-06-30 | 7.3 kB | |
Totals: 3 Items | 8.8 MB | 0 |
The Play Team is happy to announce the release of Play 2.9.8! 🥳
:green_book: About this Release
This release fixes several bugs and a CVE, improves Scala 3 support, and - as always - updates dependencies. We strongly recommend upgrading at your earliest convenience.
If you're considering upgrading to Play 2.9, please check the Play 2.9 release announcement for highlights and further details on how to migrate. Many projects have already smoothly upgraded to Play 2.9.
sbt 1.9.0 or newer is now required
Because of recent changes in how artifacts are published to Maven Central, older sbt versions can no longer retrieve Play's sbt plugins published starting July 1, 2025. If you're still using an older sbt release, you'll need to upgrade to sbt 1.9.0 or newer to continue fetching Play artifacts from Maven Central. Play 2.9.8 and newer will not work with earlier sbt versions. To be fair, when releasing Play 2.9, we already announced 1.9.0 as the minimum required sbt version, even though older versions may still have worked until now.
Scala 3 improvements
-
Twirl now supports
using
in it's templates, so you can define template parameters like: ```html @(x: Int)(using y: Int) ```` Thanks to @ajafri2001 for implementing this improvement :raised_hands:: https://github.com/playframework/twirl/pull/933 Prepend "using" at the callsite when definition site has implicit parameter -
When using Play JSON, the JSON field ordering is now correctly preserved when compiling with Scala 3 - implemented by @xuwei-k: https://github.com/playframework/play-json/pull/1177 fix field ordering Scala 3 writes macro
Noteworthy Pull Requests
- [#13299] [2.9.x] Upgrade commons-beanutils to fix CVE-2025-48734 (backport [#13297]) by @mkurz
- [#13327] [2.9.x] Fix iterator for Cookies created via play.api.test.Helpers.cookies (backport [#13317]) by @murosan
- [#13284] [2.9.x] Fix ClassCastException when using
@With
Java annotation (backport [#13282]) by @mkurz
Full Changelog
Following pull requests got merged for this release:
- [#13356] [2.9.x] sbt 1.11.2 everywhere by @mkurz
- [#13306] [2.9.x] sbt-ci-release 1.11.1 (was 1.9.3) by @scala-steward
- [#13309] [2.9.x] sbt, sbt-dependency-tree, ... 1.11.2 (was 1.10.11) by @scala-steward
- [#13352] [2.9.x] Upgrade play-json by @mkurz
- [#13350] [2.9.x] Twirl upgrade by @mkurz
- [#13338] [2.9.x] hibernate-core 6.6.19.Final (was 6.6.18.Final) by @mkurz
- [#13340] [2.9.x] Patch updates by @mkurz
- [#13347] [2.9.x] Fix groupid in scala steward conf (backport [#13346]) by @mkurz
- [#13332] [2.9.x] sbt-java-formatter 0.10.0 (was 0.8.0) (backport [#13251]) by @scala-steward
- [#13331] [2.9.x] hibernate-core 6.6.18.Final (was 6.6.15.Final) (backport [#13324]) by @scala-steward
- [#13330] [2.9.x] Pin caffeine (backport [#13329]) by @mkurz
- [#13327] [2.9.x] Fix iterator for Cookies created via play.api.test.Helpers.cookies (backport [#13317]) by @murosan
- [#13313] [2.9.x] Pin Hibernate ORM to 6.x (backport [#13312]) by @mkurz
- [#13310] [2.9.x] Patch updates by @scala-steward
- [#13308] [2.9.x] hibernate-core 6.6.17.Final (was 6.6.13.Final) by @scala-steward
- [#13307] [2.9.x] netty-codec-http, netty-handler, ... 4.1.122.Final (was 4.1.121.Final) by @scala-steward
- [#13299] [2.9.x] Upgrade commons-beanutils to fix CVE-2025-48734 (backport [#13297]) by @mkurz
- [#13284] [2.9.x] Fix
ClassCastException
when using@With
Java annotation (backport [#13282]) by @mkurz - [#13277] [2.9.x] docs: add note about known bug with logger configuration (backport [#13275]) by @gaeljw
- [#13267] [2.9.x] commons-io 2.19.0 (was 2.18.0) by @scala-steward
- [#13270] [2.9.x] Patch updates by @scala-steward
- [#13268] [2.9.x] netty-codec-http, netty-handler, ... 4.1.121.Final (was 4.1.119.Final) by @scala-steward
- [#13248] [2.9.x] Use ubuntu-24.04 GHA runner image (backport [#13107]) by @mkurz
- [#13241] [2.9.x] Pin Netty to 4.1.x by @mkurz
- [#13237] [2.9.x] Patch updates by @scala-steward
- [#13236] [2.9.x] hibernate-core 6.6.13.Final (was 6.6.10.Final) by @scala-steward
- [#13207] [2.9.x] Fix Heroku deprecated toolbelt URL on ProductionHeroku.md (backport [#13205]) by @bidego
For more details see the full list of changes and the 2.9.8 milestone.
:heart: Thanks to our premium sponsors!
If you find this OSS project useful for work, please consider asking your company to support it by becoming a sponsor. You can also individually sponsor the project by becoming a backer.
:bow: Thanks to our contributors
Finally, thanks to the community for their help with detailed bug reports, discussions about new features and pull request reviews. This project is only possible due to the help we had from amazing contributors. Special thanks to all code contributors who helped with this particular release (they are listed below)!