We're digging into our first dry-run migrations from Drupal 6 to Drupal 8, and learning a lot about what's ready and what's not. And there's some surprises in there...
First of all, Drupal 8 is pretty fantastic out of the box for simple sites. And the amount of stuff that gets migrated from Drupal 6 to Drupal 8 is pretty astonishing -- the migrate devs have done a great job of getting a lot of configuration migrated cleanly in the upgrade.
Configuration management is also insanely great. A couple times we've deployed development things that blew up the site completely, to the point you could not load any page at all -- and a simple config edit let us turn those problem parts off and resume work in a matter of minutes, without even knowing how to recover from this minutes before.
And of course we already knew the editing, authoring, media management, mobile, theming, and overall user experience is a vast improvement over Drupal 7.
At DrupalCon Los Angeles last June, and even at this fall's NW Drupal Summit, it seemed that a bunch of large, critical modules were really far off, many not even begun. As I run down the list of modules needed to upgrade some of our Drupal 6 customers, I'm a bit surprised to see a lot of progress on many of these:
In the Drupal 6 to 7 upgrade cycle, the big missing module was Views -- without a stable Views, we didn't find a customer comfortable doing a new site in Drupal 7 until some 10 months after Drupal 7 first came out. Now that Views is in core, Drupal 8 is so much more usable right out of the gate. But over the Drupal 7 cycle we came to adopt Panels on a majority of our sites, and find it invaluable to replace hard-coding stuff in themes, greatly expediting development.
Because we do have to re-build themes for any new Drupal 8 site, migrated or not, tools like Panels are a mainstay.
Panels and Page Manager both have alpha releases available, and an expected milestone of mid-February for having something mostly useful here.
Commerce for Drupal 8 sounded a year off the last I checked, but there's already an alpha release. I suspect it is still a long ways from having the support modules needed to having everything necessary to actually get a Commerce site up and running -- payment gateway modules, rules, and much more. But to have the core Commerce module there and available to start building with is extremely promising.
This is a huge surprise -- I was under the impression there would be no more Ubercart after Drupal 7. But there's an alpha release for Drupal 8 already, too!
I'm sure we'll see similar necessary modules not available for a while -- but for those people still on an older Ubercart, this right away promises to make a much more straightforward upgrade path.
Organic Groups has a few companies providing part-time dedicated development help to get OG up for Drupal 8, and it looks like development is going very quickly. No releases yet, but it's looking like there will be something working much sooner than I expected.
Surprisingly not there yet
Now, for the let-downs. There's a couple really critical things that still look a ways off. If you need this functionality, you'll either need to wait, or provide budget to help get these across the finish line. (We'd be happy to develop some of these for you, if you have the budget to make it possible!)
This one is a bit shocking. Drupal core now has date-time fields right out of the box. But they're relatively simple, and missing a bunch from the former "date" contributed module. Specifically, a "to" date-time, and recurring dates.
This means if you want to create any kind of schedule of any kind of event that has any kind of duration, you're out of luck. Dates in Drupal 8 are a single point in time. No class calendars, no schedules, no repeating events, nothing.
Date has always been an extremely buggy, frustrating module to use -- but that largely reflects how tricky it is to program around dates and times and get it right. (I have a whole other blog post brewing on this topic).
The worst part of all this is that I don't see that anyone has stepped up to take ownership over this -- I don't see any sign it will get built any time soon.
Again, if you need this and have some budget to make it possible, drop us a line!
Rules is a fundamental module for any site with anything sophisticated going on. And I would think this would be a relatively easy module to port to Drupal 8, given how it's mainly a structure for stringing together conditions and actions. And yet there seems to be a lot of open issues before we even get to the point of being able to create rules.
We made extensive use of rules, and exporting them to features, to eliminate the need for a lot of one-off custom modules in Drupal 7. It's a bit disappointing to see that it still looks several months off before we'll have a working module here -- and this is going to hold up migrations of lots of complex sites, e-commerce, group sites, and more.
A lot of what rules does can be done in code, but this to some extent takes away some of the admin benefits of using Drupal for these kinds of things in the first place.
Another surprise -- we use Feeds on so many websites, I thought there would be enough demand that there would have been a Drupal 8 release months ago. A Drupal 8 version has been started, but it looks like there's a long way to go before it will be functional. I almost wonder if it's easier to build something on Migrate, now that migrate is in core?
We have yet to complete a migration, and only have a couple internal sites actually launched on Drupal 8 as of right now. But we've done some deep analysis on 3 different Drupal 6 sites so far, and we're figuring on a range of ~50 - 200 hours to do the full migration of some relatively simple Drupal 6 sites to Drupal 8, including building out a new Bootstrap-based theme and migrating all their content. And the high end of that is actually on some sites that were built using a huge number of redundant modules and poor site building practices, allowing budget to sort all of that out.
The biggest thing I'm noticing is that there are a lot of new modules specifically for Drupal 8 that replace different modules for Drupal 6 and 7. So much has changed under the hood, and it does look like there's been a lot of churn among module maintainers, so a lot of modules that aren't there yet for Drupal 8 have alternatives that are ready for use.
- Crop API, Image Widget Crop, EPSACrop for image manipulation all to be available and working, while Manualcrop and several others aren't even started
- ng_lightbox is ready, Colorbox is in development, Lightbox2 appears to be stalled out
- yamlforms is in production, Eform mostly works (replacing EntityForm) but Webform is a long ways from being there
- Media modules are getting completely reorganized. Read this post from the Media folks for more details, much of which works now but needs to get built out.
The other big thing that has changed is the whole deployment process, the behind-the-scenes details of staging updates and moving them from development to stage to production.
We've been hard at work on our automated tools and processes to manage both deployments and testing, and these are going through an incredible amount of change right now. At the same time, we're trying to keep the billable work moving -- it's pretty astonishing how rapidly everything is changing right now.
It's a very exciting time, and there's still a ton of work to be done. If we can help with your web application needs, please reach out and let us know!