Drupal 9 Is Coming!
How do I plan for it?
Drupal announced Drupal 7 will be end-of-life in November 2021, Drupal 9 will be released in 2020, and Drupal 8 will also reach end-of-life in November 2021. Fuse IQ is paying close attention as Drupal developers, and for our clients with Drupal websites. Though we are barely midway through 2019, in the context of budgeting and website migration planning, 2021 is right around the corner and it’s important to start planning now! Read on for our perspective and tips and planning for this release.
In previous major upgrades of Drupal, from Drupal 6 to Drupal 7, Drupal 7 to Drupal 8, there were promises of easy upgrade paths from 6 to 7 and 7 to 8, even 6 to 8. Unfortunately, these promises never came to fruition for a number of reasons:
Drupal 6, 7 and 8 are fundamentally different from each other in their construction, underlying frameworks, theming layer and database structures.
When doing a major site upgrade, typically years in between, it is very rare that site owners will port their content and functionality field for field, letter for letter, exactly to their new site. Every client we’ve worked with has chosen to significantly redesign and restructure their site and update their content at the same time they upgrade.
The web landscape continues to evolve. What was true 5 years ago is not true today. Take for example the tidal wave of mobile devices and the evolution to the bulk of web traffic now on mobile devices. Designing websites mobile-first, mobile responsive, as most Drupal 7 and 8 upgrades were, added a whole other dimension to design and content considerations.
Will the migration to Drupal 9 be different from previous major version upgrades?
The answer is yes…...and no. If you are currently on Drupal 8, the upgrade process will be fundamentally different and easier. You won’t have to rebuild the site completely, unless you want to 😁 If you are on an earlier major version of Drupal such as version 6 or 7, you need to plan a total rebuild.
The architecture of Drupal 8 and Drupal 9 are essentially the same, relying on the same 3rd party technologies such as Twig (PHP template engine) and the Symfony (PHP framework). However, a major driver of the release of Drupal 9 is the upgrade of Symfony to version 4 and the end-of-life (end of support) for Symfony 3 - upon which Drupal 8 depends.
Another motivation for this new version by Drupal is the cleanup of deprecated code (obsolete code replaced by better methods or versions). Across different major versions of Drupal 8, various deprecated pieces of functionality have been replaced or improved. Drupal 9 significantly, will upgrade to support the latest versions of their 3rd party dependent technologies, Symfony 4 and Twig and at the same time removing deprecated code. Comparing to Drupal 8.9 (and most versions of Drupal 8) there will be no new features in Drupal 9.0 but there will be new features rolled in 9.1, 9.2, 9.3 predicted to be on approximately every 6 month releases.
One of the best things about this upgrade approach, comparing to the path from Drupal 7 to Drupal 8, is that module developers can make their modules Drupal 9 ready now and throughout Drupal 8.6, 8.7 and 8.9 with increasing chunks of code being deprecated in those versions. A fundamental strength of most content management systems like Drupal and Wordpress is the extensibility of features and functionality by 3rd party developers, so this jump start is key to Drupal 9’s success and adoption. This is marked improvement from Fuse IQ’s and many developers experience with the Drupal 8 release at the end of 2015. Our choice to use it on new client projects was delayed because module developers did not release their Drupal 8 versions until after the release of Drupal 8 itself, sometimes not until more than a year later!
Another positive for the Drupal 9 rollout plan is that Drupal is developing tools to help developers upgrade to 9, check for deprecated code and provide guidance on compatibility. So, developers can update in 8.7 in preparation for Drupal 9. There is more detail on these tools and upgrading your code that is gritty dev detail for another article, and is still in process within the Drupal organization.
I have a Drupal 8 site, what do I plan for?
The most important thing to do is to keep your site up to date. This means updating Drupal core and contributed modules, particularly security updates, updating contributed modules to their latest versions where the module developer indicates they have updated deprecated code or fixed bugs. If there are particular 3rd party modules your site heavily relies on, check that module’s page on drupal.org and make sure the module is being actively maintained, and that regular security and bug fix releases are coming out. This will ensure you don’t arrive at Drupal 9 with a key piece of functionality that is not compatible or breaks the site. If you've developed a bit of custom functionality in the form of a custom module for example, you will need to update your module to be fully compatible with the latest technology versions of Symfony and of Drupal 9, and remove any deprecated code. Even if you are upgrading a relatively simple Drupal 8 site, there will be some time and cost in the updating of various modules and likely the hosting server itself. If you are on platform based hosting such as Pantheon or Acquia, the server upgrade piece should be very smooth if you are already hosting a Drupal 8.x site there.
I have a Drupal 7 site, what about me?
You can and should start planning for Drupal 9 now. Drupal used to drop support for the earlier major version once the next was released. This time the Drupal organization is extending support for Drupal 7 for a full year and a half after Drupal 9’s release to allow plenty of time for folks to upgrade. I suspect the motivation for Drupal doing this is primarily wanting to be a good partner for the Drupal community. However, I think there is also a recognition that there are many well functioning, solid Drupal 7 sites out there. Forcing an upgrade to Drupal 9 too soon could push companies and organizations to consider other CMS platforms such as WordPress and undermine the adoption of Drupal 9.
Despite any rumors that are out there, we do not believe it’s realistic that it will be easy or automated to upgrade a Drupal 7 site to Drupal 9. As mentioned earlier, D7 and D8/9 are very different architectures, require different developer skill sets, and content rarely translates when migrating across a major version. There will be ways to export and import content, but imports often take more time that one would predict and are seldom worth the time and effort that goes into them unless the content and structure of the new site exactly or very closely matches the old website. Additionally, if you have developed any custom functionality or custom modules you will need to plan on porting or rewriting your code to be compatible with the Drupal 8/9 architecture and Symfony 4. Bottom line: plan to rebuild your site migrating from D7 to D9, then take the opportunity to redesign, clean up or rewrite content and fix all those things you don’t like in your current site!
Drupal 9, Yea or Nay?
We are still strong supporters of Drupal as a web app platform and a content management system! At the same time we have had a healthy bit of skepticism about Drupal 9 after our experience with the Drupal 8 release. However, we have much more confidence in the approach the Drupal organization is taking with this next major release both in the technology underpinnings and in the ways in which it supports existing Drupal site owners and those thinking of jumping on the Drupal train now with a D8 website.
If you want to learn more, or are considering Drupal for your next project, please feel free to reach out to our team. We are happy to help!