On 2020-11-06 13:47:11 +0100 (+0100), Thierry Carrez wrote:
The weird thing is that the PyPI error message says:
"The description failed to render in the default format of reStructuredText"
while we specify:
long_description_content_type='text/markdown'
in setup.py. It looks like PyPI is ignoring our indication in setup.py, and therefore (accurately) reporting failure to render in RST. [...]
After nearly hitting bedrock, I think I've dug down far enough to figure this one out: Between the working and failing uploads, we switched our CI system to install the wheel module from distro packaging rather than from PyPI by default. Since the recent build was performed on an Ubuntu 18.04 LTS instance, it used the available python3-wheel 0.30.0-0.2 available there. As wheel did not introduce support for Python packaging metadata version 2.1 until its 0.31.0 release, the failing upload declared "Metadata-Version: 2.0" in the METADATA file. This seems to cause the "Description-Content-Type: text/markdown" line (first introduced in the metadata 2.1 specification) to be ignored and fall back to assuming the long description is in the reStructuredText default. I propose we switch release jobs to run on an ubuntu-focal nodeset, as most official OpenStack jobs did already during the Victoria cycle. This will result in using python3-wheel 0.34.2-1 which is plenty new enough to support the necessary metadata version. If for some reason running release jobs for older stable branches on a newer distro causes issues, we can try to make use of Zuul's new branch-guessing mechanism for Git tags to create job variants running stable point releases for older branches on the older nodeset. -- Jeremy Stanley