Drupal 9 is coming!
It won’t be a revolution like Drupal 8, but evolution of it. It should be released on June 3rd, 2020, so save the date. Drupal 8.9, the last major update of Drupal 8 line will be also released in June.
What is new in Drupal 9?
Not much and a lot of it. Compared to Drupal 8.9, just updated underlaying framework and other dependencies. Compared to Drupal 8.8, all the new features od Drupal 8.9 were added.
Drupal 9 wants to look like modern CMS, it is under the hood. It will bring new theme Olivero, but probably in Drupal 9.1 or later. It also has new admin theme Claro that is already experimental in Drupal 8.8.
What is not in Drupal 9 anymore?
That is one of the reasons why Drupal 9 is the new major release. Drupal contributors make cleanup towards Drupal 9 and get rid of deprecated code.
List of deprecated core APIs with their replacements can be found in this article. Most of these deprecations just unify old APIs and make transition of Drupal development further towards modern PHP. Magic functions are no longer necessary, and developers have to use either standard PHP functions or load namespaced classes and use their methods. This makes Drupal 9 feel more like modern PHP framework, which is good for developers.
There are also some deprecated core modules, that are removed in Drupal 9. Namely block_place, entityreference, field_layout and simpletest. Place Blocks module is removed completely. Entity Reference module is deprecated and should be removed completely in Drupal 10. Field Layout module is removed and replaced with Layout Builder. SimpleTest is moved from core to be contrib module once again.
How do I upgrade to Drupal 9 from Drupal 8?
It’s pretty much like updating to any minor version of Drupal 8. It is built to be compatible with Drupal 8 as much as possible. These basic steps are stated in official guide:
- Ensure your hosting environment matches the platform requirements of Drupal 9
- Update to Drupal 8.8x or 8.9.x (if not already on that version)
- Update all contributed projects and ensure they are Drupal 9 compatible
- Make custom code Drupal 9 compatible
- Update core codebase to Drupal 9
- Run update.php
To be sure, you can use Upgrade Status module.
But there is still one thing that you have to be aware of. System requirement are different in Drupal 9 than in Drupal 8.
|2.4.7 or higher
|0.7 or higher
|0.7 or higher
|7.3 or 7.4
|7.0.8 to 7.4
|5.7.8 or higher
|5.5.3 or higher
|10.2.7 or higher
|5.5.20 or higher
|5.7.8 or higher
|5.5.8 or higher
|10.0 or higher
|9.1.2 or higher
|3.26 or higher
|3.6.8 or higher
Will the transition be smooth?
Yes, it should be. If you are already running Drupal 8.8, you have little to worry about. But it is always good to wait for 9.0.3 and let early adopters debug some issues of the new version.
How do I upgrade to Drupal 9 from Drupal 7?
I would suggest developing new site from scratch but there are some cases where it is not an option. Drupal has your back even in this, but it won’t be that straightforward as migration from 8 to 9. Drupal has Migrate Drupal module in its core to migrate from older versions of Drupal. Upgrade Status module can point out code problems before upgrading. Drupal Module Upgrader can help modify module to be compatible with Drupal 8 and 9. You can also analyze your code using Drupal Check static code analysis tool.
What will happen to older versions of Drupal?
They will follow planned lifecycle. Drupal 8.7 will receive security updates until June 2020. Drupal 8.8 will receive security updates until December 2020. Drupal 8.9 will receive security updates until November 2021 or shorter. Drupal 7 will receive security updates until November 2021. This means that November 2021 will mean end of life for both Drupal 8 and Drupal 7. Vendor Extended Support should be available even longer, until year 2024. But if will not be major concern of Drupal core team anymore.
What happens next?
Well, development of Drupal is planned for coming years so you should not worry. Drupal 10 is planned for middle of 2022 and Drupal 9 should be supported until middle of 2022.