[Zope3-dev] Re: RFC: Known working sets

Philipp von Weitershausen philipp at weitershausen.de
Mon Sep 3 18:37:30 EDT 2007


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 
>> community.
> 
> 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. 
> 
> Good point.
> 
>> setuptools has little to no machinery to aid automated deployments in 
>> any way.
> 
> 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).
> 
> Right.
> 
> 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


More information about the Zope3-dev mailing list