[Framework-Team] Re: ploneenv - Or how using workingenv for a common Zope2 project might look like ;-)
Martin Aspeli
optilude at gmx.net
Sun Feb 4 13:03:43 UTC 2007
Daniel Nouri wrote:
>> This is probably a place where the buildout.cfg approach makes sense -
>> we would be able to edit this file so that at any point in time it
>> pointed at the right eggs to construct a Plone release. We could then
>> let buildout run additional recipes that would e.g. run the tests and
>> then create eggs, upload them to the cheese shop, and/or roll tarballs.
>> We would code that in python and package it as buildout recipe eggs.
>
> I think we should use tags and use the Plone egg to accomplish that.
> Setting the svn:externals etc on the tags may well be scripted, but a recipe
> for uploading to cheese shop or roll tarballs is certainly overkill, since
> setuptool lets you do all that with one line.
But when we have dozens of eggs, it's dozens of lines, no? Or can it
also upload all dependencies?
Similarly, I think we will need some kind of tarball, so maybe we could
have a recipe for that. Or not, I mean, it's not difficult to make a
recipe if it saves time (basically, you just need an entry point), but
if we don't need it, all the better.
> I'd put everything into $INSTANCE_HOME == $WORKING_ENV. I don't think
> that's particularly nasty. As for C libraries, I would probably compile
> those --prefix'ed into $INSTANCE_HOME as well. Of course, if I have more
> than one Zope instance, I'd split libraries and instances, so that all
> instances can share the libraries. I know that with buildout this is easy,
> but it's not particularly hard without it either.
Of course. If I had ten customers all with slightly different
configurations, though, I'd like to have ten self-contained environments
that I could deploy independently. I'd also like that to be automated so
that six months down the line, when I had to fix a bug, I could
understand exactly what the configuration was (I've had problems with
this before where, for example, I've upgraded my "main" Zope instance or
"main" Plone checkout and found that it broke stuff but I didn't know
what it used to be).
I'm not saying that type of thing can't be solved with workingenvs or
other solutions, I'm just saying that buildout has decent conventions
that create an environment that's environment self-contained (unless you
tell it otherwise, e.g. by referring to a common zope instance, but you
can then switch it back to self-contained again by changing an option in
the file). Sometimes this may be attractive.
> Right, I never use the Zope from Debian for the same reasons. But I do like
> to have one Zope 2.10 checkout for all projects that use it.
Yeah, me too, at least for when I develop things that are generic
components bound for the Collective, or different versions of Plone
itself. I think for a customer project, I'd prefer to have everything in
one single directory. But that's down to preference, of course. I do
think it's nice to have the option of having Zope downloaded and built,
though, also for things like continuous integration servers (buildbots).
> I think this comes down to a question of discipline. If you want all your
> developers to use exactly the same environment, then tell them to not
> install anything besides the --requirements, similarly to: "don't edit the
> buildout.cfg".
Well, yes, but if one developer does edit buildout.cfg (we added a new
requirement or a new step in the build process), everyone else svn up's
that file and runs bin/buildout and their environments are the same
again. The --requirements file is, as far as I understand, a one-off
bootstrap.
Martin
More information about the Framework-Team
mailing list