In the three weeks since we began our first client project on Drupal 7 we’ve made great headway in upgrading several key contrib projects to D7. If you are willing to live on the edge, Drupal 7 is ready for building features, creating install profiles, and deploying drush make-based distributions.
Build Kit for Drupal 7
Build Kit is an install profile for getting started quickly with Features and other distro building tools. It’s based around the distro approach we take with every build we do, whether it’s for a product like Open Atrium or for a specific project like Pakistan Flood Response. There are three basic principles to the approach:
-
Every project is described by a makefile. Jeff explains how makefiles keep you sane.
-
Every project is an install profile. Whether for a product or a client site, starting from a blank slate should always be an option. Adrian explains why passing around a database is so 1999.
-
Build with exportables and manage them with Features. Nuvole’s Andrea Pescetti explains how to integrate Features into your workflow.
Build Kit can get you up and running on this development workflow in Drupal 7 today. All you need is [drush_make
](http://drupal.org/project/drush_make), cvs
, and this line in your terminal:
$ drush make "http://drupalcode.org/viewvc/drupal/contributions/profiles/buildkit/distro.make?view=co&pathrev=DRUPAL-7--2-0-BETA1" buildkit
Keeping up with contrib
The first half of Build Kit is its install profile makefile where we keep track of the latest upgrade work in contrib. Some key projects worth noting:
-
CTools sprint-master. We’re using work from the Panels/CTools upgrade sprint in SF that we had a chance to participate in earlier this month. Earl Miles and Sam Boyer coordinated contributions from nearly a dozen developers without a hitch.
-
Features 1.0-alpha3. Features is upgraded with all components working and adjusted for D7 (e.g. the imagecache component now integrates with D7 core image styles). A great patch from das-peter and luke_b from Cando Image lets you export fields for any entity type like nodes, taxonomy terms, and users. Special thanks to the Commerce Guys for their sponsorship to push Features on Drupal 7.
-
Views 3.x. The latest work in D7 is largely stable but with a few isolated rough spots. Build Kit is tracking patches for field formatters, field filters, and taxonomy integration.
-
Tao and Rubik. Our go to base theme and admin theme both have working upgrades and have moved to Drupal.org. Rubik has gotten simpler visually to better integrate with the overlay module (if that’s how you roll) and has a few new icons to match the D7 administrative menu structure.
Other projects upgraded to D7 included in Build Kit are Admin, Context, Diff, Devel, and Strongarm.
D7 core patches
Build Kit has a second makefile — what we call a distro makefile — to keep track of D7 core patches that are critical to building with an exportables-based approach. There are a handful of issues that will keep exportables from taking off in D7 and we’re keeping track of solutions to those problems:
-
Exportability of vocabularies is ruined by taxonomy field’s ‘allowed values’ setting — Taxonomy vocabularies took a big step towards exportability in Drupal 7 by adding machine names. But any term reference field still refers to its vocabulary by a serial
vid
making it useless for export. The patch on this issue solves the problem by switching fields to use vocabulary machine names. -
Text formats need a machine name — Like with vocabularies, the serial ID used as the primary identifier and reference for a text format has been a thorn in the side of D6 distros. The patch here by dagmar and sun adds much needed machine names to text formats and is already supported in Features D7.
-
Make system directories configurable to allow tests in profiles/{name}/modules to be run — A change in D7 that made it possible to use alternative install profiles for running tests also made it impossible to run the tests of, say, Views from a custom profile located at
profiles/myprofile/modules/views
. Adrian takes a far-sighted approach in his patch, abstracting out the hardcoded list of search paths used by Drupal into a flexible API.
We’ll be keeping these patches up to date as we work and removing them entirely from Build Kit once these issues are resolved upstream in Drupal core.
What we're doing.
Latest