[Grok-dev] Re: pinning version of zc.buildout useless?

Vincent Fretin vincent.fretin at gmail.com
Thu Jul 31 03:54:53 EDT 2008

On Wed, Jul 30, 2008 at 9:33 PM, Maurits van Rees
<m.van.rees at zestsoftware.nl> wrote:
> Vincent Fretin, on 2008-07-30:
>> Hi,
>> When you create a grok project with grokproject 0.8, you have the
>> versions.cfg file in the created directory.
>> In this file you have zc.buildout version pinned to 1.0.6.
>> For me this version will never be satisfied because when you execute
>> `python2.4 bootstrap.py`, it installs always the latest version on
>> PYPI (now it's 1.1.1). Am I wrong?
>> It says "Getting distribution for 'zc.buildout==1.0.6'", but actually
>> it copy the one installed system-wide (or in a virtualenv I think) or
>> download the latest from pypi.
>> The generated bin/buildout use zc.buildout 1.1.1.
> "python bootstrap.py" will give you the latest zc.buildout.  When you
> then run bin/buildout, it should update itself to use the pinned
> version from versions.cfg.  A bit unexpected perhaps, but that was
> what happened last time I tried this.
I made further tests.
First I removed zc.buildout system-wide and all zc.buildout eggs in
I ran python2.4 bootstrap.py, it says:
$ python2.4 bootstrap.py
Creating directory '/home/alvis/helloworld/bin'.
Creating directory '/home/alvis/helloworld/parts'.
Creating directory '/home/alvis/helloworld/develop-eggs'.
Generated script '/home/alvis/helloworld/bin/buildout'.
Develop: '/home/alvis/helloworld/.'
Develop: '/home/alvis/helloworld/.'
Installing eggbasket.
Installing eggbasket.
Getting distribution for 'zc.buildout==1.0.6'.
Getting distribution for 'zc.buildout==1.0.6'.
Got zc.buildout 1.0.6.
Got zc.buildout 1.0.6.

By the way, why all messages after bin/buildout is generated are printed twice?

Finally I have 1.0.6 and 1.1.1 zc.buildout eggs in my
/home/alvis/.buildout/eggs/ directory

and in bin/buildout, it uses 1.1.1. For me zc.buildout 1.1.1 is
installed because of ws.require('zc.buildout') line in bootstrap.py.
Then when it calls "zc.buildout.buildout.main(sys.argv[1:] +
['install', 'eggbasket'])", it generate first the bin/buildout script
and then install zc.buildout 1.0.6.

But in bin/buildout, you have always the 1.1.1 version, so it's this
version which is used. right?

When you run bin/buildout after, it don't regenerate the bin/buildout
file to use 1.0.6:
alvis at yusuke:~/vrepoze/helloworld$ bin/buildout
Develop: '/home/alvis/helloworld/.'
Updating eggbasket.
Installing app.
Generated script '/home/alvis/helloworld/parts/app/runzope'.
Generated script '/home/alvis/helloworld/parts/app/debugzope'.
Installing data.
Installing zopectl.
Generated script '/home/alvis/helloworld/bin/zopectl'.
Installing i18n.
i18n: setting up i18n tools
Generated script 'bin/i18nextract'.
Generated script 'bin/i18nmergeall'.
Generated script 'bin/i18nstats'.
Installing test.
Generated script '/home/alvis/helloworld/bin/test'.

At this point bin/buildout use always 1.1.1.

Vincent Fretin

More information about the Grok-dev mailing list