<div dir="ltr">IIUC PEP 345, the predecessor of PEP 426, replaced Requires with Requires-Dist because the former was never very well specified, easier to re-name the field rather than redefine it. bdist_wheel's egg-info conversion assumes the only useful requirements are in the setuptools requires.txt. It would make sense to go ahead and delete the obsolete fields, I'm sure they were overlooked because they are not common in the wild.<div><br></div><div>From PEP 345:</div><div><ul class="inbox-inbox-simple" style="box-sizing:border-box;margin:0px 0px 1.3125em 1.5em;padding:0px;border:0px;font-variant-numeric:inherit;font-stretch:inherit;font-size:15px;line-height:1.875;font-family:sourcesansproregular,arial,sans-serif;vertical-align:baseline;list-style:square;color:rgb(68,68,68);background-color:rgb(249,249,249)"><li style="box-sizing:border-box;margin:0.2625em 0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:1.65em;font-family:inherit;vertical-align:baseline">Deprecated fields:<ul style="box-sizing:border-box;margin:0px 0px 0px 1.5em;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:1.875;font-family:inherit;vertical-align:baseline;list-style:square"><li style="box-sizing:border-box;margin:0.2625em 0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:1.65em;font-family:inherit;vertical-align:baseline">Requires (in favor of Requires-Dist)</li><li style="box-sizing:border-box;margin:0.2625em 0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:1.65em;font-family:inherit;vertical-align:baseline">Provides (in favor of Provides-Dist)</li><li style="box-sizing:border-box;margin:0.2625em 0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;line-height:1.65em;font-family:inherit;vertical-align:baseline">Obsoletes (in favor of Obsoletes-Dist)</li></ul></li></ul></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Feb 15, 2017 at 10:31 AM Vinay Sajip <<a href="mailto:vinay_sajip@yahoo.co.uk">vinay_sajip@yahoo.co.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> the full METADATA format is documented in the pre-JSON revision of PEP 426.<br class="gmail_msg">
<br class="gmail_msg">
Can you confirm which exact revision in the PEPs repo you mean? I could guess at<br class="gmail_msg">
0451397. That version does not refer to a field "Requires" (rather, the more recent<br class="gmail_msg">
"Requires-Dist"). Your conversion function reads the existing PKG-INFO, updates the<br class="gmail_msg">
Metadata-Version, and adds "Provides-Dist" and "Requires-Dist". It does not check<br class="gmail_msg">
whether the result conforms to that version of the PEP. For example, in the presence<br class="gmail_msg">
of "Requires" in PKG-INFO, you add "Requires-Dist", possibly leading to an ambiguity,<br class="gmail_msg">
because they sort of mean the same thing but could contain conflicting information<br class="gmail_msg">
(for example, different version constraints). The python-dateutils wheel which Jim<br class="gmail_msg">
referred to contained both "Requires" and "Requires-Dist" fields in its METADATA<br class="gmail_msg">
file, and, faced with a metadata set with both fields, the old packaging code used<br class="gmail_msg">
by distlib to handle the different metadata versions raised a "Unknown metadata set"<br class="gmail_msg">
error. In the face of ambiguity, it's refusing the temptation to guess :-)<br class="gmail_msg">
<br class="gmail_msg">
If the conversion function adds "Requires-Dist" but doesn't remove "Requires", I'm not<br class="gmail_msg">
sure it conforms to that version of the PEP.<br class="gmail_msg">
<br class="gmail_msg">
Regards,<br class="gmail_msg">
<br class="gmail_msg">
Vinay Sajip<br class="gmail_msg">
</blockquote></div>