[Zope-dev] zope-tests - FAILED: 119, OK: 8
Maurits van Rees
m.van.rees at zestsoftware.nl
Thu Dec 18 22:09:47 CET 2014
Marius Gedminas schreef op 17-12-14 10:14:
> The variety of errors has decreased somewhat. Most of the builds
> fail with
>
> Error: Couldn't find a distribution for 'zc.recipe.egg<2dev,==1.3.0,>1.3.0'.
I wondered about this one. Grepping in my eggs directory in
*/EGG-INFO/requires.txt for zc.recipe.egg I only find
z3c.recipe.scripts 1.0.1 that has 'zc.recipe.egg >=1.3.0'.
I wonder if somehow this wrongly gets split into the contradicting
'==1.3.0,>1.3.0'.
Trying it locally for such a failing build (zope.traversing before I
pinned setuptools), I see that zc.buildout 1.7.1 is used, which has this
in buildout.py:
self.versions = {
'zc.recipe.egg': '<2dev',
'zc.recipe.testrunner': '<2dev',
}
So that is where the '<2dev' comes from.
zc/buildout/easy_install.py then has an install method, which combines
the version restriction with the requirement in this call:
_constrained_requirement_constraint(
'<2dev', Requirement.parse('zc.recipe.egg>=1.3.0'))
The result of that call is:
'<2dev,>1.3.0,==1.3.0'
This is silly but it works fine for setuptools before version 8. With
setuptools 8 it fails to find any distributions that match this specifier.
This stuff was fixed in zc.buildout 2.3.0 with this commit:
https://github.com/buildout/buildout/commit/dc32780e7320caed5baf87e2068f693b58125572
BTW, note that pinning zc.recipe.egg in a buildout config would help
here. _constrained_requirement_constraint('==1.3.2', requirement) has
as result '==1.3.2'.
I also wondered why zc.buildout was not getting upgraded. Of course
first the current bootstrap.py gets zc.buildout<2dev, so you get
zc.buildout 1.7.1. Then when running buildout it calls _maybe_upgrade
and this has a check to prevent upgrading to 2.x unless a specific
version is requested.
So: some puzzles (for me at least) solved.
Going forward, it would be nice to either backport the mentioned commit
to zc.buildout 1.x (not going to happen I guess) or have an updated
bootstrap.py for 1.x that restricts setuptools<8dev.
But as said earlier, for projects that do not require zc.buildout 1.x,
the latest bootstrap from https://bootstrap.pypa.io should be fine.
--
Maurits van Rees: http://maurits.vanrees.org/
Zest Software: http://zestsoftware.nl
More information about the Zope-Dev
mailing list