Configuration management system now in place for Drupal 8

Today Dries committed the initial implementations of a central API for managing configuration in Drupal 8. This was the second major commit as part of the configuration management initiative (the first being the API for generating UUIDs.) This new system saves configuration to XML files stored on disk, that you can push to another site and load to make them active. For a high-level overview of the system, please see

http://groups.drupal.org/node/191283

The other posts in the Deployment and Change Management group will provide some historical discussions and background that led to the system.

So many times, a new subsystem gets added to Drupal and while we try and credit people in commit messages as we can, so much of what people do to help gets lost. While I am 'leading' this initiative, it has been the work of many many people who provided ideas, responded to threads, and offered code and support at code sprints and in the issues. At the risk of making this seem like an Oscars speech, I'd like to take this opportunity to acknowledge them because this isn't really my work at all. I herded a lot of cats and hacked some stuff together (probably the stuff that is most broken) but this was completely a community effort.

After being named as initiative lead, my then-employer NodeOne donated 50% of my billable hours towards the initiative as well as being extremely flexible in allowing me to travel all over the world to attend code sprints and DrupalCamps. It wouldn't have happened without their generosity.

The idea of a file-based config system was first put forth by David Strauss in a core conversation at DrupalCon Chicago, and the current system is an extension of those ideas. The initial code and architecture was done by David, Larry Garfield (crell), Karoly Negeyesi (chx), Angie Byron (webchick) and myself at a code sprint in Denver last May. This was really the main chunk of work that built the core of the system we see today.

From there it was into lengthy discussions on gdo, Skype calls, IRC discussions, and a long series of code sprints around the U.S and Europe. I couldn't possibly make a list of all the people (on top of those mentioned above) who contributed ideas, funding, code and support at all these events, but here's a start.

Melissa Anderson (eliza411)
Alex Bronstein (effulgentsia)
Nathaniel Catchpole (catch)
Yves Chedemois (yched)
Cameron Eagans (cweagans)
Jeff Eaton (eaton)
Michael Favia (michaelfavia)
Kasper Garnæs (kasperg)
Bram Goffings (aspilicious)
Claes Gyllensvärd (letharion)
Dave Hall (skwashd)
Thomas Fini Hansen (xen)
Gábor Hojtsy
Ben Jeavons (coltrane)
Camilla Krag Jensen (naxoc)
Greg Knaddison (greggles)
Daniel Kudwein (sun)
Earl Miles (merlinofchaos)
Dick Olsson (dixon_)
Francesco Placella (plach)
Justin Randall (beejeebus)
Jose Reyero
Pierre Rineau (pounard)
Amye Scavarda (amye)
Katherine Senzee (ksenzee)
Mark Sonnabaum (msonnabaum)
Fabian Sörqvist (fabsor)
Damien Tournoud (damz)
Kris Vanderwater (eclipsegc)
Shannon Vettes (svettes)
Moshe Weitzman (moshe)
Jess (xjm)
Wolfgang Ziegler (fago)

Jen Lampton and the BADCamp team put me up at a nice place in San Francisco to run the code sprint there and participate in the core developer summit. This was an extremely productive event and provded invaluable time with yched to hash out the needs of the field system. The only reason I was in the US at that time at all was that I was flown in by Lullabot for Do It With Drupal. Acquia paid my expenses to go to the WSCCI sprint in Boston last month where I had a very productive day with dries, sun, moshe, effulgentsia, webchick and beejeebus. beejeebus has taken an active interest in the system from the beginning and has challenged me on many items (always for the good), sun has been very active in the issue from the moment the first patch was posted, and webchick has provided an enormous amount of guidance and moral support.

Look at that list, I could probably go on. Thanks to EVERYONE who has been involved in this effort. This is just the beginning. The initial patch implemented two small core systems but there is a TON more implementation left to be done. The config system isn't much use unless we USE it. Issues for those systems will start showing up soon, watch issues tagged 'configuration system' to track them. There are also several critical followup issues that need help, including very deep issues like internationalization. Thus far we have been working in branches in the CMI sandbox at http://drupal.org/sandbox/heyrocker/1145636 and I would like to continue that effort. The workflow is so much easier and it means that all contributors get real commit credit to Drupal core at the end! If you would like commit access to this sandbox in order to work on issues, please let me know.

I will be running the traditional code sprint on the Friday after DrupalCon Denver, but I also plan to basically live in the coding lounge throughout the conference. If you wish to get involved feel free to grab me. I will also be running daily sessions on the system and its API throughout the conference, in an effort to get people trained in advance of the code sprint. Details on that forthcoming. Finally, if you're interested in such a thing, I will be presenting a session called Painting the Bikeshed: Lessons From a Drupal 8 Initiative Owner which talks about the experience of running a large scale community project. Learn from my screwups so you dont have to live through them yourself!

So let's keep this momentum going! See you all in the queue!

topics: 

Comments

I'm so impressed by the work done by you and all of the others mentioned in the post. You all really are a fantastic! And of cource I'll try to make it to your session in Denver.

The dev-staging-prod workflow absolutely sucks for Drupal at the moment (and many competitors I am sure) even with features, drushmake etc. Having all config exportable will be such a great thing.

Thanks for leading this initiative.

http://drupal.org/project/patterns looks like an interesting config management alternative for Drupal 6 and Drupal 7. Exports config to XML files.

Add new comment

I wrote two chapters of this book - Drupal 7 Module Development and I co-wrote it with Matt Butcher, Larry Garfield, Matt Farina, Ken Rickard, and John Wilkins. Go buy a copy!
I am the owner of the configuration management initiative for Drupal 8. You can follow this work at the dashboard on groups.drupal.org.
I work at Lullabot!. If you don't know who Lullabot is then you haven't been around in the Drupal world long have you? Come check us out!