Skip to content

Releases: playframework/playframework

Play 2.8.0-M1

28 May 18:53
Compare
Choose a tag to compare
Play 2.8.0-M1 Pre-release
Pre-release

The Play Team is pleased to announce the release of Play Framework 2.8.0-M1. This is the first milestone release of Play 2.8.x series. Like all milestone releases, the primary goal is to get feedback, so please let us know if something isn't working or you see something that should be improved. If you are the author of a Play module, we would recommend checking out this release to see how it will affect your module.

There are many improvements and changes at this new release, and you can see them all in Github milestone.

Changelog

Some of the most relevant changes are:

  1. Scala 2.13.0-RC2 support, to keep Play ecosystem on track with the new upcoming version of Scala. We are also dropping support for Scala 2.11.
  2. Akka 2.6.0-M2: as you can see in our roadmap, support Akka 2.6 is a priority, so we are closely tracking Akka 2.6 milestone releases to discover possible integrations problems sooner than later.
  3. Removing deprecated APIs: the main removal was play.mvc.Http.Context API, which we deprecated in Play 2.7. If your application is still using this API, we recommend you to read the migration guide for Play 2.7.
  4. Java 11 support: Play 2.8.0 applications will support Java 11. This release milestone fixes the know issues related to running Play applications in Java 11.
  5. Final changes to remove global state: this is a long journey we started a few versions ago, deprecating the APIs, providing dependency injection support and many other changes in existing APIs. Play 2.8 removes APIs such as Play.current, Play.maybeApplication and others that depend on them.
  6. Dependencies updates: thanks to scala-steward, all dependencies were updated to the newest versions.

Standalone projects

Together with Play 2.8.0-M1, we are also releasing compatible versions of standalone projects that directly depends on Play. These new releases update most of the dependencies and also have Scala 2.13.0-M3 support.

  1. Scalatest+Play 5.0.0-M1
  2. Play WS 2.1.0-M2
  3. Twirl 1.4.1-M1
  4. Play Slick 5.0.0-M1
  5. Play JSON 2.8.0-M1

See the full list of changes here:

  1. Github milestone
  2. All changes

Credits

Finally, thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests review.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Bryant Larsen, Dale Wijnand, Fajr Febriansyah, Greg Methvin, Ignasi Marimon-Clos, Jakub Kozłowski, Johannes Rudolph, João Ferreira, Lukas Rytz, Marcos Pereira, Matthias Kurz, Nikolas, Peerapat A, Philippe Vinchon, Renato Cavalcanti, Roman Parshikov, Scala steward, Valy Dia, Will Sargent, Yinan Ding, Yoshiyuki Sakamoto, gaurang-sawhney, sullis, yohei.naruse.

Play 2.6.23 released!

15 May 16:25
Compare
Choose a tag to compare

The Play Team is pleased to announce the release of Play Framework 2.6.23. This is the latest stable release of Play 2.6.x series.

Changelog

Play 2.6.23 brings in a new version of play-ws (v1.1.13) that includes an important bug fix on streamed calls. In case of an error, after a connection is established, the error is now properly propagated. See playframework/play-ws#340

For more details see the full list of changes and the 2.6.23 milestone.

Credits

Thanks to the community for their detailed bug reports and contributions.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Play 2.6.22 released!

03 May 09:33
Compare
Choose a tag to compare

The Play Team is pleased to announce the release of Play Framework 2.6.22. This is the latest stable release of Play 2.6.x series.

Changelog

Play 2.6.22 brings several bug fixes and documentation improvements.

As always, there are a good number of documentation improvements made by Play contributors. For more details see the full list of changes and the 2.6.22.

Credits

Thanks to the community for their detailed bug reports and contributions.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Dale Wijnand, Albaro Pereyra, Marcos Pereira, Matthias Kurz, Renato Cavalcanti, Ignasi Marimon-Clos, Ruth Stento, Yinan Ding, Naoki Takezoe, Valentin Stoyanov, James Roper.

Play 2.7.2

08 May 03:31
Compare
Choose a tag to compare

The Play Team is pleased to announce the release of Play Framework 2.7.2, the latest stable release of Play.

Changelog

Play 2.7.2 is virtually similar to Play 2.7.1, released a few days before. It mainly fixes a problem with play-docs artifact generation, but from the users' perspective, nothing substantial changed. For more details see the full list of changes.

Credits

Thanks to the community for their detailed bug reports and contributions.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Dale Wijnand, Marcos Pereira, Renato Cavalcanti.

Join the Play Community

Want to discuss the new release or have questions related to Play? Visit the Play Framework forum.

Play 2.7.1

24 Apr 15:48
Compare
Choose a tag to compare

Released 18 Apr 2019

For all the details, see the announcement here: https://blog.playframework.com/play-2-7-1-released/.

Play 2.7.0

01 Feb 21:20
Compare
Choose a tag to compare

The Play Team is proud to announce the release of Play 2.7.0. This release adds many new features and continues our efforts to make Play more modular, flexible, and secure. Play 2.7.0 is the result of more than 1 year of relentless work from our fantastic community comprehending more than 720 changes made from almost 150 contributors.

What's new?

The highlights in Play 2.7.0 include:

gRPC support

gRPC is a transport mechanism for request/response and (non-persistent) streaming use cases. It is a schema-first RPC framework, where your protocol is declared in a protobuf service descriptor, and requests and responses will be streamed over an HTTP/2 connection. Play now offers play-grpc which is a module built on top of akka-grpc and gives you experimental support to declare your services in this format. See Akka gRPC's documentation on Why gRPC? for more information about when to use gRPC as your transport.

Akka Coordinated Shutdown

Play 2.6 introduced the usage of Akka's Coordinated Shutdown but still did not use it all across the core framework or expose it to the end user. Coordinated Shutdown is now used internally to handle Play's lifecycle.

The main advantage is that it gives you fine-grained phases where you can register tasks instead of just having a single phase like Play's application lifecycle. For example, you can add tasks to run before or after server binding, or after all the current requests finishes.

New cache implementation using Caffeine

Caffeine is a high performance, near optimal caching library based on Java 8. It is now the underlying cache library used by Play Cache APIs implementation since it is a much better option for a local cache than the version of EhCache we were using before.

Enhanced Content Security Policy support

There is a new Content Security Policy filter available that supports CSP nonce and hashes for embedded content. The previous setting of enabling CSP by default and setting it to default-src 'self' was too strict, and interfered with browser plugins.

The CSP filter uses Google's Strict CSP policy by default, which is a nonce based policy.

Direct access to request data without Http.Context

Historically, Play used play.mvc.Http.Context as a way to access request information and set some response data. It is a crucial part of Java HTTP & MVC APIs, but it is not a proper abstraction of how these APIs should work. You can now make your actions directly receive the request as a parameter, and consistent APIs were added to manipulate its data and the response.

See our detailed migration guide for examples showing how to migrate to the new APIs.

Major library updates

Play 2.7 brings a new version of most of its dependencies. The updates mainly include new features, security and overall fixes. See a list of the most important updates in our migration guide. Of course, we are also bringing the latest version of our own libraries such as Play JSON, Play-WS and Twirl.

Many improvements in Java Forms API

Java Forms APIs bring a good number of improvements like binding for file uploads, better support for advanced validation, and repeatable constraints.

New HTTP Error Handlers that are more suitable for REST APIs

Play 2.7 brings two new error handlers — one targeting REST APIs which will return errors formatted in JSON. The second one returns HTML or JSON errors based on the preferences specified in client’s Accept header, and it is a better option if your application uses a mixture of HTML and JSON, as is common in modern web apps.


As usual, you can see the more details of those new features in the release highlights and learn how to migrate in our migration guide. See the milestone for a more comprehensive list of changes.

How to start or migrate to Play 2.7

To get started with Play, follow the instructions in our Try Play page. And if you need to migrate from an older version to Play 2.7, see our migration guide.

Thanks to our contributors

Finally, many, many thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release:

   145  Matthias Kurz
   134  Marcos Pereira
    85  Greg Methvin
    36  Rich Dougherty
    24  Play Team
    17  Will Sargent
    17  Ignasi Marimon-Clos
    17  Dale Wijnand
    16  Schmitt Christian
    10  Tim Moore
     9  Renato Cavalcanti
     8  Lousanna
     6  Arnout Engelen
     6  Ben McCann
     6  Shunsuke Otani
     5  sullis
     5  Roman Parshikov
     4  Shruti Singh
     4  James Roper
     4  Cédric Chantepie
     4  Koen De Groote
     4  Shenker93
     3  kenji yoshida
     3  Zack Grannan
     3  Pongpira Upra
     3  jxtps
     3  Nathan Coleman
     2  Erik LaBianca
     2  Arne Schuldt
     2  Andrii
     2  Reto Habluetzel
     2  joymufeng
     2  Toshiyuki Takahashi
     2  techmoksha
     2  mufeng
     2  Tomek Kopczynski
     2  Adam Lane
     2  Alvaro Pereyra
     2  Thiago Arrais
     2  Manogna M
     2  rmcloughlin
     2  James Petty
     2  Dmitry Avershin
     2  Jules Ivanic
     2  Aristotelis Dossas
     2  Guylian
     2  yuuri111
     2  Christian Treppo
     2  Kamil Duda
     2  Radim Kolar
     2  danoliv
     1  Peerapat A
     1  Pierre Court
     1  Quentin PROUST
     1  Rafael Zanella
     1  Rajesh Pitty
     1  Ruth Stento
     1  Ryan Peters
     1  Sean Glover
     1  Sergey Chupov
     1  Sergey Novikov
     1  SheldonSoftdev
     1  Shunsuke Tadokoro
     1  Stephen Marsh
     1  Takahiro Takashima
     1  Tanin Na Nakorn
     1  Taylor Raack
     1  Thibault Meyer
     1  To-om
     1  Ty Kowalewski
     1  Tzu-Chiao Yeh
     1  Valentin Stoyanov
     1  Valy
     1  Veselin Slavchev
     1  Vincent Munier
     1  Yawar Amin
     1  Yinan Ding
     1  YuitoSato
     1  Yury Gribkov
     1  cdow
     1  chenweisomebody126
     1  ctoomey
     1  denisname
     1  duncangodwin
     1  dusanstanojeviccs
     1  Aakash Jain
     1  katainaka
     1  kerami
     1  markglh
     1  nafg
     1  natefitzgerald
     1  nwalsh1995
     1  ozencem
     1  picimaci
     1  sarathraj
     1  sweety98
     1  fghzxm
     1  Adam Williams
     1  Aidara Moussa
     1  Akhil Vijayan
     1  Alain Defrance
     1  Alexandr Tarasyuk
     1  Alexis Hernandez
     1  Amit Mhatre
     1  Ben Nelson
     1  Bora Kaplan
     1  Caio Novaes
     1  Claudio Bley
     1  Daniel Manchester
     1  Daniel Reigada
     1  Derek Wickern
     1  Dominik Dorn
     1  Elijah Rippeth
     1  Eliot Chan
     1  Gabriel Klappenbach
     1  Gui Becker. L
     1  Guillaume Galy
     1  Hajime Shiozawa
     1  Henri Cook
     1  Ivan Orone
     1  Ivar Abrahamsen
     1  Jakub Kozłowski
     1  Jean-Philippe Melanson
     1  Joe Kutner
     1  Johannes Stickel
     1  John Duffell
     1  John Gutierrez
     1  Juan J. Martínez
     1  JunpeiAnzai
     1  Justin Pihony
     1  Justin du Coeur, AKA Mark Waks
     1  Kavit
     1  Kazuhiro Sera
     1  Konstantin Perikov
     1  Lj Chen
     1  Mariot Chauvin
     1  Matthias Berndt
     1  Matthias Erche
     1  Maximilien Riehl
     1  Nafer Sanabria
     1  Naoki Takezoe
     1  Natsumi
     1  NickBlow
     1  Nishan Patel
     1  Onilton Maciel
     1  Paul Porter
     1  Pedro Rijo

Play 2.7.0-RC9

14 Jan 09:53
Compare
Choose a tag to compare
Play 2.7.0-RC9 Pre-release
Pre-release

The Play team is proud to announce a new, hopefully, the last, release candidate for Play 2.7.0. With this release candidate, we are fixing some issues found in RC8 and thus approaching an upcoming GA release. We are also moving closer to the idea of freezing the APIs.

As with the previous RC, the primary goal is to get feedback, so please let us know if something isn't working or you see something that should be improved. If you are the author of a Play module, we would recommend checking out this release to see how it will affect your module. If there are changes not well documented in javadocs, scaladocs or our migration guides, please, let us know so that we can improve them before the general availability release.

There are many improvements and changes at this new release compared to the previous RC. For more details see the full list of changes. But as we did for Play 2.6, we pushed to have a smooth migration from the previous version.

What is new

Play 2.7.0-RC9 brings several bug fixes and improvements. Notable changes:

For other changes, you can see a summary of our progress on 2.7.0 in our roadmap document.

Credits

Finally, thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests review.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Arnout Engelen, Dale Wijnand, Gabriel Klappenbach, Greg Methvin, Hajime Shiozawa, Ignasi Marimon-Clos, James Roper, Marcos Pereira, Matthias Kurz, Natsumi, Rafael Zanella, Renato Cavalcanti

Play Team!

Play 2.6.21

08 Jan 18:13
Compare
Choose a tag to compare

The Play Team is pleased to announce the release of Play Framework 2.6.21. This is the latest stable release of Play.

What is Play Framework?

Play is a high-productivity Java and Scala web application framework that integrates the components and APIs you need for modern web application development.

Play is based on a lightweight, stateless, web-friendly architecture and features predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications thanks to its reactive model, based on Akka Streams.

Getting Play

  1. To start a new project, visit https://www.playframework.com/download.
  2. To upgrade an existing Play 2.6 project, edit your project/plugins.sbt file and set the sbt-plugin to 2.6.21.
  3. To update an older Play project, take a look at the Play 2.6 Migration Guide.

Join the Play Community

Want to discuss the new release or have questions related to Play? Visit the Play Framework forum.

Changelog

Play 2.6.21 brings several bug fixes and performance improvements. Notable changes:

  1. playframework/playframework#8741: Forms - add support for IndexedSeq and Vector bindings.
  2. playframework/playframework#8920: Update guava to version 23.6.1.
  3. playframework/playframework#8890: Update Akka to 2.5.19
  4. playframework/playframework#8586: Update Akka Http to 10.0.15
  5. playframework/playframework#8772: Handle null content type as if the header was not set

And, as always, there are a good number of documentation improvements made by Play contributors. For more details see the full list of changes and the 2.6.21.

Credits

Thanks to the community for their detailed bug reports and contributions.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Amit Mhatre, Greg Methvin,
Gui Becker. L, Hajime Shiozawa, Juan J. Martínez, Kelvin Trambadiya, Marcin Aman, Marcos Pereira, Matthias Kurz, Renato Cavalcanti, Sandeep Chivukula, Roman Parshikov, Taylor Raack, Veselin Slavchev, Will Sargent, Yury Gribkov, fghzxm, picimaci
.

2.7.0-RC3

15 Nov 14:03
Compare
Choose a tag to compare
2.7.0-RC3 Pre-release
Pre-release

The Play team is proud to announce the first release candidate for Play 2.7.0 (due to a bug during the release process we had to skip RC1 and RC2, so RC3 is effectively the first RC). We expect this to be considerably more stable than the milestone releases, not only in terms of functionality but we are also moving closer to the idea of freezing the APIs.

As with milestones, the primary goal is to get feedback, so please let us know if something isn't working or you see something that should be improved. If you are the author of a Play module, we would recommend checking out this release to see how it will affect your module. If there are changes not well documented in javadocs, scaladocs or our migration guides, please, let us know so that we can improve them before the general availability release.

There are many improvements and changes at this new release compared to Milestone 4. More than 50 pull requests were merged. But as we did for Play 2.6, we pushed to have a smooth migration from the previous version.

What is new

So a sneak peek of the main changes after Milestone 4:

A new way to access Http.Request in Java APIs: play.mvc.Http.Context is a crucial part of Java HTTP & MVC APIs, but it is not a good abstraction of how these APIs should work. It either has some concepts that could be better modelled or implementation details that are complex to test and to reason about in a multi-threading framework like Play. Matthias Kurz did an astonishing work to remodel the API, deprecate and document everything that changed.

A new HTTP error handler that understands client's preferred media type: the current HTTP error handler is excellent for web applications, but not for APIs where you want to report errors as JSON or other formats. The new handler is both capable of handling HTML and JSON and is extensible to add whichever format you need.

Improvements around application secret: the application secret is used as the key for ensuring that a Play session cookie is valid, i.e. has been generated by the server as opposed to spoofed by an attacker. However, the secret only specifies a string and does not determine the amount of entropy in that string. Anyhow, it is possible to put a lower bound on the amount of entropy in the secret by merely measuring how short it is.

For other changes, you can see a summary of our progress on 2.7.0 in our roadmap document.

Standalone projects

Together with Play 2.7.0-RC3, we are also releasing compatible versions of standalone projects that directly depends on Play.

  1. Scalatest+Play 4.0.0-RC1
  2. Play-Ebean 5.0.0-RC1
  3. Play WS 2.0.0-RC1
  4. Twirl 1.4.0-RC1
  5. Play Json 2.7.0-RC1
  6. Play Slick 4.0.0-RC1

Please note that these are all intended to be a preview of the upcoming general availability release, and we do not recommend using in a production application. We have made an effort to introduce most major API changes in this release, but we reserve the right to do small changes in a future release candidate. The good news is that there’s still a chance to provide feedback, so please try it out and let us know what you think. Don’t hesitate file issues on the project or start a discussion on our forums if you have suggestions.

Credits

Finally, thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests review.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Andrii, Dale Wijnand, Dmitry Avershin, Erik LaBianca, Greg Methvin, Gui Becker. L, Ignasi Marimon-Clos, Marcos Pereira, Matthias Kurz, NickBlow, Play Team, Radim Kolar, Takahiro Takashima, Taylor Raack, Veselin Slavchev, Will Sargent, fghzxm, natefitzgerald, picimaci, sullis, techmoksha

Play Team!

2.7.0-M4

15 Oct 13:56
Compare
Choose a tag to compare
2.7.0-M4 Pre-release
Pre-release

The Play team is proud to announce the fourth milestone of Play 2.7.0. Like all milestone releases, the primary goal is to get feedback, so please let us know if something isn't working or you see something that should be improved. If you are the author of a Play module, we would recommend checking out this release to see how it will affect your module.

There are several improvements and changes at this new release and you can see the most relevant ones in our roadmap. As we did for Play 2.6, we are pushing to have a smooth migration from the previous version. Please see the migration guide for details on how to upgrade from 2.6.x. We especially value your feedback (and pull requests) on how to make upgrading to this release as smooth as possible.

So a sneak peek of the main changes since milestone 3.

gRPC support: This release continues the effort to support gRPC endpoints via Play Routers for Akka gRPC. Improvements on these release include testkit changes to support SSL and HTTP/2 so gRPC can be used in tests.

Road to remove Http.Context: Quite a few changes made it into this release in preparation to eventually remove Http.Context. So far, the effort is focused on providing alternatives and deprecating the code that will be removed in a later version.

Dependencies updates: most of the dependencies are now update to the latest version. This includes Akka (playframework/playframework#8638), Akka-HTTP (playframework/playframework#8597), ssl-config (playframework/playframework#8691), Play-WS (playframework/playframework#8623) and Guice (playframework/playframework#8657).

And there are many fixes and documentation improvements that were also backported to 2.6.x branch.

You can find the detailed list of changes on GitHub.

Credits

Finally, thanks to the community for their help with detailed bug reports, discussion about new features, and pull requests review.

Thanks to Lightbend for their continued sponsorship of the Play core team's efforts. Lightbend offers commercial support for Play.

Special thanks to the following contributors who helped with this release: Aakash Jain, Alexandr Tarasyuk, Amit Mhatre, Arnout Engelen, Ben McCann, Dale Wijnand, Dmitry Avershin, Erik LaBianca, Ignasi Marimon-Clos, Juan J. Martínez, Jules Ivanic, Marcos Pereira, Matthias Kurz, Nishan Patel, Play Team, Rich Dougherty, Roman Parshikov, Schmitt Christian, Shenker93, Yawar Amin, Yinan Ding, Yury Gribkov, chenweisomebody126, denisname, techmoksha.

Play Team!