nteract / bookstore

📚 Notebook storage and publishing workflows for the masses
https://bookstore.readthedocs.io
BSD 3-Clause "New" or "Revised" License
202 stars 23 forks source link

Potential dependency conflicts between bookstore and aiobotocore #179

Open NeolithEra opened 4 years ago

NeolithEra commented 4 years ago

Hi, as shown in the following full dependency graph of bookstore, bookstore requires *_aiobotocore _ , while the installed version of aioboto3(6.4.1) requires _aiobotocore <0.11,>=0.10.2**_.

According to Pip's “first found wins” installation strategy, aiobotocore 0.11.0 is the actually installed version.

Although the first found package version aiobotocore 0.11.0 just satisfies the later dependency constraint (aiobotocore <0.11,>=0.10.2), it will lead to a build failure once developers release a newer version of aiobotocore.

Dependency tree--------

bookstore - 2.5.1
| +- aioboto3(install version:6.4.1 version range:*)
| | +- aiobotocore(install version:0.10.4 version range:<0.11,>=0.10.2)
| | | +- aiohttp(install version:3.6.2 version range:>=3.3.1)
| | | +- async-generator(install version:1.10 version range:>=1.10)
| | | +- botocore(install version:1.12.252 version range:<1.12.253,>=1.12.252)
| | | | +- docutils(install version:0.15.2 version range:>=0.10,<0.16)
| | | | +- jmespath(install version:0.9.4 version range:<1.0.0,>=0.7.1)
| | | +- wrapt(install version:1.11.2 version range:>=1.10.10)
| +- aiobotocore(install version:0.11.0 version range:*)
| | +- aiohttp(install version:3.6.2 version range:>=3.3.1)
| | +- async-generator(install version:1.10 version range:>=1.10)
| | +- botocore(install version:1.13.14 version range:>=1.13.14,<1.13.15)
| | | +- docutils(install version:0.15.2 version range:>=0.10,<0.16)
| | | +- jmespath(install version:0.9.4 version range:<1.0.0,>=0.7.1)
| | +- wrapt(install version:1.11.2 version range:>=1.10.10)
| +- future(install version:0.18.2 version range:*)
| +- futures(install version:3.3.0 version range:*)
| +- ipython(install version:7.9.0 version range:>=5.0)
| +- notebook(install version:6.0.2 version range:*)
| +- tornado(install version:6.0.3 version range:>=5.1.1) 

Thanks for your attention. Best, Neolith

NeolithEra commented 4 years ago

Suggested Solution

  1. Fix your direct dependencies to be aiobotocore <0.11.
  2. Ask your upstream project aioboto3 to losse the version range of aiobotocore to be >=0.10.2.

@mpacer Which solution do you prefer, 1 or 2? Please let me know your choice. May I pull a request to solve this issue?