[Distutils] [zc.buildout] upgrade with changed explicit recipe version

Hanno Schlichting plone at hannosch.info
Wed Apr 2 21:44:27 CEST 2008


Hi.

I ran into a problem with zc.buildout while upgrading a customers 
buildout and wondered if the problem I encountered is a general one.

The buildout in question had one recipe pinned down to an exact version 
as in:

[buildout]
parts =
     plone

[plone]
recipe = plone.recipe.plone==3.0.2

To upgrade this environment I changed the explicit version to 3.0.6:

[buildout]
parts =
     plone

[plone]
recipe = plone.recipe.plone==3.0.6

When rerunning the buildout script I got an error during uninstall of 
the plone part. It complained that the plone.recipe.plone recipe version 
3.0.2 was not available.

 From my understanding of this, buildout parses the version requirements 
first and at the point where it wants to uninstall the plone part, only 
the newer 3.0.6 version of the recipe is available.

The workaround was to change .installed.cfg and remove the version 
restriction, so any version of the recipe would be accepted to uninstall 
the part, but I wonder if there is a general problem here or if we are 
misusing the version restrictions?

I have the feeling that buildout should either add the old recipe to the 
environment to satisfy the uninstall requirement or accept newer 
versions of a recipe to uninstall older versions. Thoughts?

Hanno



More information about the Distutils-SIG mailing list