phalt / swapi

*NOT MAINTAINED - NO GUARENTEE TO BE UP*
https://phalt.github.io/pokeapi-and-swapi-going-forward/
BSD 3-Clause "New" or "Revised" License
892 stars 507 forks source link

Installation fails due to conflicting keen version #130

Open NeolithEra opened 5 years ago

NeolithEra commented 5 years ago

Hi, users are unable to run swapi due to dependency conflict with keen package. As shown in the following full dependency graph of swapi, swapi requires keen==0.3.7,while django-keen==0.1.3 requires keen==0.3.0.

According to pip’s “first found wins” installation strategy, keen==0.3.7 is the actually installed version. However, keen==0.3.7 does not satisfy keen==0.3.0.

Dependency tree------

swapi(version range:)
| +-dj-database-url(version range:==0.3.0)
| +-dj-stripe(version range:==0.3.5)
| +-django(version range:==1.7.4)
| +-django-braces(version range:==1.4.0)
| +-django-clear-cache(version range:==0.3)
| | +-Django(version range:>=1.0)
| +-django-cors-headers(version range:==1.0.0)
| +-django-heroku-memcacheify(version range:==0.8)
| +-django-jsonfield(version range:==0.9.13)
| +-django-keen(version range:==0.1.3)
| | +-keen(version range:==0.3.0)
| | | +-requests(version range:)
| | | | +-chardet(version range:>=3.0.2,<3.1.0)
| | | | +-idna(version range:>=2.5,<2.9)
| | | | +-urllib3(version range:>=1.21.1,<1.26)
| | | | +-certifi(version range:>=2017.4.17)
| | | +-pycrypto(version range:)
| | | +-Padding(version range:)
| | +-django(version range:>=1.6)
| +-django-markdown-deux(version range:==1.0.5)
| | +-markdown2(version range:)
| +-django-model-utils(version range:==2.2)
| +-django-postgrespool(version range:==0.3.0)
| +-django-pylibmc(version range:==0.5.0)
| +-djangorestframework(version range:==3.0.0)
| +-drf-json-api(version range:==0.1.0)
| +-gunicorn(version range:==19.1.1)
| +-keen(version range:==0.3.7)
| +-markdown2(version range:==2.3.0)
| +-padding(version range:==0.4)
| +-psycopg2(version range:==2.5.4)
| +-pycrypto(version range:==2.6.1)
| +-pylibmc(version range:==1.4.1)
| +-requests(version range:==2.5.1)
| +-six(version range:==1.8.0)
| +-sqlalchemy(version range:==0.9.8)
| +-stripe(version range:==1.19.1)
| +-whitenoise(version range:==1.0.3)
| +-wsgiref(version range:==0.1.2)

Thanks for your help. Best, Neolith

NeolithEra commented 5 years ago

Solution

  1. Fix your direct dependency to be keen==0.3.0. I have checked this revision will not affect your downstream projects now.
  2. Remove your direct dependency keen==0.3.7, and use the version of keen transatively introduced by django-keen==0.1.3.

Which solution do you prefer, 1 or 2? @horacioh Could you help me review this issue? Please let me know your choice. I can submit a PR to solve this issue.