Welcome to the 8th and FINAL installment of an 8-part blog series we're calling "The Ultimate Guide to Drupal 8." Whether you're a site builder, module or theme developer, or simply an end-user of a Drupal website, Drupal 8 has tons in store for you! This blog series will attempt to enumerate the major changes in Drupal 8.
Please note that since Drupal 8 is still under active development, some of the details below may change prior to its release. Still, since Drupal 8 is now feature-frozen, hopefully most info should remain relevant. Where applicable, Drupal 7 contrib equivalents of Drupal 8 features will be noted.
Why should I care about Drupal 8?
Drupal started first and foremost as a tool for developers, and in the days of olde, provided a set of APIs to allow building out website elements in code, such as content entry forms, admin pages, and sidebar blocks. In later releases of Drupal, and particularly in Drupal 7, more emphasis was placed on making Drupal approachable for less technical users, providing user interfaces for foundational tasks (installation, data modeling, information architecture, landing pages, etc.). Most Drupal sites today download and configure a number of contributed projects for features such as a WYSIWYG editor, Views, and so on. And with that combination of core + contrib, these days, Drupal runs some of the biggest and most important sites on the web.
Drupal 8 builds on the success of Drupal 7 by incorporating much more "expected" functionality out of the box, such as authoring experience improvements, complete multilingual functionality, and numerous site builder features. Drupal 8 is also more in-line with the web landscape of today, with its mobile-first approach and revamped front-end. And, true to its developer roots, it offers numerous back-end features and modernized, object-oriented code base. All around, a more powerful release with capabilities for content authors, site builders, developers, and designers alike, built in a future-proof way so that it can act as a solid foundation for projects no matter what technologies, devices, services, etc. come out next.
That said, Drupal 7 is a stable, robust, and mature platform which will be supported for several more years to come. And much of the functionality within Drupal 8 is available in some form in Drupal 7 (a later answer digs into more details). Drupal 8 will be great, but so is Drupal 7 if you just can't wait. And either way, it's still a great idea to start learning about Drupal 8 now, so you can be prepared when it suits your project needs in the future.
Wow, Drupal 8 sounds great! What's standing in the way of it being released?
Once the number of critical issues (bugs and tasks) hits zero, a Drupal 8 "release candidate" will be created. Once a release candidate has been out in the wild with no new critical issues reported, Drupal 8.0.0 will be tagged and released, to much enthusiastic applause!
You can see how close or far away from shipping Drupal 8 at any given time by logging into your Drupal.org dashboard. The "Contributor Links" block contains a count of various types of issues.
What happens after Drupal 8 is released?
Parties. :) Lots and lots of parties. ;)
But then, starting with Drupal 8.0.0, the Drupal project is moving to a new release cycle which in addition to standard monthly bug fix and security releases (8.0.1, 8.0.2...) introduces semi-annual "minor" releases of core (8.1.0, 8.2.0, etc.). These releases can include new features, backwards-compatible API improvements, and more. After several minor versions, a "Long-Term Support" (LTS) release of Drupal 8 will be created and Drupal 9 development will begin.
This means Drupalistas will no longer have to wait N years for new core functionality; we can now iterate on features and APIs every few months until the platform reaches maturity. It also means that those who are more risk-averse and want stability over shiny things can stick to LTS releases and only move every several years (even leap-frogging major versions). Hooray!
When should I actually start using Drupal 8?
The answer to that depends a bit on who you are:
- If you're a module developer, you should start caring about Drupal 8 right now. It's still possible to provide useful feedback on APIs and ensure Drupal 8 ships with everything you need to get your projects ported. But bear in mind that some of Drupal 8's APIs will still be changed before release if needed to fix critical issues, so you may still need to make code adjustments post-RC.
- If you're a documentation author, translator, or designer, note that Drupal 8's user interface, interface text, and markup are not finalized until the first release candidate, so you'd want to wait until RC1 to focus heavily on user-facing documentation, translations, or themes (though by all means, adventurous contributors should start now to provide feedback while we can still fix things).
- If you're an "early adopter" Drupal user with developers on staff who don't mind porting modules and fixing core bugs along the way, and have a launch date in late 2015 or 2016, you may want to start building out your D8 sites once Drupal 8 hits a late beta or a release candidate. This would be a particularly good idea if you need some of the features Drupal 8 offers.
- Most sites will want to use Drupal 8 a few months after Drupal 8's release, when various contributed modules are ported. Keep your eyes on the Drupal project usage graph. When the D7 and D8 lines cross, it may be a good time for you to make the jump, as it means there are more D8 users than D7, so most of the hard work has been done for you already.
Well, dang. So what should I do in the meantime?
Use Drupal 7. :) Drupal 7 is a stable, mature, robust, powerful, well-supported framework which will be maintained with bug fixes until after the LTS release of Drupal 8, and supported with security fixes until Drupal 9's LTS release (several years from now). And a number of the great features in Drupal 8 are available in Drupal 7 as well, with contributed modules.
|Drupal 8 Core Feature||Drupal 7 Contrib Equivalent|
|In-Place Editing||Quick Edit: https://drupal.org/project/quickedit|
|Responsive Toolbar||Mobile Friendly Navigation Toolbar: https://drupal.org/project/navbar|
|Responsive Front-End Theme||Omega, Zen, Adaptive, Aurora, etc. base themes|
|Responsive Admin Theme||Ember: https://drupal.org/project/ember|
|Responsive Images||Picture: https://drupal.org/project/picture|
|Responsive Tables||Responsive Tables: https://drupal.org/project/responsive_tables|
|Simplified Overlay||Escape Admin: https://drupal.org/project/escape_admin|
Entity Translation: https://drupal.org/project/entity_translation
(and several additional modules)
|Better Blocks||Bean: https://drupal.org/project/bean|
|Configuration Management||Features: https://drupal.org/project/features
(provides exportable files that can be used in deployments)
|Web Services||RESTful Web Services: https://drupal.org/project/restws|
And... what about the upgrade path..?
Oh you had to ask, didn't you? ;)
- For your site's content (users, articles, etc.) and many configuration settings (variables, block settings, etc.) Drupal 8 will provide a migration path from both Drupal 6 (already in core) and Drupal 7 (currently under construction) to Drupal 8 that will cover core modules. (Contributed and custom modules will need to write their own migration paths to cover their data.) Basically, you'll keep your Drupal 6/7 site running while you build out your Drupal 8 site and then run a script similar to the current
update.phpto move its contents over. When things look good, swap out the web roots. Almost no downtime!
- For your site's contributed modules, download and install the 7.x version of Upgrade Status module, which will show a handy overview of your module's site and their current D8 porting status.
- For your site's custom modules, you need to port those yourself. The Drupal Module Upgrader project can help automate some of this, and generate a report of other things to change. (Note that this project is currently under very active development, and will cover even more APIs than it currently does by the time Drupal 8 ships; however it is not omniscient (yet) so you will still need to fix some things by hand.)
- For your site's custom theme, which must be converted to Twig, check out the Twigifier project, which attempts to automate much of this work.
So, in short, your upgrade path depends a lot on the specifics of your site and how it's put together. In general, you'll have a much easier time moving to Drupal 8 if you stick to well-vetted contributed modules versus custom code. Plan out your current site builds accordingly.
For other tips on making your Drupal 6/7 site Drupal 8 ready, check out https://www.acquia.com/blog/getting-your-site-ready-drupal-8.
How can I help?
Want Drupal 8 to come out faster? It can, with your help!
- The most direct way is to help fix critical issues. Keep your eyes posted on Drupal Core Updates, which always has the latest spots that need particular attention.
- If you're new to Drupal core development, or want a pointer to some useful things to work on by a real person, check out core mentoring hours, twice-weekly on IRC.
- Want to help with the Drupal 8 migration path? Check out the IMP (Migrate in core) team.
- Want to help with the Drupal 8 documentation? Check out the Current documentation priorities.
- Want to learn Drupal 8 APIs and help other developers in the process? Help port Examples for Developers to Drupal 8.
- Want to save both yourself and others lots of time porting their modules? Help write Drupal Module Upgrader routines.
Let's give a virtual round of applause to more than 2,300 contributors to Drupal 8 so far!
Now, join them! :)