Considering A Drupal Upgrade? Streamline Your Preparation With A Full Website Analysis
Authored by Nadiia Nykolaichuk.
You've likely heard about the importance of upgrading your Drupal website countless times, but even that doesn't fully capture the extensive benefits it offers. As a rule of thumb, using the latest Drupal version, which is actively supported by a vibrant community of experts, supercharges your site with the most advanced functionalities, seamless performance, and reliable protection from digital threats.
When considering or preparing for an upgrade, it’s great to know where your website stands in terms of its readiness for the next major Drupal version — in other words, its upgrade status. Fortunately, there is a great corresponding Drupal module! The Upgrade Status module performs a comprehensive analysis of whether all of your site’s components are ready for the upgrade and gives you helpful instructions to ensure their readiness.
The Upgrade Status module is beneficial for any Drupal version you're using, though its usefulness may vary. You might be a Drupal 10 user already anticipating innovations on the way from Drupal 10 to Drupal 11. Or you might still be on Drupal 7, thinking about the looming Drupal 7 end of life and planning your upgrade. In this article, we’ll cover how exactly Upgrade Status can help with various Drupal versions, what makes it an essential tool, how it works, and more.
The Upgrade Status module: gaining momentum
Considering the crucial role of website upgrades, it is not surprising that the Upgrade Status module has been making an increasingly significant impact in the Drupal world since its first release in 2018.
The module receives plenty of positive feedback from the community leaders. A recent example is Michael Anello (ultimike), co-founder of the “Drupal Easy” podcast, calling it one of the most important — possibly the most important — Drupal contributed modules. He tweeted this feedback, adding an image of how impressive the new version of Upgrade Status looks in the dark mode of the Gin admin theme.
![A tweet by Ultimike about the Upgrade Status module.](/sites/default/files/inline-images/image1_6.png)
Gábor Hojtsy's article highlights the updated module's sleek design in the Gin and Claro themes and its new features, such as improved continuous integration compatibility. He is the principle maintainer of Upgrade Status and Drupal core initiative coordinator.
Gábor also mentioned Upgrade Status at his DrupalCon Portland 2024 session dedicated to Drupal 11. He recommended the module as a great upgrade preparation tool. Gábor summed up that the module gives you a checklist of what you need to do to provide the readiness of your environment and each module and theme on your site.
Can Upgrade Status help you with your Drupal version?
1) Upgrades from Drupal 7
A version for Drupal 7. The Upgrade Status has got Drupal 7 users covered by still having a well-supported Drupal 7 version. It checks the list of modules and themes on your website and shows their availability for Drupal 8, 9, 10, or 11 with upgrade notes and links to the new versions.
The need for more effort. Using the Upgrade Status module on a Drupal 7 site provides valuable insights and helps you plan the upgrade, but it doesn’t eliminate the need for significant additional work. Upgrading from Drupal 7 is a complex process that involves data migration and custom code rewrites. The module helps streamline and identify issues, but a comprehensive plan and the dedicated effort of a reliable Drupal team are still required to complete the upgrade successfully.
2) Upgrades from Drupal 8, 9, and 10
A new approach to upgrades. It’s not accidental that Drupal 8, 9, and 10 are grouped together as opposed to the “lonely” Drupal 7. They all follow the new approach that was introduced back in Drupal 8 to make upgrades between major versions (Drupal 8 to 9, Drupal 9 to 10, and further on) much smoother and less disruptive. It became possible due to the introduction of backward compatibility, semantic versioning, scheduled releases every six months, etc.
Deprecated code. One of the key improvements is that certain APIs, functions, and other code components with more modern alternatives are marked “deprecated” instead of being outright removed. This allows developers to gradually update their codebases. Discovering and fixing deprecated code is a huge part of the upgrade preparation for Drupal 8, 9, and 10 sites, which gives them the green light for a smooth migration.
The role of Upgrade Status. Considering the above, the Upgrade Status module is an invaluable assistant in upgrades. It scans a Drupal site’s codebase and identifies deprecated code along with compatibility issues and other potential obstacles. So you can use it to prepare for an upgrade from Drupal 8 to 9 or from Drupal 9 to 10. It’s impossible to jump directly from Drupal 8 to 10 but you can move further on a gradual basis.
Drupal 11 is coming. The module’s 4.x branch works with Drupal 10 websites and you can rely on Upgrade Status to prepare for the upgrade to Drupal 11 which is scheduled for release this summer.
Power inside: based on PHPStan and more
As Gábor Hojtsy noted in the same DrupalCon session, "Upgrade Status builds on top of the fantastic work by Matt Glaman—PHPStan Drupal, and a bunch of other tools." Indeed, the Upgrade Status module integrates a user-friendly interface with a robust PHP foundation.
PHPStan is a general-purpose static analysis tool for PHP, and PHPStan Drupal is its implementation tailored specifically for Drupal. The maintainer of the latter is Matt Glaman (mglaman) — another prominent Drupal contributor.
Upgrade Status leverages the command-line tool "Drupal-check," which is built on PHPStan and PHPStan Drupal by Matt Glaman. Initially, the Upgrade Status module functioned similarly to Drupal-check but offered a user interface and additional information, as highlighted by Matt Glaman.
The Upgrade Status module has evolved into a comprehensive tool that addresses Drupal’s unique challenges. It not only performs static analysis but also incorporates stateful analysis, which is needed for some components that rely on the current state of the application, such as installed modules, Twig templates, and more. Evaluating both the static code and the dynamic state of a fully installed Drupal website offers a comprehensive view of upgrade readiness.
Today, the Upgrade Status module provides a much wider range of features than Drupal-check such as the current Drupal core version check, composer.json check, deprecated library detection, and much more. The module maintainers have created a table on the module’s page comparing the capabilities of Upgrade Status and Drupal-check.
![Features of the Upgrade Status module vs. the Drupal-check tool.](/sites/default/files/inline-images/image13_1.png)
How Upgrade Status works: step-by-step overview
When the Upgrade Status module is installed and enabled, it provides a new page in the Reports section of your website — the Upgrade Status page. It immediately shows you a comprehensive review of your website’s readiness for the next major Drupal version. For example, if you are on Drupal 10, it will give you a “Drupal 11 upgrade status.” If you are using Drupal 8, your website will be analyzed for Drupal 9 readiness.
- The main readiness summary
At the top of the page, you’ll see the main summary with links leading to the specific sections for more details. It shows how many components need your attention and displays a chart of the percentage of projects (modules and themes) compatible with the next Drupal version.
![An example of a summary of a website’s readiness for Drupal 9 by the Upgrade Status module.](/sites/default/files/inline-images/summary-website-readiness-for-drupal-9-upgrade-status-module%20%281%29.png)
![An example of a summary of a website’s readiness for Drupal 11 by the Upgrade Status module.](/sites/default/files/inline-images/summary-website-readiness-for-drupal-11-upgrade-status-module%20%282%29.png)
- Environment readiness
The module shows you whether your environment is compatible with the next Drupal version and, if not, what can be done to fix it. This includes checking whether the following components and tools have the minimum required versions for the upgrade, or need to be updated first:
- your minor Drupal version (like Drupal 10.3)
- your PHP version
- your database version
- your Drush command-line tool version
In addition, it checks:
- whether your database has JSON support
- whether you have any deprecated or obsolete Drupal core extensions installed that are set to be removed in the next major version
![An environment readiness check by the Upgrade Status module.](/sites/default/files/inline-images/environment-readiness-check-upgrade-status-module%20%281%29.png)
- Which modules need removal
Next, the Upgrade Status module shows which projects you can safely remove because you are not using them.
![The “Remove” section in the Upgrade Status module’s report.](/sites/default/files/inline-images/which-modules-to-remove-upgrade-status-module-report%20%281%29.png)
- Which modules can be updated right away
You’ll also see which contributed modules and themes have an update available to be applied right away. It must be noted that in this and other sections, there are separate columns for:
- Local readiness: these columns show the local version of a certain module (the one installed on your website) and whether it’s ready for the upgrade.
- Drupal.org readiness: these columns show if there is a newer drupal.org version of this module, provide a link to it, and specify whether it’s ready for the upgrade.
![The “Update” section in the Upgrade Status module’s report.](/sites/default/files/inline-images/which-modules-to-update-upgrade-status-module-report.png)
- Which modules need a scan
The “Scan” section is for custom modules and themes on your website that need a scan of the source code for their status to be determined. We’ll discuss the scanning process in more detail soon.
![The “Scan” section in the Upgrade Status module’s report.](/sites/default/files/inline-images/which-modules-to-scan-upgrade-status-module-report%20%281%29.png)
- On which modules you can collaborate with maintainers
The next section shows the modules and themes that do not have an available update at the moment. However, you can reach out to their maintainers and, if you’d like to get involved, you can help them resolve the issues. The direct links to the issues on drupal.org are provided.
![The “Collaborate with maintainers” section in the Upgrade Status module’s report.](/sites/default/files/inline-images/which-modules-need-cooperation-with-maintainers-upgrade-status-module-report.png)
- Which modules are compatible with the next major Drupal version
The most positive section of the report shows the contributed modules and themes that are completely ready for the next version, with no need to do anything. In this section, the module writes a “Well done. Congrats!” note regarding your module compatibility.
![The “Compatible with the next major Drupal version” section in the Upgrade Status module’s report.](/sites/default/files/inline-images/which-modules-are-compatible-with-next-drupal-version-upgrade-status-module-report.png)
- Scanning
If you’d like to give a detailed scan to a module or multiple modules in any section, you can select the checkbox near them and scroll down to the bottom of the page to click the “Scan selected” button.
![Selecting projects to be scanned.](/sites/default/files/inline-images/image6_3.png)
And you’ll see the scanning process in progress. Its speed depends on the number and complexity of the selected modules.
![The scanning process for the selected projects.](/sites/default/files/inline-images/scanning-selected-projects-upgrade-status-module.png)
When it’s done, the “Local scan result” column for the scanned modules will either say “No problems found” or show the number of the issues with the link to see more details.
![The discovered issues listed for the local scan result.](/sites/default/files/inline-images/discovered-issues-listed-local-scan-result.png)
If you click the link, you’ll see a modal window with detailed technical descriptions of the issues.
![A detailed overview of the discovered issues.](/sites/default/files/inline-images/detailed-overview-discovered-issues.png)
- Exporting the results
Other useful buttons at the bottom of the page are for exporting the results about the selected modules as HTML or as text. You can select all by clicking the top checkbox.
- Using Drush
The module supports the Drush command-line tool, allowing users to run upgrade analysis via commands, for example, upgrade_status:analyze (us-a). This enables the integration of Upgrade Status into automated workflows and continuous integration systems.
A glimpse at some other Drupal upgrade tools
In addition to the Upgrade Status module, there’s an array of helpful tools for your upgrade preparation:
- Drupal Check is a CLI tool that lies at the heart of the Upgrade Status module, as mentioned earlier. It gives you a full report of deprecated components in your Drupal codebase.
- Drupal Project Deprecation Status page by Acquia checks contributed projects for deprecated API usage and major version compatibility, visualizing the results as charts.
![The Drupal Project Deprecation Status page by Acquia.](/sites/default/files/inline-images/drupal-project-deprecation-status-page-by-acquia.png)
- Drupal.org project pages can also be a useful source of information about a specific module’s compatibility with the next Drupal version.
- Drupal Rector is the next step after the deprecation discovery. It can do fixes automatically for you. Luckily, Rector automation covers the majority of deprecated APIs.
- Upgrade Rector is a contributed module that builds upon Drupal Rector. It is helpful for those who are more comfortable with UI-based tools.
- Retrofit for Drupal is a newly-introduced tool that provides a backward compatibility layer, enabling users to run legacy Drupal 7 code in Drupal 10 and thus facilitating upgrades.
- The Drupal.org Project Update Bot helps maintainers make their projects compatible with the next Drupal version by automatically opening issues on drupal.org and providing fixes.
Final thoughts
Having access to powerful upgrade preparation tools like the Upgrade Status module is invaluable. Our team will have you covered on every step of your pre-upgrade and upgrade process. No matter what upgrade status your website has today, we’ll ensure each component will result in a “Well done, congrats!” message very soon. And, of course, we’ll help you seamlessly finalize your transition to the next version of Drupal, enhancing your overall digital experience.