Potential dependency conflicts between agfusion and numpy
NeolithEra opened this issue · comments
Hi, as shown in the following full dependency graph of agfusion, pyensembl requires numpy >=1.7 , while the installed version of gtfparse(1.2.0) requires numpy >=1.7,<2.0.
According to Pip's “first found wins” installation strategy, numpy 1.18.0 is the actually installed version.
Although the first found package version numpy 1.18.0 just satisfies the later dependency constraint (numpy >=1.7,<2.0), it will lead to a build failure once developers release a newer version of numpy .
Dependency tree--------
agfusion - 1.252
| +- biopython(install version:1.76 version range:>=1.67)
| +- future(install version:0.18.2 version range:>=0.16.0)
| +- matplotlib(install version:3.2.0rc1 version range:>=1.5.0)
| | +- cycler(install version:0.10.0 version range:>=0.10)
| | | +- six(install version:1.13.0 version range:*)
| | +- kiwisolver(install version:1.1.0 version range:>=1.0.1)
| | | +- setuptools(install version:42.0.2 version range:*)
| | +- numpy(install version:1.18.0 version range:>=1.11)
| | +- pyparsing(install version:2.4.5 version range:>=2.0.1)
| | +- python-dateutil(install version:2.8.1 version range:>=2.1)
| +- pandas(install version:0.25.3 version range:>=0.18.1)
| +- pyensembl(install version:1.8.4 version range:>=1.1.0)
| | +- datacache(install version:1.1.5 version range:>=1.1.4)
| | | +- appdirs(install version:1.4.3 version range:>=1.4.0)
| | | +- mock(install version:3.0.5 version range:*)
| | | +- pandas(install version:0.25.3 version range:>=0.15.2)
| | | +- progressbar33(install version:2.4 version range:>=2.4)
| | | +- requests(install version:2.22.0 version range:>=2.5.1)
| | | | +- certifi(install version:2019.11.28 version range:>=2017.4.17)
| | | | +- chardet(install version:3.0.4 version range:<3.1.0,>=3.0.2)
| | | | +- idna(install version:2.8 version range:>=2.5,<2.9)
| | | | +- urllib3(install version:1.25.7 version range:<1.26,>=1.21.1)
| | | +- typechecks(install version:0.1.0 version range:>=0.0.2)
| | +- gtfparse(install version:1.2.0 version range:>=1.1.0)
| | | +- numpy(install version:1.18.0 version range:>=1.7,<2.0)
| | | +- pandas(install version:0.25.3 version range:>=0.15)
| | +- memoized-property(install version:1.0.3 version range:>=1.0.2)
| | +- numpy(install version:1.18.0 version range:>=1.7)
| | +- pandas(install version:0.25.3 version range:>=0.15)
| | +- serializable(install version:0.2.1 version range:*)
| | +- six(install version:1.13.0 version range:>=1.9.0)
| | +- tinytimer(install version:0.0.0 version range:*)
| | +- typechecks(install version:0.1.0 version range:>=0.0.2)
Thanks for your attention.
Best,
Neolith
Suggested Solution
- Ask your upstream project pyensembl to fix his direct dependencies to be numpy<2.0.
- Ask your upstream project gtfparse to loose the version range of numpy to be >=1.7.
@murphycj Which solution do you prefer, 1 or 2?
Please let me know your choice. May I pull a request to solve this issue?