[Grok-dev] solving buildout problems - pinning down eggs

Wichert Akkerman wichert at wiggy.net
Fri Sep 14 10:26:08 EDT 2007

Previously Martijn Faassen wrote:
> Hey,
> Jasper yesterday (see earlier message) ran into yet another case where 
> grokproject wouldn't work because of some new egg release. I've run into 
> several problems now over the last weeks, too.
> Let me be blunt about this: This is a critical problem for Grok. It's 
> pretty atrocious: we can't do a Grok release and then have it break on 
> us, several times, in the next few weeks! We might lose countless people 
> who just wanted to try out Grok just by problems like this.
> How do we solve this immediate problem for grok? What has this 
> requirement for zope.traversing that trips us up?
> We can't keep solving these individual problems over and over again, as 
> it's clear it'll never end. So, on to solving the general problem:
> We need to have, and use, the facility to "pin down" Grok's dependencies 
> to specific version numbers. This means we need to produce a complete 
> list of *all* of the egg versions that grok is using. I want to pin it 
> down exactly - all dependencies are liabilities and we can't allow a 
> single one to break everything.
> We then need to have an easy way to make sure that people who use Grok 
> x.y actually use those versions, by default.
> Ideally we also want the ability for people to use newer versions of 
> eggs, if they so choose. This is a bonus feature in my mind. If this 
> bonus feature takes time to work out, we need to forget about it for 
> now, as this problem is critical.

plone.recipe.plone does exactly that for Plone. Its implementation is
very tied to the way the Plone release-creation-scripts work (horribly)
but it solves this problem very well. You can see how it works on its
cheesehop page.


Wichert Akkerman <wichert at wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.

More information about the Grok-dev mailing list