Martin Aspeli wrote:
- It only works through buildout. Ideally it would be supported at
the setuptools level, imho.
I'm not really convinced that that's necessary. From a practical
perspective, zc.buildout is the defacto deployment tool in the Zope
Alas, not so for all Plone people: Some folks prefer workingenv's in
old-fashioned Zope (2) instances, some people use instancemanager, some
people still symlink into lib/python.
Well, then let me rephrase: I'm not looking for a solution that fits
everybody. I'm looking for *a* solution. And I wouldn't mind if it
worked well with zc.buildout :).
Plus, a ConfigParser-style configuration file can be read by pretty much
anything so I'm sure workingenv, instancemanager and what not can
easily be enhanced if someone cared enough. And as said before, if the
stuff is placed in EGG-INFO, it'll also be extremely easy to discover.
Also, working sets have "deployment" written all over it.
setuptools has little to no machinery to aid automated deployments in
True. However, I think it's also legitimate to want to "depend on" a
complete "working set", which is more in setuptools land. But I see no
problem in solving this at a buildout level first.
setuptools only gives us the ability to depend on eggs. Working sets as
ar as I define them are pinned down version definitions of dependencies.
This doesn't exist in setuptools yet. The fact that we can use its
dependency mechanism as an analog is pure convenience.
- I worry that the management of lots .cfg files could be
cumbersome. For Plone, we could probably generate one from the
dist_plone package, which otherwise lists "known working sets" for
installers and plone.recipe.plone.
Well, or the other way around: the installers could take the .cfg file
of the working set and grab the right packages according to that.
After all, a .cfg file can be read with ConfigParser quite easily.
Yeah, true. It's just that everything wants to be the "one true place".
In the Plone land, having to cater to non-buildout deployments may make
that harder, but like you said - .cfg files are pretty neutral.
Yup. Non-buildout deployments, such as installers, could still read the
.cfg file from EGG-INFO.
- This doesn't really solve the dependency problem. I can't say,
"Give me Plone 3.0.1 or newer" in a third party package. That could
probably done by having a separate "Plone" meta-egg which uses >=
type dependency specifications, though.
Yes, this could be covered by a Plone egg (meta or not) and a
"Plone>=3.0" modifier that's put in the 3rd party package's setup.py
(I think the >=, <= operators can be valid in setup.py, just == isn't).
Anyway, like I said - I'd like to see a working version of this
approach; Plone could quite usefully use it, imho.
I trust by "this approach" you mean the EGG-INFO approach? Because the
stuff I proposed originally already works...
http://worldcookery.com -- Professional Zope documentation and training
Zope3-dev mailing list