manheim / manheim-c7n-tools

Manheim's Cloud Custodian (c7n) wrapper package, policy generator, runner, and supporting tools.
https://manheim-c7n-tools.readthedocs.io/
Apache License 2.0
45 stars 25 forks source link

Conflicts between manheim-c7n-tools and python-dateutil #16

Closed NeolithEra closed 4 years ago

NeolithEra commented 4 years ago

Hi, users are unable to run manheim-c7n-tools due to dependency conflict with python-dateutil package. As shown in the following full dependency graph of manheim-c7n-tools, c7n-mailer requires python-dateutil >=2.8.0,while c7n requires python-dateutil >=2.6,<2.8.1.

According to pip’s “first found wins” installation strategy, python-dateutil 2.8.1 is the actually installed version. However, python-dateutil 2.8.1 does not satisfy >=2.6,<2.8.1.

Dependency tree-----------

manheim-c7n-tools - 0.8.1
| +- boto3(install version:1.10.34 version range:*)
| +- c7n(install version:0.8.45.2 version range:==0.8.45.2)
| | +- argcomplete(install version:1.10.3 version range:*)
| | +- boto3(install version:1.10.34 version range:>=1.9.228)
| | +- botocore(install version:1.13.34 version range:>=1.12.228)
| | +- certifi(install version:2019.11.28 version range:*)
| | +- jsonpatch(install version:1.24 version range:>=1.21)
| | | +- jsonpointer(install version:2.0 version range:>=1.9)
| | +- jsonschema(install version:3.2.0 version range:*)
| | +- python-dateutil(install version:2.8.0 version range:>=2.6,<2.8.1)
| | | +- six(install version:1.13.0 version range:>=1.5)
| | +- pyyaml(install version:5.2 version range:>=4.2b4)
| | +- tabulate(install version:0.8.6 version range:>=0.8.2)
| | +- urllib3(install version:1.25.7 version range:*)
| +- c7n-mailer(install version:0.5.6 version range:==0.5.6)
| | +- boto3(install version:1.10.34 version range:*)
| | +- c7n(install version:0.8.45.2 version range:*)
| | | +- argcomplete(install version:1.10.3 version range:*)
| | | +- boto3(install version:1.10.34 version range:>=1.9.228)
| | | +- botocore(install version:1.13.34 version range:>=1.12.228)
| | | +- certifi(install version:2019.11.28 version range:*)
| | | +- jsonpatch(install version:1.24 version range:>=1.21)
| | | | +- jsonpointer(install version:2.0 version range:>=1.9)
| | | +- jsonschema(install version:3.2.0 version range:*)
| | | +- python-dateutil(install version:2.8.0 version range:>=2.6,<2.8.1)
| | | | +- six(install version:1.13.0 version range:>=1.5)
| | | +- pyyaml(install version:5.2 version range:>=4.2b4)
| | | +- tabulate(install version:0.8.6 version range:>=0.8.2)
| | | +- urllib3(install version:1.25.7 version range:*)
| | +- datadog(install version:0.32.0 version range:*)
| | | +- decorator(install version:4.4.1 version range:>=3.3.2)
| | | +- requests(install version:2.22.0 version range:>=2.6.0)
| | | | +- 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)
| | +- Jinja2(install version:2.10.3 version range:*)
| | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | +- jsonschema(install version:3.2.0 version range:*)
| | +- ldap3(install version:2.6.1 version range:*)
| | +- python-dateutil(install version:2.8.1 version range:>=2.8)
| | | +- six(install version:1.13.0 version range:>=1.5)
| | +- redis(install version:3.3.11 version range:*)
| | +- ruamel.yaml(install version:0.16.5 version range:>=0.15.93)
| | +- sendgrid(install version:6.1.0 version range:>=6.0.5,<7.0)
| | | +- flask(install version:1.0.2 version range:==1.0.2)
| | | | +- click(install version:7.0 version range:>=5.1)
| | | | +- itsdangerous(install version:1.1.0 version range:>=0.24)
| | | | +- jinja2(install version:2.10.3 version range:>=2.10)
| | | | +- werkzeug(install version:0.16.0 version range:>=0.14)
| | | +- pytest(install version:3.8.2 version range:==3.8.2)
| | | +- python-http-client(install version:3.1.0 version range:==3.1.0)
| | | +- pyyaml(install version:5.2 version range:>=4.2b1)
| | | +- six(install version:1.11.0 version range:==1.11.0)
| | +- simplejson(install version:3.17.0 version range:*)
| +- docutils(install version:0.14 version range:<0.15,>=0.10)
| +- pyyaml(install version:5.2 version range:*)
| +- sphinx(install version:1.8.5 version range:<1.9.0,>=1.8.0)
| | +- alabaster(install version:0.7.12 version range:<0.8,>=0.7)
| | +- babel(install version:2.7.0 version range:>=1.3)
| | | +- pytz(install version:2019.3 version range:>=0a)
| | +- docutils(install version:0.14 version range:>=0.11)
| | +- imagesize(install version:1.1.0 version range:*)
| | +- jinja2(install version:2.10.3 version range:>=2.3)
| | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | +- packaging(install version:19.2 version range:*)
| | | +- pyparsing(install version:2.4.5 version range:>=2.0.2)
| | | +- six(install version:1.13.0 version range:*)
| | +- pygments(install version:2.5.2 version range:>=2.0)
| | +- requests(install version:2.22.0 version range:>=2.0.0)
| | | +- 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)
| | +- setuptools(install version:42.0.2 version range:*)
| | +- six(install version:1.13.0 version range:>=1.5)
| | +- snowballstemmer(install version:2.0.0 version range:>=1.1)
| | +- sphinxcontrib-websupport(install version:1.1.2 version range:*)
| +- sphinx-rtd-theme(install version:0.4.3 version range:*)
| | +- sphinx(install version:1.8.5 version range:*)
| | | +- alabaster(install version:0.7.12 version range:<0.8,>=0.7)
| | | +- babel(install version:2.7.0 version range:>=1.3)
| | | | +- pytz(install version:2019.3 version range:>=0a)
| | | +- docutils(install version:0.14 version range:>=0.11)
| | | +- imagesize(install version:1.1.0 version range:*)
| | | +- jinja2(install version:2.10.3 version range:>=2.3)
| | | | +- markupsafe(install version:1.1.1 version range:>=0.23)
| | | +- packaging(install version:19.2 version range:*)
| | | | +- pyparsing(install version:2.4.5 version range:>=2.0.2)
| | | | +- six(install version:1.13.0 version range:*)
| | | +- pygments(install version:2.5.2 version range:>=2.0)
| | | +- requests(install version:2.22.0 version range:>=2.0.0)
| | | | +- 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)
| | | +- setuptools(install version:42.0.2 version range:*)
| | | +- six(install version:1.13.0 version range:>=1.5)
| | | +- snowballstemmer(install version:2.0.0 version range:>=1.1)
| | | +- sphinxcontrib-websupport(install version:1.1.2 version range:*)
| +- tabulate(install version:0.8.6 version range:<0.9.0,>=0.8.0)

Thanks for your help. Best, Neolith

NeolithEra commented 4 years ago

Suggested Solution

Ask your upstream project c7n the version range of python-dateutil.

@jantman Could I submit a PR to solve this issue?

jantman commented 4 years ago

@NeolithEra It seems to me that the best solution to this is to open an issue on the upstream c7n project and have them ( i.e. @kapilt ) check why the dateutil constraints are set like that and possibly change them to be identical or at least non-conflicting.

Are you actively using manheim-c7n-tools, @NeolithEra ? Or if not, may I ask how you found this project and the dependency issue?

PRs are always welcome and allowed, though they may not always be merged quickly.

NeolithEra commented 4 years ago

@jantman Yes, I am an active user of manheim-c7n-tools. Also, with the help this online tool to detect this issue.

NeolithEra commented 4 years ago

@jantman I will submit a PR to the upstream c7n project. Thanks for your feedback.

jantman commented 4 years ago

@NeolithEra thank you so much for the clarification, and for bringing this to our attention.

The upstream repository for c7n is https://github.com/cloud-custodian/cloud-custodian - I should've mentioned that, since the repository name differs from the package name.

NeolithEra commented 4 years ago

@jantman Sorry for the mistake. I submitted a new issue to cloud-custodian. :-P

kapilt commented 4 years ago

this issue is actually a boto issue which is originated the need to pin here. https://github.com/boto/botocore/issues/1872

jantman commented 4 years ago

This should be fixed upstream. Closing. Thanks!