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

Maurits van Rees m.van.rees at zestsoftware.nl
Tue Aug 5 16:57:44 EDT 2008


Vincent Fretin, on 2008-07-31:
> On Wed, Jul 30, 2008 at 9:33 PM, Maurits van Rees
> I made further tests.
> First I removed zc.buildout system-wide and all zc.buildout eggs in
> /home/alvis/.buildout/eggs/
> 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?

Known bug.  I thought is was in the launchpad tracker but I cannot
find it there.
https://bugs.launchpad.net/zc.buildout/+bugs

> 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.

Correct.

> 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.

Correct.

> 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:

For me this *does* happen, both on my laptop with a global zc.buildout
installed and on my desktop without a global zc.buildout install.

====================================================
maurits at hobb:~/buildout/foo $ cat bin/buildout 
#!/usr/bin/python2.4

import sys
sys.path[0:0] = [
  '/home/maurits/buildout-eggs/setuptools-0.6c8-py2.4.egg',
  '/home/maurits/buildout-eggs/zc.buildout-1.1.1-py2.4.egg',
  ]

import zc.buildout.buildout

if __name__ == '__main__':
    zc.buildout.buildout.main()
maurits at hobb:~/buildout/foo $ bin/buildout -nv
Installing 'zc.buildout', 'setuptools'.
We have the distribution that satisfies 'zc.buildout==1.0.6'.
We have the best distribution that satisfies 'setuptools'.
Picked: setuptools = 0.6c8
Upgraded:
  zc.buildout version 1.0.6;
restarting.
Generated script '/home/maurits/buildout/foo/bin/buildout'.
Installing 'zc.buildout', 'setuptools'.
====================================================

Notice the lines stating 'Upgraded' and 'restarting'.

It could be that this only ever happens when you explicitly tell
buildout to run in newest mode with "bin/buildout -n".  Indeed when
you already have version x for a package and versions.cfg specifies
version y then version x will keep being used unless you run with '-n'
(or have newest = true in buildout.cfg).

But then I do not understand why you would get a download for both
1.1.1 and 1.0.6.

-- 
Maurits van Rees | http://maurits.vanrees.org/
            Work | http://zestsoftware.nl/
"This is your day, don't let them take it away." [Barlow Girl]



More information about the Grok-dev mailing list