July 25, 2020
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.
First you will need to make sure your modules are ready for Drupal 9. The Upgrade Status and Upgrade Rector modules help with this. Here’s the kind of useful information Upgrade Status can give you on your modules’ Drupal 9 readiness:
Upgrade Rector is also useful, and gives more specific advice on getting your modules ready for Drupal 9. It does not cover all modules yet, but is still quite useful for developers. It can generate patches for your modules, to help you update them for Drupal 9.
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 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.
Drupal 8 site owners need to move to Drupal, 9 ASAP.
Drupal 7 site owners need to pay attention to the timeline, and start planning now to move off of Drupal 7. A migration effort can take a few months. Some Drupal 7 site owners’ web site requirements might also have changed since their sites were first built, so a reassessment is usually in order. That might result in needing to compare the pros and cons of Drupal 9 vs WordPress vs Django or other CMSes. We love Drupal, but work extensively with WordPress, too, and want to use the most cost-effective tool for the job.