#2468 closed defect (somebody else's problem)

updates to indirect dependencies cause build failures

Reported by: daira Owned by: daira
Priority: normal Milestone: undecided
Component: packaging Version: 1.10.1
Keywords: packaging setuptools Cc:
Launchpad Bug:

Description (last modified by daira)

Consider the case where Tahoe initially depends on foo >= X.0, and foo X.0 depends on bar Y.0. Then foo X.1 is released which depends on bar Y.1. (This is a common situation, especially when foo and bar have overlapping development teams.)

Suppose that a particular machine has bar Y.0 installed globally. What is supposed to happen is that, in the case where a Tahoe build on that machine downloads foo X.1, it also downloads bar Y.1 and builds it under support/.

However, that doesn't happen. Instead we get an error:

error: Installed distribution bar Y.0 conflicts with requirement bar>=Y.1

For a concrete example, see https://tahoe-lafs.org/buildbot-tahoe-lafs/builders/memcheck-32/builds/96/steps/compile/logs/stdio:

Need allmydata-tahoe==1.10.1.post5
  found allmydata-tahoe 1.10.1.post5 (/home/bb-tahoe/bb-tahoe/memcheck-32/build/src)
  adding subdependencies [...]; pyasn1-modules>=0.0.5; pyasn1>=0.1.4; [...]

[...]
Need pyasn1-modules>=0.0.5
Searching for pyasn1-modules>=0.0.5
Reading http://pypi.python.org/simple/pyasn1-modules/
Best match: pyasn1-modules 0.0.6
Downloading https://pypi.python.org/packages/2.7/p/pyasn1-modules/pyasn1_modules-0.0.6-py2.7.egg#md5=c5d2ed9c850538f57effed3c7b74bbfb
Processing pyasn1_modules-0.0.6-py2.7.egg
creating /home/bb-tahoe/bb-tahoe/memcheck-32/build/support/lib/python2.7/site-packages/pyasn1_modules-0.0.6-py2.7.egg
Extracting pyasn1_modules-0.0.6-py2.7.egg to /home/bb-tahoe/bb-tahoe/memcheck-32/build/support/lib/python2.7/site-packages
Adding pyasn1-modules 0.0.6 to easy-install.pth file

Installed /home/bb-tahoe/bb-tahoe/memcheck-32/build/support/lib/python2.7/site-packages/pyasn1_modules-0.0.6-py2.7.egg
  found pyasn1-modules 0.0.6 (/home/bb-tahoe/bb-tahoe/memcheck-32/build/support/lib/python2.7/site-packages/pyasn1_modules-0.0.6-py2.7.egg)
  adding subdependency pyasn1>=0.1.8

Need pyasn1>=0.1.4
  found pyasn1 0.1.7 (/usr/lib/python2.7/dist-packages)
  no subdependencies to add

[...]
error: Installed distribution pyasn1 0.1.7 conflicts with requirement pyasn1>=0.1.8

setuptools delenda est.

Change History (2)

comment:1 Changed at 2015-07-16T15:25:30Z by daira

  • Description modified (diff)

comment:2 Changed at 2020-01-17T16:19:13Z by exarkun

  • Resolution set to somebody else's problem
  • Status changed from new to closed

If mutable deployment environments are your thing, pip install --upgrade takes care of this now. I'd recommend not upgrading in-place, though. Wipe and re-install clean. Maybe this is awful but it's also awfully practical. And is Tahoe-LAFS really going to fix the Python package management and installation toolchain? Doubtful.

Note: See TracTickets for help on using tickets.