Yesterday, Eric talked about how feature servers can “help organizations manage and update features”:http://www.developmentseed.org/blog/2009/jun/25/pushing-public-private-updates-your-feature-server on different of sites and I pulled together a screencast of an initial proof-of-concept. While we’ve been talking about these ideas in the office for a while, the actual implementation is very new and I was surprised at how quickly it went — in all, the feature server took less than a day to build.
Here’s a look at the feature server with a prepackaged theme (more on that below):
h3. What it does
- Lets you create projects and releases and manage them by hand on a Drupal site.
- Produces an update XML feed compatible with the update module in core.
h3. What it doesn’t do
- Version control integration and automated packaging. The “project module”:http://drupal.org/project/project does an awesome job of this, and if you’re serious about tying your features into VC it’s what you’ll want to look at.
- Anything with dependency / build management systems (a problem that “Adrian Rossouw”:http://www.developmentseed.org/node/adrian-rossouw and others are spearheading in the community).
- Info file based parsing, dependency detection, and display.
h3. The ingredients
Adrian pointed out to me that this very simple version of a feature server could be a feature itself. It turns out he was right — it is largely generic site building with some additional custom components:
- Node types: Project, Release
- CCK fields to capture the metadata that the update XML feed needs
- Views: Projects, Releases, Update XML
- Context: project section
- Menu: project menu link
- Views style plugin for generating the update XML
- Views field handler for generating an md5 hash from the package file (needed for XML feed)
- A little glue code to smooth things out
h3. Adding lipstick and polish to the pig
The recipe makes for a pretty tight install profile — very few dependencies (Context, Features, CCK, Filefield, Views), add in a few helper modules (Admin, Diff), and you’re ready to go. Our goal is to have you adding your first projects/releases and branding out your feature server to fit your company, organization, or identity on a lazy Saturday afternoon.
To that end I’ve started work on a simple and minimal theme that allows for Twitter-like style customization — limited, but effective. You can choose from a set of predefined/prepackaged styles or get creative with your own background and color (more settings to be added soon).
We hope to get this in your hands in a few weeks — hopefully in time for you to start sharing the features you build for “another project we’re working on”:http://www.openatrium.com.