Fails installation from an editable git repo in setuptools 18.6

Bug #1519727 reported by Ilya Kharin on 2015-11-25
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Critical
Ilya Kharin

Bug Description

The version of setuptools should be pinned to 18.5 until 18.6.2 not released according to the bug [1]. Jobs [2] and [3] in CI fail with the error:

Installing collected packages: nailgun, unittest2
  Running setup.py develop for nailgun
    Complete output from command /home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/bin/python2.6 -c "import setuptools, tokenize; __file__='/home/jenkins/workspace/verify-fuel-web/nailgun/setup.py'; exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" develop --no-deps:
    running develop
    running egg_info
    writing requirements to nailgun.egg-info/requires.txt
    writing nailgun.egg-info/PKG-INFO
    writing top-level names to nailgun.egg-info/top_level.txt
    writing dependency_links to nailgun.egg-info/dependency_links.txt
    writing entry points to nailgun.egg-info/entry_points.txt
    writing pbr to nailgun.egg-info/pbr.json
    warning: manifest_maker: standard file '-c' not found
    reading manifest file 'nailgun.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'fuel-cli/fuel'
    writing manifest file 'nailgun.egg-info/SOURCES.txt'
    running build_ext
    Creating /home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/nailgun.egg-link (link to .)
    Adding nailgun 8.0.0 to easy-install.pth file
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/setup.py", line 77, in <module>
        data_files=recursive_data_files([('share/nailgun', 'static')])
      File "/usr/lib/python2.6/distutils/core.py", line 152, in setup
        dist.run_commands()
      File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands
        self.run_command(cmd)
      File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command
        cmd_obj.run()
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/setuptools/command/develop.py", line 32, in run
        self.install_for_development()
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/setuptools/command/develop.py", line 132, in install_for_development
        self.process_distribution(None, self.dist, not self.no_deps)
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/setuptools/command/easy_install.py", line 695, in process_distribution
        self.install_egg_scripts(dist)
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/setuptools/command/develop.py", line 160, in install_egg_scripts
        self.install_wrapper_scripts(dist)
      File "/home/jenkins/workspace/verify-fuel-web/nailgun/.tox/py26/lib/python2.6/site-packages/setuptools/command/develop.py", line 173, in install_wrapper_scripts
        return super(develop, self).install_wrapper_scripts(dist)
    TypeError: super() argument 1 must be type, not classobj

[1] https://bitbucket.org/pypa/setuptools/issues/464/typeerror-in-install_wrapper_scripts
[2] https://ci.fuel-infra.org/job/verify-fuel-web/6904/
[3] https://ci.fuel-infra.org/job/verify-fuel-web/6891/

Changed in fuel:
importance: Undecided → Critical
milestone: none → 8.0
status: New → Confirmed
Ilya Kharin (akscram) on 2015-11-25
description: updated
Changed in fuel:
assignee: nobody → Fuel Python Team (fuel-python)

Fix proposed to branch: master
Review: https://review.openstack.org/249688

Changed in fuel:
assignee: Fuel Python Team (fuel-python) → Ilya Kharin (akscram)
status: Confirmed → In Progress

Reviewed: https://review.openstack.org/249688
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=0f4dfa4c5d71eeba7319d0315498faeb64aeda0c
Submitter: Jenkins
Branch: master

commit 0f4dfa4c5d71eeba7319d0315498faeb64aeda0c
Author: Ilya Kharin <email address hidden>
Date: Wed Nov 25 13:02:38 2015 +0300

    Pin setuptools == 18.5

    Yesterday the new versions of setuptools (18.6 and 18.6.1) were released
    where some functionality such as installation in the editable mode was
    broken. It will be fixed in the 18.6.2 release.

    Change-Id: Id19879c788efbba6c6e72fe6a4a97418df124525
    Partial-Bug: #1519727

Maciej Relewicz (rlu) on 2015-11-25
tags: added: area-python
Dmitry Pyzhov (dpyzhov) on 2015-11-25
tags: added: tech-debt

This patch does not make things better. As a result we have setuptools==18.5 in fuel-nailgun package while we only have 0.7 in our rpm repo [2]. When trying to load entry point the following error occurs

load_entry_point('nailgun==8.0.0', 'console_scripts', 'nailgun_syncdb')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 346, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2516, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2209, in load
    if require: self.require(env, installer)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2222, in require
    working_set.resolve(self.dist.requires(self.extras),env,installer))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 598, in resolve
    raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (setuptools 0.7.2 (/usr/lib/python2.6/site-packages), Requirement.parse('setuptools==18.5'))

[1] https://review.openstack.org/#/c/249688
[2] http://mirror.fuel-infra.org/mos-repos/centos/mos8.0-centos6-fuel/os/x86_64/Packages/python-setuptools-0.7.2-7.el6.mira3.noarch.rpm

Reviewed: https://review.openstack.org/250044
Committed: https://git.openstack.org/cgit/openstack/fuel-web/commit/?id=31fd638659583a4deafb3b87b689b74e1c1b7a9c
Submitter: Jenkins
Branch: master

commit 31fd638659583a4deafb3b87b689b74e1c1b7a9c
Author: Vladimir Kozhukalov <email address hidden>
Date: Thu Nov 26 01:32:03 2015 +0300

    Change setuptools requirement to <=18.5

    The thing is that this requirement setuptools==18.5
    becomes a part of fuel-nailgun RPM package.
    The highest available version in mirror.fuel-infra.org
    at the moment is python-setuptools-0.7.2 which
    leads to the error pkg_resources.VersionConflict when
    trying to load nailgun entry points using for example

    load_entry_point('nailgun==8.0.0', 'console_scripts', 'nailgun_syncdb')

    Console script entry points are used during the Fuel
    master node deployment.

    Change-Id: I1e9b326912ef2e60da87f89af89d3a7968818276
    Related-Bug: #1519727
    Closes-Bug: #1519990

Changed in fuel:
status: In Progress → Fix Committed
Changed in fuel:
status: Fix Committed → Fix Released

Change abandoned by Fuel DevOps Robot (<email address hidden>) on branch: master
Review: https://review.openstack.org/448194
Reason: This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers