New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sanity check for setuptools 15.0 #242

Closed
jaraco opened this Issue Mar 28, 2015 · 3 comments

Comments

Projects
None yet
3 participants
@jaraco
Contributor

jaraco commented Mar 28, 2015

I've tagged and uploaded a b1 release of setuptools 15.0. This release re-attempts a change that once failed due to assumptions in buildout which I believe have since been corrected.

Can someone test and confirm that the 15.0b1 release is suitable and won't likely create unmanageable breakage in the buildout community?

@jimfulton

This comment has been minimized.

Member

jimfulton commented Mar 28, 2015

Thanks very much for checking in.

I tried it on a few of my buildouts and it seems to work fine, although my buildouts tend to be pretty tame. :)

I tested this by copying the release to my download cache (the dist subdirectory), made sure I wasn't pinning setuptools in a versions section and then ran buildout like this:

bin/buildout prefer-final=false 

Hopefully, some others here will try out this release too.

@mauritsvanrees

This comment has been minimized.

Contributor

mauritsvanrees commented Apr 3, 2015

I tried a few buildouts and it went fine.
But I did not know where to look for. You are talking about this changelog entry, right?

Let's try to break it. Ah, setuptools 15.0b1 in combination with zc.buildout 2.2.1 will fail. zc.buildout 2.2.2 or higher works fine. Here is a buildout config to test it:

[buildout]
parts =
    test
versions = versions
show-picked-versions = true

[versions]
# Working fine:
# setuptools = 14.3.1
# zc.buildout = 2.2.1

# Also working fine:
# setuptools = 15.0b1
# zc.buildout = 2.3.1

# Also working fine:
# setuptools = 15.0b1
# zc.buildout = 2.2.5

# Giving traceback:
setuptools = 15.0b1
zc.buildout = 2.2.1

# Other version pins:
six = 1.9.0
zc.recipe.egg = 2.0.1
zc.recipe.testrunner = 2.0.0
zope.exceptions = 4.0.7
zope.interface = 4.1.2
zope.testrunner = 4.4.7

[test]
recipe = zc.recipe.testrunner
eggs = zc.buildout

It goes wrong like this:

$ bin/buildout 
While:
  Installing.
  Getting section test.
  Initializing section test.
  Installing recipe zc.recipe.testrunner.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 1942, in main
    getattr(buildout, command)(args)
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 506, in install
    [self[part]['recipe'] for part in install_parts]
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 1094, in __getitem__
    options._initialize()
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 1198, in _initialize
    self.initialize()
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 1204, in initialize
    recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/buildout.py", line 1158, in _install_and_load
    allow_hosts=buildout._allow_hosts
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/easy_install.py", line 812, in install
    return installer.install(specs, working_set)
  File "/Users/mauritsvanrees/shared-eggs/zc.buildout-2.2.1-py2.7.egg/zc/buildout/easy_install.py", line 643, in install
    [requirement] = err.args
ValueError: too many values to unpack

Reason it works fine with setuptools 14.3.1 is because in a pdb you get this:

(Pdb) err
DistributionNotFound(Requirement.parse('zope.testrunner'),)
(Pdb) err.args
(Requirement.parse('zope.testrunner'),)

And with the setuptools beta you get this:

(Pdb) err
DistributionNotFound(Requirement.parse('zope.testrunner'), set(['zc.recipe.testrunner']))
(Pdb) err.args
(Requirement.parse('zope.testrunner'), set(['zc.recipe.testrunner']))

(Note that there is nothing wrong with the requirement here. The exception simply means that zope.testrunner is not found locally, so zc.buildout enters a code section where it tries to get it from PyPI.)

So there are certainly versions of zc.buildout that will break with this new setuptools version. At least 2.2.0 and 2.2.1, maybe others. But newer versions in the 2.2.x line work fine. And I see that the 2.1.x series wants distribute instead of setuptools, so that series seems no concern.
So: should be okay.

@jaraco

This comment has been minimized.

Contributor

jaraco commented Apr 3, 2015

Awesome. Thanks for the help.

@jaraco jaraco closed this Apr 3, 2015

lepistone added a commit to lepistone/buildout-odoo that referenced this issue Apr 5, 2015

bump buildout to address buildout/buildout#242
otherwise, we should keep setuptools before 15.0

guewen added a commit to camptocamp/buildout-odoo that referenced this issue Apr 8, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment