The Play Team is pleased to announce the release of Play 3.0.2! 🎉
📗 About this Release
This patch release addresses several bugs and introduces minor enhancements that may benefit you. We strongly recommend upgrading at your earliest convenience.
If you're considering upgrading to Play 3, please check the Play 3 release announcement for highlights and further details on how to migrate.
Noteworthy Pull Requests
- With this release, we are disabling HTTP pipelining in the Play Pekko HTTP backend. HTTP pipelining has not been thoroughly tested within Pekko HTTP and was already disabled in Pekko HTTP itself some time ago. Beyond benchmarking purposes, it is not recommended for practical use, and there is minimal actual usage from common client libraries in their default settings (web browsers do not support it anymore). Furthermore, having HTTP pipelining enabled could lead to Play unexpectedly canceling POST requests with large bodies.
- #12397 Disable HTTP pipelining by @mkurz
- #12351 Requests with Large POST Body Immediately Goes into Delay Cancellation Right After the Server Received the Request by @raphaelNguyen
- Resolved an issue that could result in the loss of result attributes:
- Netty native transports under Linux (enabled with
play.server.netty.transport = "native"
) now support AArch64 and RISC-V out of the box in Play: - Play and Twirl are now compatible with Scala 3.4.0. However, it's important to note that Scala 3.4.0 is not a Long-Term Support (LTS) release, and Play officially supports only Scala LTS versions (currently Scala 3.3). This compatibility is provided as a best effort. Consequently, if you choose to upgrade beyond Scala 3.3, you do so at your own risk, and you should not expect support for issues that may arise.
- #12284 fix warnings with Scala 3.4. avoid
private[this]
by @xuwei-k - Twirl #737 compiler: account for Scala 2 and 3 differences in generated varargs code by @ahjohannessen
- #12284 fix warnings with Scala 3.4. avoid
- If you are using Bower WebJars you will now see deprecation warnings. More details:
- webjars #2039 Bower Deprecation Plan by @jamesward
- You now have the option to disable the generation of JavaScript (reverse) routers if you do not utilize them, potentially enhancing the performance of your build:
- #12270 Add option to disable JavaScript routers by @PromanSEW
- This release includes numerous dependency upgrades, notably:
- #12367 netty 4.1.107.Final (was 4.1.104.Final) by @scala-steward
- #12358 pekko-http 1.0.1 by @pjfanning
- Last but not least, over the past weeks (indeed, months), efforts have been made to transition Play and all its dependencies away from the deprecated (and read-only)
repo.typesafe.com
andrepo.scala-sbt.org
repositories. As a result, with this release, all dependencies (including those for testing) are now hosted exclusively on Maven Central. This change ensures that even if one of the deprecated repositories were to become unavailable (as has happened in the past), your projects would not be affected. Moreover, this move allows for the possibility that, 15 years from now, you could still download the Play 3.0.2+ source code and, with just Java and sbt installed, rebuild Play from the sources (assuming Maven Central is still operational, which is more likely). While this may seem a bit far-fetched, we occasionally receive reports from users attempting to rebuild an ancient Play release but are unable to do so because they cannot retrieve all the necessary dependencies.- playframework/.github #76 Block deprecated repos in
/etc/hosts
by @mkurz
- playframework/.github #76 Block deprecated repos in
Full Changelog
Following pull requests got merged for this release:
- #12459 Upgrade sbt-js-engine, sbt-web, webjars-locator by @mkurz
- #12454 Patch updates by @scala-steward
- #12442 Scala 3.3.3 by @mkurz
- #12435 Update ModuleDirectory.md - Update Silhouette location by @rorygraves
- #12431 Cleanup README by @mkurz
- #12430 Introduce 3.0.x branch by @mkurz
- #12417 Twirl 2.0.4 by @mkurz
- #12414 Update ActorModule documentation by @ndeverge
- #12413 Fix typo in docs by @mkurz
- #12270 Add option to disable JavaScript routers by @PromanSEW
- #12409
TestServer.isRunning
should not throw exception but returnfalse
by @mkurz - #12401 Upgrade to latest scala versions by @mkurz
- #12405 Make Netty native transport work on Linux
AArch64
andRISC-V
(besidesx86-64
) by @mkurz - #12403 Explicitly depend on
netty-reactive-streams-http
transitive dependencies by @mkurz - #12279 Fix unapply examples in ScalaForms docs by @pschichtel
- #12398 sbt 1.9.9 by @mkurz
- #12397 Disable HTTP pipelining by @mkurz
- #12365 logback-classic 1.5.0 (was 1.4.14) by @scala-steward
- #12372 Patch updates by @scala-steward
- #12368 hibernate-core 6.4.4.Final (was 6.4.1.Final) by @scala-steward
- #12367 netty-transport-native-epoll 4.1.107.Final (was 4.1.104.Final) by @scala-steward
- #12370 scalafmt-core 3.8.0 (was 3.7.17) by @scala-steward
- #12359 Fix #8184 Evolutions Fail With a Small Pool by @reardonj
- #12358 pekko-http 1.0.1 by @pjfanning
- #12284 fix warnings with Scala 3.4. avoid
private[this]
by @xuwei-k - #12347 Clean up resolvers by @mkurz
- #12342 Be more generic about repos (avoid repo.typesafe.com) by @mkurz
- #12340 Upgrade sbt-web plugins (to avoid repo.scala-sbt.org) by @mkurz
- #12336 Keep attrs when modifying result by @hertg
- #12303 Patch updates by @scala-steward
- #12328 Fix link to Zengularity by @mkurz
- #12302 sbt-jmh 0.4.7 (was 0.4.6) by @scala-steward
- #12297 sbt-eclipse 6.2.0 (was 6.0.0) by @scala-steward
- #12299 hibernate-core 6.4.1.Final (was 6.3.2.Final) by @scala-steward
- #12290 Never trigger release process via UI, need to push tag by hand always by @mkurz
- #12287 Make clear the evolutions page shows a button by @mkurz
- #12162 update
play-stack
image in doc by @xuwei-k
For more details see the full list of changes and the 3.0.2 milestone.
❤️ 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.
🙇 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)!