Drupal 8: what to expect and how to prepare
With the first beta release of Drupal 8 published at the end of 2014, there are a number of key questions and considerations for developers, site administrators, and organisation leaders to consider in advance of the first Drupal 8 release candidate being released.
What is a release candidate?
A release candidate is normally created once there are no more critical bugs reported in a beta release. At the time of writing this post, there are around 70 outstanding critical issues remaining before the first D8 release candidate, typically referred to as 8.x-rc1, being created.
What changes can I expect in Drupal 8?
Our earlier post by Rupert Jabelman is a great overview of what Drupal 8 offers and why we're looking forward to it. To recap: some of the key changes in Drupal 8 include:
- Responsive design in core: Drupal is now engineered with support for mobile and tablet devices and uses HTML5.
- Symfony components: The new plugin system and the adoption of many Symfony framework components removes many of the 'Drupalisms' (strange or unusual ways of doing things or getting things done in Drupal) found in Drupal 6 and 7 and permits an even greater number of experienced and talented developers to contribute into the Drupal project or even hire to maintain or develop your site.
- Twig templating: The new Twig templating system is far more intuitive and than the existing PHPTemplate based system and allows greater control of markup.
- Web services: Drupal's new internal architecture makes it easy to handle non-HTML requests and responses which makes it easier to use Drupal as a backend API for mobile or other web-enabled applications.
- YAML: The new YAML-based configuration system means keeping configuration in code and not in the database. This makes it far easier to safely and quickly move your site between different environments or export existing configurations to source control.
Is there anything I can do to prepare for adopting Drupal 8?
This period of time between the beta and release candidate is also a great opportunity for many organisations to consider preparing by performing one or more of the following tasks:
- Content audit: is there any old content you need to archive or unpublish? This could be a good opportunity to remove any unwanted material or streamline your site content before moving it to Drupal 8.
- User experience assessment on key parts of the site: are there any parts of your website that could be made easier to use or more focused on the end user's objectives? Finding out in advance will make it easier to focus on important changes when adopting Drupal 8.
- Digital strategy and SEO review: before you undertake any work to update to Drupal 8, have you made sure you're making the most of your organisation's digital products and that your SEO strategy is still well-aligned with them?
If you are already running a Drupal site this is the time to start assessing things such as:
- Auditing what contrib modules you use and whether there are any undocumented changes to them. The hacked contrib module is a brilliant way to check whether your live site's version of a module has been changed since it was first downloaded from drupal.org.
- Reviewing and listing any custom functionality or features that you want to have on your new Drupal 8 site.
We can help with both these things and help you to draw up a specific action plan for your site.
I have a Drupal site and want to upgrade. How much work will it be?
Drupal 8 has done away with the much maligned upgrade.php script that traditionally promised much and often delivered a lot less than was desired. Instead, moving to Drupal 8 takes a far more sensible standpoint of treating everything as a content migration from your old site into Drupal 8. The migrate module is now included in Drupal 8 core and, when connected to an older Drupal site, can provide a migration path for core components such as content types and blocks. However, if you have contrib modules or custom code (it's very likely!) you can expect to have to present these to the migrate module yourself and define your own mappings. This really isn't as bad as it sounds and migrate makes it easy to tell Drupal where data can be found on the source system, what to do with it and where to put it in the destination system.
It is worth noting that the migration path from Drupal 7 to Drupal 8 is currently being finalised based on the work done for the Drupal 6 to Drupal 8 migration path. We expect this to be completed as part of, or shortly after, the first release candidate.
The amount of work involved for adapting custom code will depend on a variety of factors including what other modules (if any) it depends on, whether it is compatible with PHP 5.4.5 (required for Drupal 8) and how well it adheres to Drupal development best practice guidelines and coding standards.
When can I start building my site with Drupal 8?
In short: it depends on your project requirements, but at this time unless you're happy to tolerate or contribute towards fixing any critical beta bugs you're probably going to be eagerly awaiting the first release candidate. The beta release in December 2014 provided a feature freeze on the backend APIs and was soon followed by the front end APIs and interfaces. As a result, we expect there will be a steady increase in Drupal 8 releases of contrib modules that are often as important to the success of a Drupal project as Drupal core itself. The specific requirements of your own project will also dictate how soon you can get started with Drupal 8. You may find you only use a small number of common modules that will enable you to get started much sooner, whereas if your project requires the use of specific contrib modules you may find you either have to wait for, or consider contributing to, a first 8.x release for the things you require.
We will be providing a more detailed look at both progress in the Drupal 8 issue queue and a look at how popular contrib modules are progressing in the very near future.
I need to use Drupal 7 now but want to move to Drupal 8. How can I provide a smoother transition?
Dave Reid's "Future proof your Drupal 7 site" presentation from Drupalcon Amsterdam is a useful introduction to how some contrib modules are being applied or adapted for Drupal 8. Some common tasks or features with recommended Drupal 7 contrib modules include:
- Entity references: Entity reference
- Responsive images: Picture
- Multilingual support: Internationalization (i18n)
- URL fields: Url (replaces the link module)
- Web services: RESTful Web Services
- Date fields: Date (ensure you use ISO format to avoid unwanted conversions when upgrading)
- Configuraton management and export: Features
- WYSIWYG editor: CKEditor
- Content layout management: consider Entity view modes for non-complex layout requirements, or Display Suite for more complex configurations or where more control needs to be given to site builders.
There is also a list of core modules on drupal.org that will be discontinued, along with recommendations for suitable alternatives.
I would like to contribute to Drupal 8. Where do I begin?
In the first instance, review the "Help to get Drupal 8 released" page. Better yet, pop along to your local Drupal user group or Drupalcamp and find a core mentor. Core mentors are volunteers to enable and encourage new core contributors and help them find suitable tasks to begin contributing to core and contrib projects. There are normally tasks for all abilities and skills ranging from triaging new issues through to development or maintenance of core components.
We're really looking forward to helping our clients adopt and develop with Drupal 8 and in each case we'll be carefully assessing their needs against what is available at the time. We've also begun contributing to Drupal 8 core itself (thanks, Justine!) - every little helps.
Get in touch
If you'd like to find out more Drupal 8 and the benefits it could bring your business, please get in touch. We'd be more than happy to answer any questions you have.