What's new in Drupal 9?
Drupal 8 saw a huge code modernization effort away from Drupal 7 code towards object-oriented code, based on the Symfony framework. Drupal 9 modernizes the Drupal codebase and APIs even further, removing some functionality from core and spinning it off as add-on modules instead. This allows Drupal to remain nimble and reduce bloat. These changes do mean that some Drupal 8 sites will need to install new modules in order to maintain certain functionality after moving to Drupal 9.
At a Glance:
- Drupal 9 came out June 3rd, 2020
- Drupal 7 and 8 both reach "end of life" November 2021
- Production sites on Drupal 8 or 7 need to update to 9 before then.
When to Upgrade
The sooner the better, of course! However, many Drupal 8 sites will have certain modules that may not have Drupal 9 ready versions. In such cases there is a waiting game, as well as a cost/benefit analysis of continuing with certain modules vs. ditching them in favor of something else.
Drupal 7 site owners will have a lot more work cut out for them in terms of upgrading to Drupal 9. For Drupal 7 sites, a full site migration is required, and this also entails a full redesign effort. The reason for the redesign effort is that Drupal 8 changed how Drupal themes are coded, requiring Twig templates, which Drupal 7 did not use. Converting Drupal 7 themes to Drupal 8 compatible themes is just about as much work as building a brand-new theme. For most Drupal 7 sites looking at the November 2021 EOL date, they are probably due for a redesign anyway, so we advise people in that situation to combine the D9 migration with a re-theming effort, for the most bang for your buck.
Drupal 7 and 8 Support Ends November 2021
Drupal 7 and 8 support will end in November 2021. The upgrade path from Drupal 8 to 9 is fairly seamless, but some add-on modules may not be quite ready. Drupal 8 themes will work on Drupal 9, as well.
Drupal 7 sites, on the other hand, require much more effort to move to Drupal 9. The theme would need to be rebuilt as a Drupal 9 theme (with Twig support), and many modules would likely need to be replaced with Drupal 9 equivalents. Many Drupal 7 modules never got a Drupal 8 or 9 version.
A few examples:
- Nodequeue is a popular module in Drupal 6 and 7, but in Drupal 8/9 this would be handled by the Entityqueue module.
- Field Collection is a widely used Drupal 7 module and has a Drupal 8 development version, but the path forward for this is to use the Paragraphs module.
- Display Suite is a handy module for Drupal 7, but after recent API changes to Drupal 8 we no longer use it, and use Drupal's core functionality instead.