[Distutils] distlib and wheel metadata
vinay_sajip at yahoo.co.uk
Wed Feb 15 10:31:04 EST 2017
> the full METADATA format is documented in the pre-JSON revision of PEP 426.
Can you confirm which exact revision in the PEPs repo you mean? I could guess at
0451397. That version does not refer to a field "Requires" (rather, the more recent
"Requires-Dist"). Your conversion function reads the existing PKG-INFO, updates the
Metadata-Version, and adds "Provides-Dist" and "Requires-Dist". It does not check
whether the result conforms to that version of the PEP. For example, in the presence
of "Requires" in PKG-INFO, you add "Requires-Dist", possibly leading to an ambiguity,
because they sort of mean the same thing but could contain conflicting information
(for example, different version constraints). The python-dateutils wheel which Jim
referred to contained both "Requires" and "Requires-Dist" fields in its METADATA
file, and, faced with a metadata set with both fields, the old packaging code used
by distlib to handle the different metadata versions raised a "Unknown metadata set"
error. In the face of ambiguity, it's refusing the temptation to guess :-)
If the conversion function adds "Requires-Dist" but doesn't remove "Requires", I'm not
sure it conforms to that version of the PEP.
More information about the Distutils-SIG