[Distutils] change in setuptools 8.0
Maurits van Rees
m.van.rees at zestsoftware.nl
Tue Dec 16 01:05:53 CET 2014
Jim Fulton schreef op 15-12-14 19:15:
> Buildout doesn't try to merge dependency requirements from different packages.
> It just installs packages and their dependencies and builds up a working set.
> It does merge constraints from the versions section (if any) with
> whatever requirement
> it's working on at any point in time.
> I'm guessing that the requirement: zc.buildout==2.2.5,>=1.5.0
> is coming from a setup spec or from some buildout section. It was a
> valid spec once
> but isn't any more.
Let's try a buildout with Plone. This one goes fine (except for
possible warnings about legacy versions):
$ curl -O https://bootstrap.pypa.io/bootstrap-buildout.py
$ cat buildout.cfg
extends = http://dist.plone.org/release/4.3-latest/versions.cfg
versions = versions
parts = instance
# Override version pins that are in the file of the extends line.
zc.buildout = 2.3.0
setuptools = 8.0.4
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 8080
$ python bootstrap-buildout.py
All is well.
Now edit buildout.cfg and add this line in the [buildout] section:
allow-picked-versions = false
Getting section instance.
Initializing section instance.
Installing recipe plone.recipe.zope2instance.
Getting distribution for 'ZODB3==3.10.5,>=3.9'.
Error: Picked: ZODB3 = 3.10.5
Somehow a problem appears because the buildout config pins ZODB3 to
3.10.5, and buildout installs plone.recipe.zope2instance which requires
'ZODB3 >= 3.9'. (I wonder if this behaviour is specific for recipes,
but I guess not.)
Now revert the change, and instead add this line in the [buildout] section:
show-picked-versions = true
Versions had to be automatically picked.
The following part definition lists the versions picked:
AccessControl = 3.0.8
Markdown = 2.0.3
Products.ATContentTypes = 2.1.14
Products.OFSP = 2.13.2
Products.PlonePAS = 4.1.4
ZODB3 = 3.10.5
Zope2 = 2.13.22
archetypes.schemaextender = 2.1.4
collective.z3cform.datetimewidget = 1.2.6
diazo = 1.0.6
lxml = 2.3.6
mechanize = 0.2.5
plone.app.contentmenu = 2.0.10
plone.app.imaging = 1.0.11
plone.app.jquery = 1.7.2
plone.app.linkintegrity = 1.5.5
plone.app.registry = 1.2.3
plone.app.z3cform = 0.7.7
plone.autoform = 1.6.1
plone.behavior = 1.0.2
plone.browserlayer = 2.1.3
plone.dexterity = 2.2.4
plone.keyring = 2.0.1
plone.namedfile = 2.0.7
plone.registry = 1.0.2
plone.resource = 1.0.3
plone.scale = 1.3.4
plone.schemaeditor = 1.3.8
plone.supermodel = 1.2.6
plone.z3cform = 0.8.0
python-gettext = 1.2
python-openid = 2.2.5
repoze.xmliter = 0.5
transaction = 1.1.1
z3c.form = 3.2.1
zope.app.locales = 3.6.2
zope.tales = 3.5.3
All these versions are definitely pinned in the file we extend (or in
files that this file extends):
So: strange behaviour.
Maurits van Rees: http://maurits.vanrees.org/
Zest Software: http://zestsoftware.nl
More information about the Distutils-SIG