thombashi / pingparsing

pingparsing is a CLI-tool/Python-library parser and transmitter for ping command :arrow_right_hook:
https://pingparsing.rtfd.io/
MIT License
78 stars 10 forks source link

Potential dependency conflicts between pingparsing and typepy #36

Closed NeolithEra closed 4 years ago

NeolithEra commented 4 years ago

Hi, as shown in the following full dependency graph of pingparsing, pingparsing requires typepy >=0.6.4,<2, pingparsing requires humanreadable <1,>=0.1.0 (humanreadable 0.1.0 will be installed, i.e., the newest version satisfying the version constraint), and directed dependency humanreadable 0.1.0 transitively introduces typepy >=0.6.4,<2.

Obviously, there are multiple version constraints set for typepy in this project. However, according to pip's “first found wins” installation strategy, typepy 1.1.1 (i.e., the newest version satisfying constraint >=0.6.4,<2) is the actually installed version.

Although the first found package version typepy 1.1.1 just satisfies the later dependency constraint (typepy >=0.6.4,<2), such installed version is very close to the upper bound of the version constraint of typepy specified by humanreadable 0.1.0.

Once humanreadable upgrades,its newest version will be installed, as pingparsing does not specify the upper bound of version constraint for humanreadable. Therefore, it will easily cause a dependency conflict (build failure), if the upgraded humanreadable version introduces a higher version of typepy, violating its another version constraint >=0.6.4,<2.

According to the release history of humanreadable, it habitually upgrates Typepy in its recent releases. For instance, humanreadable 0.0.5 upgrated Typepy’s constraint from >=0.4.0,<1.0.0 to >=0.4.2,<1.0.0,humanreadable 0.0.7 upgrated Typepy’s constraint from >=0.4.2,<1.0.0 to >=0.6.0,<1.0.0 and humanreadable 0.0.8 upgrated Typepy’s constraint from >=0.6.0,<1.0.0 to >=0.6.4,<2.

As such, it is a warm warning of a potential dependency conflict issue for pingparsing.

Dependency tree

pingparsing  - 1.0.1
| +- humanreadable(install version:0.1.0 version range:<1,>=0.1.0)
| | +- pytest(install version:5.4.1 version range:*)
| | | +- atomicwrites(install version:1.3.0 version range:>=1.0)
| | | +- attrs(install version:19.3.0 version range:>=17.4.0)
| | | +- colorama(install version:0.4.3 version range:*)
| | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | +- more-itertools(install version:8.2.0 version range:>=4.0.0)
| | | +- packaging(install version:20.3 version range:*)
| | | +- pathlib2(install version:2.3.5 version range:>=2.2.0)
| | | | +- six(install version:1.14.0 version range:*)
| | | +- pluggy(install version:0.13.1 version range:>=0.12,<1.0)
| | | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | +- py(install version:1.8.1 version range:>=1.5.0)
| | | +- wcwidth(install version:0.1.9 version range:*)
| | +- typepy(install version:1.1.1 version range:>=0.6.4,<2)
| +- pyparsing(install version:2.4.7 version range:>=2.0.3,<3)
| +- pytest(install version:5.4.1 version range:*)
| | +- atomicwrites(install version:1.3.0 version range:>=1.0)
| | +- attrs(install version:19.3.0 version range:>=17.4.0)
| | +- colorama(install version:0.4.3 version range:*)
| | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | +- more-itertools(install version:8.2.0 version range:>=4.0.0)
| | +- packaging(install version:20.3 version range:*)
| | +- pathlib2(install version:2.3.5 version range:>=2.2.0)
| | | +- six(install version:1.14.0 version range:*)
| | +- pluggy(install version:0.13.1 version range:>=0.12,<1.0)
| | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | +- py(install version:1.8.1 version range:>=1.5.0)
| | +- wcwidth(install version:0.1.9 version range:*)
| +- simplejson(install version:3.17.0 version range:*)
| +- sphinx(install version:3.0.1 version range:*)
| | +- alabaster(install version:0.7.12 version range:>=0.7,<0.8)
| | +- babel(install version:2.8.0 version range:>=1.3)
| | | +- pytz(install version:2019.3 version range:>=2015.7)
| | +- docutils(install version:0.16 version range:>=0.12)
| | +- imagesize(install version:1.2.0 version range:*)
| | +- Jinja2(install version:2.11.2 version range:>=2.3)
| | | +- MarkupSafe(install version:2.0.0a1 version range:>=0.23)
| | +- packaging(install version:20.3 version range:*)
| | +- Pygments(install version:2.6.1 version range:>=2.0)
| | +- requests(install version:2.23.0 version range:>=2.5.0)
| | | +- certifi(install version:2020.4.5.1 version range:>=2017.4.17)
| | | +- chardet(install version:3.0.4 version range:>=3.0.2,<4)
| | | +- idna(install version:2.9 version range:>=2.5,<3)
| | | +- urllib3(install version:1.25.9 version range:>=1.21.1,<1.26)
| | +- setuptools(install version:46.1.3 version range:*)
| | +- snowballstemmer(install version:2.0.0 version range:>=1.1)
| | +- sphinxcontrib-applehelp(install version:1.0.2 version range:*)
| | +- sphinxcontrib-devhelp(install version:1.0.2 version range:*)
| | +- sphinxcontrib-htmlhelp(install version:1.0.3 version range:*)
| | +- sphinxcontrib-jsmath(install version:1.0.1 version range:*)
| | +- sphinxcontrib-qthelp(install version:1.0.3 version range:*)
| | +- sphinxcontrib-serializinghtml(install version:1.1.4 version range:*)
| +- sphinx-rtd-theme(install version:0.4.3 version range:*)
| | +- sphinx(install version:3.0.1 version range:*)
| | | +- alabaster(install version:0.7.12 version range:>=0.7,<0.8)
| | | +- babel(install version:2.8.0 version range:>=1.3)
| | | | +- pytz(install version:2019.3 version range:>=2015.7)
| | | +- docutils(install version:0.16 version range:>=0.12)
| | | +- imagesize(install version:1.2.0 version range:*)
| | | +- Jinja2(install version:2.11.2 version range:>=2.3)
| | | | +- MarkupSafe(install version:2.0.0a1 version range:>=0.23)
| | | +- packaging(install version:20.3 version range:*)
| | | +- Pygments(install version:2.6.1 version range:>=2.0)
| | | +- requests(install version:2.23.0 version range:>=2.5.0)
| | | | +- certifi(install version:2020.4.5.1 version range:>=2017.4.17)
| | | | +- chardet(install version:3.0.4 version range:>=3.0.2,<4)
| | | | +- idna(install version:2.9 version range:>=2.5,<3)
| | | | +- urllib3(install version:1.25.9 version range:>=1.21.1,<1.26)
| | | +- setuptools(install version:46.1.3 version range:*)
| | | +- snowballstemmer(install version:2.0.0 version range:>=1.1)
| | | +- sphinxcontrib-applehelp(install version:1.0.2 version range:*)
| | | +- sphinxcontrib-devhelp(install version:1.0.2 version range:*)
| | | +- sphinxcontrib-htmlhelp(install version:1.0.3 version range:*)
| | | +- sphinxcontrib-jsmath(install version:1.0.1 version range:*)
| | | +- sphinxcontrib-qthelp(install version:1.0.3 version range:*)
| | | +- sphinxcontrib-serializinghtml(install version:1.1.4 version range:*)
| +- subprocrunner(install version:1.2.1 version range:<2,>=1.1.0)
| | +- mbstrdecoder(install version:1.0.0 version range:>=1.0.0,<2)
| | | +- chardet(install version:3.0.4 version range:<4,>=3.0.4)
| | | +- faker(install version:4.0.3 version range:>=1.0.2)
| | | | +- python-dateutil(install version:2.8.1 version range:>=2.4)
| | | | +- text-unidecode(install version:1.3 version range:==1.3)
| | | +- pytest(install version:5.4.1 version range:*)
| | | | +- atomicwrites(install version:1.3.0 version range:>=1.0)
| | | | +- attrs(install version:19.3.0 version range:>=17.4.0)
| | | | +- colorama(install version:0.4.3 version range:*)
| | | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | | +- more-itertools(install version:8.2.0 version range:>=4.0.0)
| | | | +- packaging(install version:20.3 version range:*)
| | | | +- pathlib2(install version:2.3.5 version range:>=2.2.0)
| | | | +- pluggy(install version:0.13.1 version range:>=0.12,<1.0)
| | | | +- py(install version:1.8.1 version range:>=1.5.0)
| | | | +- wcwidth(install version:0.1.9 version range:*)
| | +- pytest(install version:5.4.1 version range:*)
| | | +- atomicwrites(install version:1.3.0 version range:>=1.0)
| | | +- attrs(install version:19.3.0 version range:>=17.4.0)
| | | +- colorama(install version:0.4.3 version range:*)
| | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | +- more-itertools(install version:8.2.0 version range:>=4.0.0)
| | | +- packaging(install version:20.3 version range:*)
| | | +- pathlib2(install version:2.3.5 version range:>=2.2.0)
| | | | +- six(install version:1.14.0 version range:*)
| | | +- pluggy(install version:0.13.1 version range:>=0.12,<1.0)
| | | | +- importlib-metadata(install version:1.6.0 version range:>=0.12)
| | | +- py(install version:1.8.1 version range:>=1.5.0)
| | | +- wcwidth(install version:0.1.9 version range:*)
| | +- typepy(install version:1.1.1 version range:*)
| +- typepy(install version:1.1.1 version range:<2,>=0.6.4)

Thanks for your help. Best, Neolith

thombashi commented 4 years ago

Thank you for your report. But I will close the issue the same reason with thombashi/ghscard#1