[Python-Dev] Fwd: PEP 426 is now the draft spec fordistribution metadata 2.0 (original) (raw)

Daniel Holth dholth at gmail.com
Tue Feb 19 14:29:54 CET 2013


On Feb 19, 2013 6:57 AM, <a.cavallo at cavallinux.eu> wrote:

> I've never seen environment markers being used or supported > in the wild. > > I'm not against modernizing the format, but given that version 1.2 > has been out for around 8 years now, without much following, > I think we need to make the implementation bit a requirement > before accepting the PEP.

Elephant in the room? Somethin's been around for so long and hasn't got any sort of mainstream support is not a good candidate for a requirement but maybe it's me being naive.

I think 1.2 was started and then amended over a long period of time to become what it is today. I wanted to edit it again just to add Provides-Extra. It turned out to be more practical to make a new PEP. Nick explains that for complicated reasons the implementation of Metadata 1.2 was not successful. For Metadata 2.0 we had a different strategy: put it into distribute first. You will find that this aids adoption. distlib will provide another implementation that is in many ways interchangeable.

We also have three implementations of an installer for the related wheel format, three implementations of the wheel builder, and two surprisingly short implementations of environment markers. Yes, the wheel project has the same name as the wheel format.

Metadata 2.0's Provides-Extra field is there to represent the setuptools "extras" feature which is necessary for a very large number of distributions on pypi. For a while the most common environment markers will look like just "extra == 'foo'". So it should not be surprising that distribute is the first tool to recognize Provides-Extra. Previously distribute did not use METADATA / PKG-INFO for dependencies, instead reading from requires.txt

If you can get around the fact that we've incorporated most of another PEP 386 into v2.0, rewritten and explained everything to death, I would argue that 2.0 is actually simpler than 1.2. Only four headers are actually required in a valid Metadata 2.0 file and a number of the fields are informational and do not have to be understood by the installer. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130219/c75f2923/attachment.html>



More information about the Python-Dev mailing list