Version conflict for uproot-methods dependence
Hi,
since some time last week, I have been encountering a new version conflict when trying to use uproot. I am pip-installing uproot as a dependency to another package (coffea==0.6.37). The installation goes fine, but then when you try to use uproot, the following error occurs:
pkg_resources.ContextualVersionConflict: (uproot-methods 0.9.1 (/opt/hostedtoolcache/Python/3.6.12/x64/lib/python3.6/site-packages), Requirement.parse('uproot-methods<0.9.0,>=0.7.0'), {'uproot'})
"uproot 3.13.1 requires uproot-methods<0.9.0,>=0.7.0, but you'll have uproot-methods 0.9.1 which is incompatible."
So somehow pip installs uproot-methods 0.9.1, although uproot seems to require <0.9.0. I am having trouble understanding why pip would not notice this discrepancy at install time. I cannot quite reproduce this issue in a clean environment, which makes me think that this somehow subtly depends on the installation method + environment (hence the lack of a working example).
Are others encountering something similar? Any advice on how to better understand this problem would be appreciated.
Thanks
@gordonwatts ran into this, too. It's because "uproot-methods<9.0" requires "awkward" and "uproot-methods>=9.0" requires "awkward0", the new name for the old library. I've been thinking about what to do with it, and here is what I was planning to do, first thing today:
- Introduce "uproot3-methods" as part of the "awkward0" → "uproot3-methods" → "uproot3" dependency chain.
- Yank the versions of "uproot-methods" from PyPI that aren't part of the "awkward" → "uproot-methods" → "uproot" chain, though the latest releases of these must also specify "awkward<1.0".
What you can do now is "pip uninstall uproot-methods" from your system, since it's lingering old versions that are causing the trouble.
This should be fixed now: requesting
pip install uproot3
should pull in uproot3, uproot3-methods, and awkward0, none of which can be confused with old packages named uproot, uproot-methods, or awkward on your system.
The contents of the packages named uproot and awkward are about to be replaced with Uproot 4 and Awkward 1 (with appropriate version numbers) today, so maybe this wouldn't have been an issue for people who update outside of the transition period, but I don't see how it could hurt. After all, the name "uproot3-methods" should make it clear that it won't work with Uproot 4.
@jpivarski thanks for following up so quickly! The issue indeed seems gone now.