Since Drupal 8 was released last November, the community has been experimenting, and optimising the upgrade process for Drupal 6 and Drupal 7 sites.
Thanks to the hard work of a large number of (often volunteer) module maintainers, the number of upgraded modules is increasing day by day. Module availability is a key factor in the site upgrade process, so this is really good news.
In this post we'll review some of the tools that have been developed to ease this process.
As every site's upgrade process is unique, there is no such thing as a universal rule. There are many differences, such as time constraints, the upgrade budget, the features of the site, whether you want to do a large overhaul or you just want to preserve the functionality of your site, etc.
Fortunately, there are some tools available that can help you plan when and how to upgrade. We will show you three of them.
When is your site ready to upgrade to Drupal 8?
An easy answer to that question would be: When all contributed modules used by the site have a Drupal 8 version. But it is not that simple.
For example, when can you consider a module to be "ready?"
Each module is a case on its own, with different functionalities, so there isn’t a perfect, general answer to that question. As a rule of thumb we could take the first recommended 8.x release of a module, regardless if it’s a release candidate (RC), alpha or beta, to be the point when we regard it to be "stable enough" to start to consider using it.
A module doesn't need to be stable to include it in a site upgrade: there may be cases when a module's functionality works well, but the module as a whole is just a release candidate. In a case like this, you have to go deeper and investigate the state of the module according to your specific use case.
Since Drupal 8 is now compatible with Symphony, it can be extended with Symphony components, an in-between option between full-on custom code and community-contributed Drupal modules. There are, for example, developer teams that have shipped Drupal 8 sites with search functionality implemented with the ElasticSearch extension for Symphony, instead of Drupal’s Search API module that was not yet production ready. This means, however, that your site might have a higher maintenance cost, and that it will be harder to extend your site in the future, since you will be depending on custom code.
If you want to work predominantly with contributed modules, you will need to wait until the required modules have been upgraded to at least a "recommended release" status, or you'll have to get involved in the porting process, which could impact the time/scope/budget for your project (but also has many advantages). There is also a risk that the feature space of a module will have changed between major versions and that you won’t be able to do a straight port. So even if you work with a low custom code requirement, it is possible you will have to reconfigure modules to get to a satisfactory outcome.
If you are running a Drupal 6 site, it is also important to take into account that a lot has changed in Drupal 7 and Drupal 8. A responsive theme is no longer a "nice to have;" it is very likely that a theme update can help your site stay relevant.
Keep in mind that Drupal’s security team only supports the two most recent major versions. As Drupal 6 is no longer maintained, people with D6 sites definitely have to upgrade, or look for an alternate long term support solution: security threats discovered in Drupal 6 will no longer be systematically addressed.
Now let’s take a look at the tools we use.
The Drupal 8 Contrib Porting Tracker is a "centralized place for tracking the porting status of contributed projects." Basically, it's a Kanban board where you can check the upgrade status of a given Drupal module and/or you can provide additional information about projects for the community.
Conceived at Drupalcon Barcelona as a tool to encourage module maintainers to start upgrading to Drupal 8, this module can save you a lot of time when researching the upgrade plans of contrib modules. Before Contrib Tracker, you had to keep track of the individual projects and collect this info manually, search the issue queues, and repeat the process every few weeks. And you couldn’t be sure the information you found was valid. (For more information about the Tracker, read Angela Byron’s (aka "webchick") announcement of the module.
Using the Contrib Tracker, you don't have to check the individual Drupal.org pages of your site's modules in order to figure out their porting status. The Contrib Tracker meta project shows the upgrade status of your projects, so you can easily search amongst the modules in one place.
If you don't find a given project, you can simply add a new issue, with the module's name, to the board.
Contrib Tracker can easily keep you updated about the upgrade status of the projects, so it helps you to figure out when you can upgrade your site to Drupal 8.
Upgrade Status is a Drupal module that you can add to your site to collect information about the modules’ update status.
When you install Upgrade Status, it checks the list of your installed modules and shows their availability for the new version of Drupal. You can get notifications about the upgrade process with a click on the project name, or you can download its latest version from Drupal.org.
Upgrade Status is a module that needs to be installed on a site to be able to generate reports. If you have several sites, it needs to be installed on each of them to get a status report. Site owners will need the help from a developer.
On the other hand, Upgrade Status does provide a very detailed module report, and because it operates from inside a site, can even help in the upgrade process of custom modules. It also lets you download and install the respective modules.
D8upgrade is a free Web service that makes it as easy as possible to generate an upgrade report of your site. Simply type your website's URL and an email address, and the service will send you the results. No special access or login required.
D8upgrade gives you an overview of the status of your site's contributed modules, and then sends you a link to your report via email. The module database of D8upgrade is frequently updated, so you can check your automatically-updated reports whenever you want to get the most relevant information.
The D8upgrade module database uses the data of the Contrib tracker, so you can check the detailed module status on the site, too, under the "Modules" menu tab, or with a single click on the module's name in your site report.
D8upgrade also has a way to embed the site submission form on third party websites. If you are a consultant or Drupal service provider, you can add the scanner to your site and your customers can check their site's upgrade status from your website.
Interested? Go to the site for more info.
Understanding how much work an upgrade process might entail is not simple. The tools we showed you in this post allow you to check your sites' upgrade status and help you understand it. Don’t forget there are other factors in an upgrade to consider, such as upgrading your custom modules, data migration etc. There are tools for that as well. We hope these tips and tools will help get you started.
The results you get will allow you to make a detailed plan about how and when to switch to Drupal 8.
Every day, more and more contrib modules become available in Drupal 8, so check out these tools and start your migration to Drupal 8 today.
Tell us about your experience with these tools below in the comments.