On Wed, Aug 15, 2012 at 8:49 AM, Daniel Holth
I've drafted some edits to Metadata 1.2 with valuable feedback from distutils-sig (special thanks to Erik Bray), which seems to have no more comments on the issue after about 6 weeks. Let me know if you have an opinion, or if you will have one during some bounded time in the future.
Metadata 1.2 (PEP 345), a non-final PEP that has been adopted by approximately 10 of the latest sdists from pypy, cannot represent the setuptools "extras" (optional dependencies) feature. This is a problem because about 1600+ or 10% of the packages hosted on pypy define "extras" as measured in May of this year.
The edit implements the extras feature by adding a new condition "extra == 'name'" to the Metadata 1.2 environment markers. Requirements with this marker are only installed when the named optional feature is requested. Valid extras for a package must be declared with Provides-Extra: name.
It also adds Setup-Requires-Dist as a way to specify requirements needed during an install as opposed to during runtime.
Abbreviated highlights:
Setup-Requires-Dist (multiple use)
Like Requires-Dist, but names dependencies needed while the distributions's distutils / packaging `setup.py` / `setup.cfg` is run.
Provides-Extra (multiple use)
A string containing the name of an optional feature.
Examples:
Requires-Dist: reportlab; extra == 'pdf'
Requires-Dist: nose; extra == 'test'
Requires-Dist: sphinx; extra == 'doc'
(full changeset on https://bitbucket.org/dholth/python-peps/changeset/537e83bd4068)
s/pypy/PyPI/ -eric