[Distutils] versions and forward referencing options in recipe eggs

Matt Halstead matt at elyt.com
Tue Aug 26 23:54:49 CEST 2008


I have stumbled over a behaviour where the versions option is ignored  
in a particular scenario. I am wondering if this is intended behaviour  
or not.

The following is a simple example of a not very useful buildout. (this  
uses setuptools-0.6c8-py2.4 and zc.buildout-1.1.1-py2.4)

--------------

[buildout]
eggs-directory = ${buildout:directory}/eggs
download-cache = ${buildout:directory}/downloads

versions = versions

parts =
     plone

instance-base-eggs =
     ${plone:eggs}


[versions]
plone.recipe.plone = 3.1.4

[plone]
recipe = plone.recipe.plone

------------------------

When we define instance-base-eggs explicitly like this within the  
buildout section, then when the buildout bootstrap process is run  
(e.g. python2.4 bootstrap.py), the latest egg for plone.recipe.plone  
will be pulled and used to satisfy the recipe egg requirement when the  
buildout is run. The version in the versions section is ignored here.  
It is not ignored if the version is pinned directly to the  
plone.recipe.plone i.e. we have

[plone]
recipe = plone.recipe.plone == 3.1.4

If instead we have the following

------------------------

[buildout]
eggs-directory = ${buildout:directory}/eggs
download-cache = ${buildout:directory}/downloads

versions = versions

parts =
     plone

[base]
eggs =
     ${plone:eggs}


[versions]
plone.recipe.plone = 3.1.4

[plone]
recipe = plone.recipe.plone

--------------------------

Then the plone.recipe.plone egg is not pulled during the bootstrap  
process, but instead during the buildout process at which point the  
version pinning in the versions section is honored just fine.

Is it intended that the bootstrap process ignores versions in the  
versions section?

cheers
Matt





More information about the Distutils-SIG mailing list