Opened at 2015-07-16T15:24:00Z
Closed at 2020-01-17T16:19:13Z
#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.