KIT: Best Practices for Making Drupal Features

So you're building a Drupal Feature! Woohoo! Okay, so…. What to include? What to leave out? How to structure the thing so it doesn't conflict with other Features? How to avoid known issues? Where to start?

When, in theory at least, you can make an entire site into one big Feature, these questions become extremely important.

If you're using Features simply to help facilitate your own site-building workflows, this may be something you can pretty much ignore. When dealing with Features you've made for yourself, you may remember your thinking, you may follow your own logic, you may be using Features as a blobby deployment system for all kinds of stuff glommed together. Whatever works. It's all good.

But that approach won't fly with publicly shared Features. In fact, it won't work too well for teams either, probably. Without best practices, clearly laid out and understood by all, Features can trend towards amorphous nightmares. Features might conflict with each other, undoing each other. Improperly utilized, Features can easily become a nightmare that slows you down, undoes your hard work, and leaves you ready to scream and throw your computer out the window.

Enter KIT

The KIT Specification clearly lays out requirements for building clean, discrete Features.

This document provides recommendations and requirements for Drupal features to ensure the interoperability of features between different distributions and prevent conflicts between features themselves and between a compliant feature and a distribution….

KIT Feature Specification 1.0-draft

The specification goes through terminology, namespaces, inclusion of user roles and permissions (and what not to include), working with variables, paths and menu items, blocks and dependencies.

Not all Features have to be KIT compliant, of course. But having a good, clear specification for self-contained Features that mostly likely will not break other things in your site is a great thing.

If this topic interests you, be sure to visit the KIT issue queue, where there are several discussions on clarifying, adjusting and improving the KIT spec. Good stuff is happening.

Permalink

Comments

sirkitree (not verified) (7 June 2010 - 8:28pm)

Oooo! candy! Thank you for the pointer!

Budda (not verified) (8 June 2010 - 7:38pm)

The KIT document mentions that input formats are an exportable pain. This has since been fixed with the input formats API module. Check it out http://drupal.org/project/input_formats

Laura Scott (8 June 2010 - 7:54pm)

Thanks! I'm actually writing a post about namespaces and some of the challenges. I'll be sure to include this (with a h/t).

Chris Charlton (not verified) (13 July 2010 - 11:39am)

Off the top I am not sure where KIT and the Examples project overlap or not, but its good to see work like this being done and given back to the community. Thanks!

Post new comment

The content of this field is kept private and will not be shown publicly.