buildout + instancemanager
Can instancemanager help to simplify some of the zope2 buildout complexity?
I noticed the other day in reinout's first blog entry about managing instances, he noted the potential for a mix of buildout and instancemanager, which I feel is worthy of consideration. I think the pure buildout crowd story boils down to:
"Eventually we should stop using Products, in which case buildout and setuptools with various egg retrieval methods should be fine, and like, we're pretty sure we will figure the rest out."
From what I've seen, buildout is pretty handy, and would be moreso for building an entire setup with ZEO. In practice the ploneout example is useful moreso for Plone3 experimentation than for 2.5 deployment as of now, and for both the svn bundle approach leaves me little option but to continue using a set of symlinked bundles. In fact, I've nearly resorted to doing just as reinout describes in his latest blog entry, to tarball the entire working Products as a known quantity. I want, however, to adopt something which has some semblance to how I will want to run things for a while without significant changes, esp so that I can document this for other folks that I work with - one of the challenges reinout notes poignantly.
Over the past few months as I've kept my sights on buildout, I keep seeing handy tools for working with Zope2 products that incorporate instancemanager, whereas newer development are taking a setuptools / egg-driven approach with standard python packages using zope3 apis. I think it could be a big timesaver to integrate instancemanager into my custom ploneout derivative for the purpose of managing addon products. In fact, this comes on the heels of a conversation with one of the sysadmins I work with who would like to be able to rebuild the entire system from backups, documentation, some plone.org downloads, and a small bit of our custom code.
In order to prevent from creating a new concoction all my own, I think that I will try a mix of the Plone 2.5 branch of "ploneout" along with instancemanager. I actually wonder if it may not be convenient to call instancemanager's python directly from buildout recipes, but will probably start with the simplest possible configuration. My thinking is that instancemanager probably has useful code for generating configuration and for building and interacting with the instances, whereas I plan to run a buildout at the root of 'zope' user's home directory in order to generate an environment with instancemanager available. What I am least clear on about instancemanager thus far is precisely what I am potentially most interested in - the ability to generate zope configuration.
This functionality is being extended in plone.recipe.zope2instance and plone.recipe.zope2zeoserver, but I can't help but wonder if it wouldn't be more prudent to put the guts of this into instancemanager, where people not interested in buildout can also use and contribute to it, and just import a few modules directly into recipes.

