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):
!http://farm4.static.flickr.com/3344/3663204050_409219ff7d.jpg?v=0!
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:
!http://farm3.static.flickr.com/2474/3663204070_8a2d40dbe2.jpg?v=0!
Exportables/Defaults
-
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
Code
-
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).
!http://farm4.static.flickr.com/3664/3663204152_a3c72b05a4.jpg?v=0!
!http://farm4.static.flickr.com/3627/3663204106_0bbc3f70db.jpg?v=0!
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.
What we're doing.
Latest