Getting your site ready for Drupal 8

Note: Last update April 28, 2014

The drumbeat has started. On an almost daily basis, I'm asked How do I get my site ready for Drupal 8? Here is my best answer. If you go dutifully through this list, your site will be in peak condition when Drupal 8 is released.

Start giving your administrators a taste of D8 now

Significant parts of Drupal 8 are already available for Drupal 7. These modules are not quite as strong as their D8 counterparts, but they are a great investment you can make today.

  1. Get your admins excited about their future by installing Navbar module. This is a mobile-friendly administration toolbar. It replaces the toolbar module that comes with Drupal 7.
  2. The Ember theme works nicely with Navbar, and will be available immediately when D8 is released.
  3. Install ckeditor, the WYSIWYG editor for Drupal 8. Start learning the authoring system that has been greatly improved in Drupal 8. All your customizations should migrate smoothly when you upgrade.
  4. The Edit project brings in-place editing to Drupal 7. In-place editing radically simplifies and accelerates simple edits to existing content.
  5. URL field and Telephone are Field modules which let you collect URLs and Telephone numbers in your content forms. The modules also format those items in an HTML5 compliant manner when viewing content.
  6. The RESTful Web Services project (restws) for Drupal 7 is a worthy ancestor of Drupal 8's REST API. If you build on restws, your applications will need minimal updating for Drupal 8.
  7. Administration Views lets your admins experience D8's flexibility now, with custom dashboards for managing content, comments, etc.

Start giving your developers a taste of D8 now

Upgrading to Drupal 8 is non-trivial. The more your developers know about Drupal 8, the smoother it will go. Encourage them to:

  1. Subscribe to Drupal Planet. This RSS feed has lots of blog and long form articles from all around the Drupal community.
  2. Subscribe to Drupal Watchdog. This print magazine always features terrific, deep articles about Drupal 8.
  3. Start studying the Migrate module which has been moved to core in Drupal 8. This will be your lifeline to bring content along from your existing D6 or D7 site.
  4. Drupal 8 has embraced PHPUnit for a large portion of its tests. We are also considering using Behat for system tests. Consider using these when testing your own sites.
  5. Drupal 8 ships with many PHP libraries and Javascript libraries. Building upon those insures that you don't have to make significant changes later.
  6. Setup a Drupal 8 environment just for learning and experimenting. Step through a simple request (e.g., in a debugger to visualize all that's changed in page construction.
  7. Once RC1 is available, consider launching a small event site, or a marketing campaign site on Drupal 8. This experience smoothes the path for migration of your primary sites.
  8. Attend DrupalCon or a DrupalCamp. Drupal 8 is a major topic at nearly every camp.

Prune your structures

A tidy Drupal site is far easier to upgrade than one that has cruft lying around. Get rid of unused or duplicate structures such as

  • Views
  • Content types and fields
  • Panels
  • Feeds
  • Vocabularies and terms
  • Blocks
  • Rules
  • Organic groups
  • Themes
  • Features

Several of these items also allow for overrides such that the most recent code is in the database instead of your version control system. Now is a great time to move those overrides back to code.

Inventory and remediate contributed modules

Review the list of enabled modules on your site. Each module has to be dispositioned for Drupal 8:

  1. If the module is no longer needed, disable and uninstall it. Done. Otherwise....
  2. Is the module available for Drupal 8? The Upgrade Status module answers quickly this question for all your modules. If available, you are done.
  3. Otherwise, consider porting the module to Drupal 8. This helps you and the entire Drupal community.
  4. If the module has been superseded by a better module, consider using new shiny one in Drupal 8. Migrate module makes it relatively easy to move data to a new module.
  5. Another alternative is to look for a third-party service to replace an unavailable module. For example, one could move mapping to Mapbox, spam blocking to Mollom, and search to Acquia Search.

Remove code hacks

Most Drupal sites eventually hack core or contrib files. That can be a reasonable remedy for a pressing bug or missing feature. However, hacks can lie around in a codebase long after they are needed. For example, you are now an older and wiser Drupal dev and you know how to accomplish your change without a hack. Go ahead and do that, so that you can cleanly upgrade your module and not lose your "improvements." Contribute back useful hacks to so you can run a clean module again.

Review your theme

Themes can be a convenient place to do all sorts of unholy things. Move code that belongs in page building to an alter hook or similar. Simplifying your theme in this way will make the upgrade to D8 Twig easier.

Carve out some budget

The upgrade to Drupal 8 requires hours of development, QA, infrastructure, etc. Allocating budget ahead of time lets you move quickly later.