[Zope-CMF] Known working sets II [was: Eggification redux]

Philipp von Weitershausen philipp at weitershausen.de
Tue Sep 25 08:06:01 EDT 2007


(Also CCing zope3-dev where the first known working set discussion 
started a while ago)

Tres Seaver wrote:
> This is the "known good" problem.  I'm pretty convinced that adding some
> kind of "PyPI subset", where gardeners for a given "package set" keep
> the list of packages / versions known to work well together, is the only
> way out of this issue.  E.g., a URL like:
> 
>   http://pypi.python.org/pypi/release/zope3.4
> 
> would be usable as an 'index-url' for setuptools:  when used this way,
> setuptools would only find / install eggs from the "gardened" set,
> rather than whatever anyone happened to have uploaded that day.
> 
> If PyPI can't be tweaked to provide such a feature, we may need to come
> up with some kind of mirroring scheme which does allow it.

This is certainly an interesting approach. I'd be curious how you would 
garden this known working set. Martijn makes a pretty good case for 
maintaining such working sets close to the package in question (e.g. the 
grok egg, the Plone egg, etc.).

I see two more solutions:

* A versions.cfg that's loaded via HTTP. zc.buildout actually supports 
this now which makes it quite appealing. Also, far as I know, all major 
deployers of Zope3 that use zc.buildout for deployment use this form of 
pinning egg versions right now, which means it's actually being used out 
there.

* Adding version conflict resolution to zc.buildout and/or setuptools. 
That way you could create meta eggs (e.g. the 'Zope' egg) with '==' 
version specificers (for Grok, the 'grok' egg would function as the meta 
egg as well). If this would cause version conflicts (and they often 
occur in buildout due to the lack of a full dependency tree before 
download), it should be possible to say which egg's versions are 
authoritative.

-- 
http://worldcookery.com -- Professional Zope documentation and training


More information about the Zope-CMF mailing list