Sunday, February 17, 2008

Initial Thoughts about the Buildout Builder

This post is my initial thoughts on what the buildout builder can be.

The buildout builder is, at its simplest, a way for a user to create a buildout through a structured GUI that they can then use to deploy a Plone site with the options they requested in the GUI.

Open questions:

  • Plone-specific vs generic

At the least, the buildout builder should work for Plone. Ideally, it would be generic for creating buildouts in general. Where in this functionality spectrum it will fall remains to be determined, largely depending on the difficulty of implementation.

  • pre-set recipe lists vs pre-set recipes vs dynamic recipes

This set of three options provides a spectrum of possibilities for the buildout builder. At the most narrow, it would simply be a picklist of different buildout configurations, where the various configurations each provide a whole stack aimed a a particular market and the have (hopefully) been tested to work well. In the middle, the buildout builder would allow one to assemble complete configurations from a set of pre-chosen recipes which the buildout builder understands (i.e., has metadata for the various options). At the broadest, the buildout builder would alow one to compose configurations out of arbitrary recipes. This would require the buildout builder to have some way of finding recipes, knowing that a recipe is a recipe, and introspecting its options so that they can be configured. In my opinion, regardless of how flexible the buildout builder can be made, it should always allow the choice from a set of pre-tested configurations in order to make things easy for those new to Plone.

  • produce buildout.cfg vs produce installer (if plone-specific)

The buildout builder might simply produce a buildout.cfg for the chosen configuration. This is most flexible but also more difficult for people new to Plone. The other option would be to produce an installer that includes the buildout.cfg for the selected configuration. This would make the buildout builder Plone-specific, but also make it easy for people new to Plone.

  • web (on plone.org/zope.org?) vs desktop gui

The buildout builder might live on the web, as a service. Or it might live in a desktop thick application. I favor web, but I'm open to other opinions.


This is as far as I've gotten at the moment. I clearly need to confer with others, people who can contribute use cases and people who can discuss implementation details. Feel free to leave comments addressing either of these topics. If you want to volunteer to help in a more comprehensive fashion, see my previous post.

0 comments: