[Grok-dev] Re: grokproject: version pinning in setup.py

Philipp von Weitershausen philipp at weitershausen.de
Mon Jul 7 11:00:29 EDT 2008

Martijn Faassen wrote:
> I'd like to make sure that when the buildout runs (for the first time or 
> thereafter) the version of zc.buildout and the version of any recipes we 
> used are pinned down, somehow. Suggestions on how to do this would be 
> welcome.

You can pin the versions of recipes quite easily in the [versions] 
section as well, just like with any other egg. A quick test also showed 
that you can even pin the version of zc.buildout this way, however, only 
if newest = true is enabled or bin/buildout is called with the -n switch 
(also, the initial bootstrap will always download the most recent 
zc.buildout release first).

> The problem with zc.buildout is the bootstrapping issue; how do we 
> constrain the recipe to install an egg if the recipe itself is an egg? 

You said it, recipes are eggs and installed as such. zc.buildout adheres 
to the versions definitions for all egg installations, including its 
recipes (and even itself, see above).

> As to the actual installation of grokproject itself, we still have a 
> tricky situation. Something might happen to the dependencies that causes 
> grokproject to stop working upon installation. Of course we have far 
> less dependencies, and existing grok installations will continue to 
> work, but installation by beginners of Grok would still be broken until 
> someone actually thinks of telling us something is wrong. That's bad 
> enough.
> I'd like to avoid this situation, somehow. I'm not sure how to go about 
> it though, and perhaps the solution is worse than the problem. But I 
> think it makes sense to think about options here.

Perhaps we should take a look at what the other frameworks do. Many of 
them use Paste and it seems to work out fine. Not sure if they do any 
version pinning.

More information about the Grok-dev mailing list