FS#65911 - [python-docutils][python-botocore] ContextualVersionConflict

Attached to Project: Community Packages
Opened by Chih-Hsuan Yen (yan12125) - Saturday, 21 March 2020, 02:00 GMT
Last edited by Chih-Hsuan Yen (yan12125) - Friday, 24 April 2020, 07:30 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Jonathan Steel (jsteel)
Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

The latest botocore is not compatible with the latest docutils, so setuptools-based scripts that depend directly or indirectly on botocore fails. For example, this is what I got with cfn-lint from python-cfn-lint package:

$ cfn-lint
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 584, in _build_master
ws.require(__requires__)
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 901, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 792, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (docutils 0.16 (/usr/lib/python3.8/site-packages), Requirement.parse('docutils<0.16,>=0.10'), {'botocore'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/bin/cfn-lint", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3255, in <module>
def _initialize_master_working_set():
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3238, in _call_aside
f(*args, **kwargs)
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 3267, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 586, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 599, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 787, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'docutils<0.16,>=0.10' distribution was not found and is required by botocore


Additional info:
python-cfn-lint 0.28.4-1
python-botocore 1.15.18-1
python-docutils 0.16-1

There is a unmerged patch for botocore, which seems to work: https://github.com/boto/botocore/pull/1944

Steps to reproduce:
Enabling *testing repos, upgrading and run cfn-lint.
This task depends upon

Closed by  Chih-Hsuan Yen (yan12125)
Friday, 24 April 2020, 07:30 GMT
Reason for closing:  Fixed
Additional comments about closing:  python-botocore 1.15.42-2
Comment by Chih-Hsuan Yen (yan12125) - Saturday, 11 April 2020, 08:01 GMT
I have created a fix at https://github.com/boto/botocore/pull/2011, but upstream seems not so active recently...

Jonathan Steel, mind to apply my pull request before upstream merges it?
Comment by Chih-Hsuan Yen (yan12125) - Friday, 24 April 2020, 07:30 GMT
docutils 0.16 is moved to [community] [1], and cfn-lint is officially broken. I added my patch to python-botocore 1.15.42-2 to make cfn-lint work again.

[1] https://git.archlinux.org/svntogit/community.git/commit/?h=packages/docutils&id=559652df67905340eecde140ec088038d6c19074

Loading...