[Grok-dev] a grok installer download Was: Re: remove the download tarball functionality from grokproject?

Leonardo Rochael Almeida leorochael at gmail.com
Mon Mar 1 20:09:36 EST 2010


On Mon, Mar 1, 2010 at 20:09, Martijn Faassen <faassen at startifact.com> wrote:
> [...]
> Another approach would be to use virtualenv *more*. Instead of installing a
> shared eggs cache, we download all of grok's requirements into the
> site-packages of the virtualenv that our installer creates. This will then
> be our shared eggs cache. It does away with the need of a centralized shared
> eggs cache installed and the need for a centralize default default.cfg for
> buildout. One consequence would be that any *extensions* that the user
> downloads into their buildout would not be shared but in the local 'eggs' of
> each buildout. Is that good or bad?
>
> Another consequence would be that we'd need a way to guarantee that the
> right versions are installed into site-packages, as we can't use buildout to
> do it (or could we hack it to?). Pip?

Another consideration is that going this route would perhaps make us
more compatible with the non-buildout python world, which might,
arguably, make things like using mod_wsgi easier.
> [...]
> Some more requirements:
>
> [...]
>
> * the buildout.cfg created by grokproject should work on other machines. It
> shouldn't have hardcoded paths in it to, say, eggs directories.
>
> [...]
>
> Given these consequences, I am still inclined to stick with the shared egg
> cache approach, even though it does force us to install a default.cfg
> centrally. I think end-users end up with a nicer setup as a result.
>
> It'd be nice if we could somehow avoid this, but I can't see a present or
> future buildout feature right now that would help there (besides a long
> commandline option to bin/buildout, or an alternative bin/rebuild script
> that uses this commandline option. Neither are attractive).

How about a compromise?

Have buildout.cfg extend a "paths.cfg" that concentrate all local
(non-portable) paths. Emptying this file would turn it into a regular
buildout, depending on default.cfg for caching. On the other hand, a
change on a single line in this file would allow alternating between
different grok-installer versions.

It could look something like this:

[buildout]
# adjust this if you download a new version of the grok installer or if you
grok-installer = /home/leo/Downloads/grok-installer-1.2
# change these only if you know what you're doing
eggs-directory =  ${:grok-installer}/eggs
extends-cache = ${:grok-installer}/versions

Or perhaps, simply

[buildout]
# adjust this if you download a new version of the grok installer or if you
grok-installer = /home/leo/Downloads/grok-installer-1.2
extends += ${:grok-installer}/install.cfg

This last version would allow us to change the names and location of
the included version files (ztk.cfg, zopeapp.cfg, ...) with each
released installer.

Cheers, Leo


More information about the Grok-dev mailing list