On Mon, Dec 15, 2014 at 7:05 PM, Maurits van Rees
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 [buildout] extends = http://dist.plone.org/release/4.3-latest/versions.cfg versions = versions parts = instance
[versions] # Override version pins that are in the file of the extends line. zc.buildout = 2.3.0 setuptools = 8.0.4
[instance] recipe = plone.recipe.zope2instance user = admin:admin http-address = 8080 eggs = Plone
$ python bootstrap-buildout.py $ bin/buildout
All is well.
Now edit buildout.cfg and add this line in the [buildout] section:
allow-picked-versions = false
$ bin/buildout ... While: Installing. 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
$ bin/buildout ... Versions had to be automatically picked. The following part definition lists the versions picked: [versions] 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): http://dist.plone.org/release/4.3-latest/versions.cfg
So: strange behaviour.
I'm not sure how this relates to what you reported before, but this is a known bug that I think I introduced on Sunday. I'm about to work on a fix. Jim -- Jim Fulton http://www.linkedin.com/in/jimfulton