Skip to content
Get in touch

Not to be published: Assessing your Drupal 9 readiness, Part I: Estimate, plan and action. Without tears.

There's a lot of excitement within the community, mixed with the stress of final touches. You may have read a lot about how easy it will be to upgrade, all the tools you need to check how “Drupal 9 ready” you are and memorised the commands you need to actually do it.

But have you actually assessed your site(s)? Do you know how long the upgrade will take? Can you communicate with some confidence to your stakeholders, the date the migration will happen? What if something goes wrong? And actually, how will you check if something has gone wrong?

In this series of blog posts, we'll share the models and metrics we have been using at TPXimpact to assess our Drupal 8 projects.

How late am I?

Let’s start with good news (+ Drupal 7 end of life has since moved to November 28, 2022):

Drupal core (1)

That gives you until about November 2021 to upgrade, which I promise is plenty of time.

However, the process itself comes with many uncertainties unless you assess the project as early as possible. So don’t wait — assess as soon as you can.

How Drupal 9 ready am I?

The first step is common to every project: install the wonderful Upgrade Status and scan your modules, themes and profiles. I suggest first scanning your custom code, and leaving the contrib project for later, as we'll plan the eventual work in different ways.

But before starting, why not review the list of your enabled modules and themes? Reducing the list will boost the work below as well as your site performances. Do you still need the Migrations modules enabled? Those features can now be disabled? Do you really depend on that module or that theme? Can’t we decouple, remove the dependencies and disable them? If any of these questions apply to you please go ahead and reduce the number of enabled modules before reading on.

Check Drupal 9 environments requirements

Hosting platform requirements have been upgraded, so you want to first check you are ready for this step. Nothing major, so you are probably already covered. Drupal is only getting in line with modern technologies together with the deprecation policy of legacies.

You can either ask your provider or check yourself within the Upgrade Status module report page.

Drupal core

Drupal 8 already supports the same requirements, although some are only from late versions i.e. PHP 7.3 is supported since version 8.6.4.

Stay up to date with Drupal core releases

If you're up to date with Drupal core releases — we are currently on 8.8.5 with 8.9 to be released on the 3rd of June — from there, the whole process is likely to be very smooth.

However, if you're using an older version you should upgrade as soon as possible to the latest because you are not only missing the opportunity for an easy upgrade but also opening to security issues and incompatibility with contrib modules.

Upgrade Status report page reminds us “Upgrades to Drupal 9 are supported from Drupal 8.8.x and Drupal 8.9.x” so let’s make sure you meet this requirement as soon as possible.

Estimate and plan work against custom modules and themes

If you've been a good developer, likely your custom modules and themes will have none or one change. If you haven’t, it’s likely you’ll need to put in a bit more work in order to be D9 ready.

In order to assess the entirety of the work before the upgrade, this is the model we have been using to group and estimate:

  • How many modules/themes are D9 ready: Good job! No work for those.

  • How many modules/themes require only info.yml changes: Estimate between 5 and 10 minutes, depending on your confidence with the change.

  • How many modules/themes with minor changes. These are all modules with one or more deprecations (other than the info.yml). Our definition of minor here means “the change can be done and tested within a working day”. I.e. swapping drupal_set_message() calls with the Messenger service. We add to this group modules with less than 10 deprecations and the errors/warnings being of max 3 types (so the changes are similar). You can adjust the level of severity according to your team's capabilities and velocity, but as you would have already understood we allocate between 1 and 8 hours for each.

  • How many modules/themes require major refactoring: These are all the remaining projects, and if they are here it’s because doing the work and testing will require more effort. Assessing this group can be more difficult than just looking at the Upgrade Status report, and you may escalate work from the previous group to this one while in the action phase. That’s fine. Estimate anything more than a day.

Estimate work against custom modules and themes and start planning the work straight away. If you have followed the steps above and you are on a supported platform and on either Drupal 8.8 or 8.9 then you can already upgrade your custom module to be Drupal 9 ready.

Don’t wait for Drupal 9 to be out, and don’t wait to do all the upgrades at the same time! Better not be surprised by a Big bang update, and well worth going through this adventure in small, well-defined and planned steps.

If your custom code depends on Drupal core only, then at the end of this step your job is done. If however, your code depends on contrib projects then you may need a second round of assessment after estimating and planning the work against contrib modules and themes.

Already enough to digest, get ready for round two

I think that’s enough tasks to digest for now, so I’ll end there and leave the custom module assessment for this follow-up blog post.

Stay tuned for the next chapter of this series.

TPXimpact team's avatar

TPXimpact team

Experts in design, data, experience and technology

Contact TPXimpact