Wait, Release Candidate 8?
Yes, Release Candidate 8. We had problems while publishing the artifacts (due to timeouts on the publishing service) and because of that, we had to restart the process multiple times, incrementing the RC version number. In the end, the problem persisted until we were able to do a successful release. To better address this situation, there are two improvements in progress: we will not promote artifacts automatically for now and a small change to avoid publishing internal artifacts.
Let's go to the important stuff then.
The Play team is proud to announce the second release candidate for Play 2.7.0. With this second release candidate, we are fixing some issues found in RC3 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 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 RC3:
Fix a shutdown deadlock related to CoordinatedShutdown: we are adopting Akka's CoordinatedShutdown to handle the shutdown of the application. 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. We have discovered and fixed a bug where the application was hanging when shutting down in
Logger improvements: We are deprecating existing Play Logger classes more selectively and also added some new APIs to make it easier to use
play.api.Logger in Scala applications.
Another (and possibly final) round of dependencies updates: dependencies were updated to ensure Play 2.7.0 will be released with the new newest stable version of important libraries such as Guice, HikariCP, Specs2, and Selenium. Moreover, our own standalone projects such as Twirl, Play WS and Play JSON had new releases and are also approaching general availability releases.
For other changes, you can see a summary of our progress on 2.7.0 in our roadmap document.
Together with Play 2.7.0-RC8, we are also releasing compatible versions of standalone projects that directly depends on Play.
- Scalatest+Play 4.0.0-RC2
- Play-Ebean 5.0.0-RC2
- Play WS 2.0.0-RC2
- Twirl 1.4.0-RC4
- Play Json 2.7.0-RC2
- Play Slick 4.0.0-RC2
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.
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: Matthias Kurz, Marcos Pereira, Greg Methvin, yuuri111, Peerapat A, Radim Kolar, Renato Cavalcanti, ctoomey, duncangodwin, Ignasi Marimon-Clos