I always enjoy going to Stanford for the annual DrupalCamp, and this year was no exception. Here are some takeaways from a few of the sessions I enjoyed this past Saturday.


Automating Drupal Migrations was a case study from NVIDIA of completing the migration of an existing Drupal 6 site into a Drupal 7 site that was being “built” during the migration. The process itself consisted of a bash script that executed drush operations in a particular order, including enabling modules and executing specific migrations. While it’s technically possible to disable hooks during migration, they felt it was faster overall to just not enabling modules until easily migration phases were complete. For example, Organic Groups was left off until later in the process.

John Ennew’s technique for Drush multi-threading was used to add multi-threading to working migration classes. In short, make the sub-migrations work on small chunks of the index that are not dependent on each other. They used benchmarking to determine the optimal number of rows and number of threads.


The Multilingual Makeover explored the differences between the four pillars of multilingual support Drupal 7 and Drupal 8:

  • Language
  • Interface
  • Content that serves the site
  • and Configuration (not interface or content)

In short, multilingual support is now a first-class citizen in Drupal 8. Translation interfaces and configurations are unified and widely available within core itself. Instead of needing to rely on contrib, a practical site implementation that previously required 23 community multilingual modules now needs only five (and those are for edge cases, like xmlsitemap_domain, xmlsitemap_i18n). Gaps include search display, Media (just didn’t make it in time), SEO (XML SiteMap) and Analytics. For more information, check out drupal8multilingual.org or catch the session at DrupalCon New Orleans.


In another DrupalCon preview, I’m a Scrumberjack and I’m Okay provided a good overview of Agile and Scrum workflows. There was a solid discussion about how to analyze primary value creation and to recognize that multiple priorities could be compatible, and also how to map business data-driven values into higher education. The value of quality backlog was also highlighted, specifically what happens when you “cut down all the trees and you still can’t see the forest?” A proper backlog should build towards the purpose of the “forest” and describe contribution of each “tree” to that purpose.


In Debugging Drupal 8 with Drupal console we explored a number of the existing and new debugging commands available within the fantastic Drupal Console utility, which I consider an essential development tool. One of the neater tricks was piping the output of the router debug into Peco, an interactive filtering tool, to provide an interactive interface for drilling down into configurations.

We also explored the “chain” functionality, which is a YML scripting system with conditional logic. This feature is still very new and is under heavy development, which is why there’s not a lot of documentation around it. Very interesting! Slides are available with many practical examples, here.


Finally, I had a great audience for my session on avoiding over-engineering. The audience and I swapped tales of both success and woe and discussed what works—and what doesn’t. Slides are posted; you can watch a video of the SANDCamp version.


After the camp, I had a great time at the Treehouse with people from Stanford Web Services, Hook 42, Kanopi Studios, UC Davis, UCSF, Kalamuna, CivicActions, and a lot of volunteers from BADCamp, as well. Thanks to Stanford and the Bay Area Drupal community for hosting such a great event!