Last month, two major Drupal news items dropped. In light of these developments, you may want to rethink plans for upgrading to Drupal 8. Should you now migrate from Drupal 7 to Drupal 9?
First of all, an expected milestone: Drupal 9 has been officially released. Seeing the Drupal community easily hit their launch target bodes well for Drupal 9’s stability and adoption rate.
Previously, Drupal 7’s end-of-life was scheduled for November 2021. Given the impact of COVID-19 on budgets and businesses, we will be extending the end of life until November 28, 2022. The Drupal Security Team will continue to follow the Security Team processes for Drupal 7 core and contributed projects.from the Drupal Security Team June 24, 2020 PSA
What does this mean for Drupal 7 site owners?
For those of you that have begun mapping your transition, you should ignore this end of life extension. Drupal 7 is still coming to an end, and the future lives in Drupal 9. Don’t let this minor extension deter your momentum (but read further below for a potential shift in your strategy to go from Drupal 7 to Drupal 9 directly).
If anything, you might want to get a bit more ambitious in your planning for a redesign in conjunction with the move to a new version. With more months to work with, that can make a lot of financial sense.
For those of you who have been putting off transition planning for Drupal 8 or Drupal 9, there’s still time—more time than there was—but time inevitably flies. Consider this a lucky break. Get cracking!
In short, we still encourage you to be just as proactive in your planning and budgeting. Treat this extra cushion of time as your opportunity to get ahead of the curve. Drupal 7 will continue to be supported by the security team and community at large for an additional year on top of its original end of life. But that does not guarantee that all contributed Drupal 7 ecosystem modules will get the same level of attention from their maintainers. They didn’t sign on for another year, and may not have the bandwidth to keep up with D7 support much longer.
What about Drupal 8 end of life?
Drupal 8 end of life remains scheduled for November 2021. Sites built with Drupal 8 need to upgrade to Drupal 9 before then.
Does it seem odd that the deadline for getting off of Drupal 7 got extended, but the deadline for getting out of Drupal 8 was not?
There’s a simple reason for it: dependencies.
- Drupal 8 was built with a dependency for Symfony 3
- Symfony 3 has its own end of life slated for (you guessed it) November 2021.
- The Drupal community can’t support D8 once the Symfony community leaves Symfony 3 behind.
- Drupal 7 doesn’t use Symfony 3, so it doesn’t have to worry about their schedule.
Although the focus of Drupal innovation now centers on Drupal 9, the reality is that the vast majority of Drupal sites are still on Drupal 7.
Perhaps the Drupal community’s powers-that-be realized that a lot of big important entities running Drupal 7 could use an extra twelve months of leeway. Although Drupal 8 was an important step forward, most D7 site owners never took that step, and now Drupal 9 is ready to take over for D8. Now that Drupal 8 has an expiration date that’s sooner than Drupal 7, the motivation to hurry up and get to Drupal 8 has been somewhat undermined.
Going from Drupal 7 to Drupal 9 makes more sense now
Reading between the lines, there seems to be a concession that most organizations that are still looking at options will want to just go Drupal 7 to Drupal 9. Yes, we’re talking about cutting out the middleman—the expiring Drupal 8.
Given the Drupal 7 extended support window, if you haven’t started the process to D8 yet, going directly from Drupal 7 to Drupal 9 makes valid sense, for the following reasons.
- Green light for Drupal 9: officially released, stable, and real sites actively using it.
- The Drupal 7 migration ecosystem remains available in Drupal 9
- Drupal 9 uses the same migrate_drupal module you need to for Drupal 8
It’s an equivalent effort to upgrade to Drupal 8 as it is to Drupal 9. Whichever way you go, it’s going to take similar work. Count on migration planning, spot fixing conflicts, major and minor retooling, managing platform requirements. Some task will go surprisingly well, others will snag, and that’s normal.
As more development teams successfully navigate sites from Drupal 7 to Drupal 9, the more everyone understands the best practices for avoiding pitfalls and speeding up the process. That’s the beauty of an active and generous open-source community, sharing knowledge and experience.
What are the available migration tools to help us start creating your roadmap?
Upgrade Status module’s Drupal 7 version helps us check to see if your modules and themes have Drupal 8/9 versions and their status. We can gain awareness of the work ahead based on the status report, as below.
- Available: A stable release of this project exists
- In development: A development release of this project exists, ready for testing purposes
- Not ported yet: There are no releases available for this project
- Replaced by: A list of other modules that have superseded this one
Drupal Module Upgrader helps us convert custom code to Drupal 8/9. This handy module scans the source of a Drupal 7 module, flags any code that requires updating to Drupal 8/9, points off to any relevant API change notices, and will actually attempt to convert the Drupal 7 code automatically to the Drupal 8/9 version (where possible).
Drupal core provides the migrate module suite to execute data/content migrations from Drupal 7. This lets us build your site according to Drupal 9 paradigms and then import content to the right places.
The last “big migration” for Drupal?
Drupal.org call this Drupal 9 moment ‘the last big migration’. From this point forward, major evolutions of Drupal will not require wholesale platform upheavals.
From here on, the core project architects promise a continuous innovation cycle delivering new capabilities twice a year. They predict subsequent major updates will be significantly easier.
That’s because future Drupal version releases will happen on the same “track” as their preceding version.
To illustrate this, imagine your website is a train. Previously, moving major versions meant moving the train to a different track entirely. After Drupal 8, new major versions will just be stations on the same track.
The exact end of life date for Drupal 9 remains unknown. As Drupal 9 depends on Symfony 4.4, you can expected it to coordinate with Symfony 4’s end of life. Drupal 10 will probably roll out several months ahead of then.
As long as you keep up with all your core and contrib updates, the migration to Drupal 10 from Drupal 9 should be relatively easy.