[Grok-dev] remove the download tarball functionality from grokproject?

Martijn Faassen faassen at startifact.com
Mon Mar 1 17:17:14 EST 2010


Hi there,

Jan-Wijbrand Kolman wrote:
> Like Vincent reported, grokproject will download the big tarball 
> ("Eggbasket") even if (most of) the required eggs are already 
> available in your egg cache.
> 
> It is also an extra step in the release process to actually create the 
> eggbasket and upload it.
> 
> How would people feel if I were to remove this eggbasket downloading 
> from grokproject?

I've been thinking about this.

The reason we have the giant tarball is primarily reliability. We can 
host the tarball ourselves on grok.zope.org. If for someone reason some 
random website that hosts something we depends on is down, people can 
still install Grok. That's useful especially when people are installing 
Grok for the first time.

It's also clear that the giant tarball is a liability though. It makes 
our installation procedure more complicated. If we force people to 
download it each time even though they don't need all of it, that's 
silly too.

I'll note that the first-time installation group is not us. That's why I 
think we should think of them explicitly.

Leonardo was experimenting with an installation method which is a giant 
tarball, but where grokproject itself is *also* in that tarball. I.e. 
it's more like the traditional way people install stuff - they download 
the tarball, unpack it, and follow installation instructions.

I'm +1 on that approach and replacing the eggbasket approach. It'll be 
more familiar for first-time users than what we have now, and it won't 
bother the existing users.

My primary concern is that any such method should end up with an 
installation that makes sense *beyond* first time installation of Grok. 
It should allow getting stuff from PyPI, it should install shared eggs 
somewhere, the buildout.cfg that it generates shouldn't make assumptions 
that don't work for everyone (the rule that if I check my generated 
buildout.cfg into SVN you can check it out and run buildout to get the 
same results), etc.

Alternatively, we could introduce some reliability by running our own 
mirrored package index on grok.zope.org. That just sounds too "special" 
and cumbersome for us to maintain though.

The design of the installer could be that it creates a directory 
structure with all the required tgzs and binary eggs somewhere, and it 
can install a bin/grokproject. When bin/grokject is installed, all the 
source tgzs should be installed in a shared eggs dir somewhere (possibly 
under that directory). It's quite possible eggbasket can actually do 
what we want; we just only run it once during an explicit installation 
check, instead of running in each time we are creating a Grok project. 
So, we'd not have any eggbasket stuff in grokproject-generated buildout.cfg.

Can we make progress on such an installer?

Regards,

Martijn



More information about the Grok-dev mailing list