
Hi,
At Enthought we have been trying to use PEP 425 tags to include its metadata in our packages. It has been harder than expected because of missing information in PEP 425, and maybe inconsistencies with what pip actually does.
I think PEP 425 should be updated to take into account pip actual implementation:
1. python tag and pypy: the PEP says "the version is py_version_nodot . CPython gets away with no dot, but if one is needed the underscore _ is used instead. PyPy should probably use its own versions here pp18 , pp19 ". This is not what pip does as of version 8.1.0 for pypy. Instead, the version is python major + sys.pypy_version_info.major + sys.pypy_version_info.minor.
2. It would be nice to know how to deal with other alternative implementations as well. Would the scheme in 1. work for jython, etc... ?
3. The abi tag should at least be specified for cpython IMO. E.g. the meaning of `m`, `u` and `d` should be clearly specified.
While the PEP mentions each implementation community is welcome to use the abi tag as they wish, given that in practice it is defined in pip, I think that should be specified as well.
Do the above make sense ? If so, I could spend some time to update it (or create a new amending PEP ?)
thanks, David

On 11 March 2016 at 19:41, David Cournapeau cournape@gmail.com wrote:
Hi,
At Enthought we have been trying to use PEP 425 tags to include its metadata in our packages. It has been harder than expected because of missing information in PEP 425, and maybe inconsistencies with what pip actually does.
I think PEP 425 should be updated to take into account pip actual implementation:
- python tag and pypy: the PEP says "the version is py_version_nodot .
CPython gets away with no dot, but if one is needed the underscore _ is used instead. PyPy should probably use its own versions here pp18 , pp19 ". This is not what pip does as of version 8.1.0 for pypy. Instead, the version is python major + sys.pypy_version_info.major + sys.pypy_version_info.minor.
- It would be nice to know how to deal with other alternative
implementations as well. Would the scheme in 1. work for jython, etc... ?
- The abi tag should at least be specified for cpython IMO. E.g. the
meaning of `m`, `u` and `d` should be clearly specified.
While the PEP mentions each implementation community is welcome to use the abi tag as they wish, given that in practice it is defined in pip, I think that should be specified as well.
Do the above make sense ? If so, I could spend some time to update it (or create a new amending PEP ?)
Proposed errrata & minor admentments for PEP 425 can be submitted as a PyPUG issue with a PR against https://packaging.python.org/en/latest/specifications/#platform-compatibilit...
(the actual technical details of the proposed changes should still be discussed here)
This does remind me I have unfinished work in officially amending that spec management process, though: https://github.com/pypa/pypa.io/issues/11#issuecomment-195412332
Regards, Nick.

On Fri, Mar 11, 2016 at 3:26 PM, Nick Coghlan ncoghlan@gmail.com wrote:
On 11 March 2016 at 19:41, David Cournapeau cournape@gmail.com wrote:
Hi,
At Enthought we have been trying to use PEP 425 tags to include its
metadata
in our packages. It has been harder than expected because of missing information in PEP 425, and maybe inconsistencies with what pip actually does.
I think PEP 425 should be updated to take into account pip actual implementation:
- python tag and pypy: the PEP says "the version is py_version_nodot .
CPython gets away with no dot, but if one is needed the underscore _ is
used
instead. PyPy should probably use its own versions here pp18 , pp19 ".
This
is not what pip does as of version 8.1.0 for pypy. Instead, the version
is
python major + sys.pypy_version_info.major + sys.pypy_version_info.minor.
- It would be nice to know how to deal with other alternative
implementations as well. Would the scheme in 1. work for jython, etc... ?
- The abi tag should at least be specified for cpython IMO. E.g. the
meaning of `m`, `u` and `d` should be clearly specified.
While the PEP mentions each implementation community is welcome to use
the
abi tag as they wish, given that in practice it is defined in pip, I
think
that should be specified as well.
Do the above make sense ? If so, I could spend some time to update it (or create a new amending PEP ?)
Proposed errrata & minor admentments for PEP 425 can be submitted as a PyPUG issue with a PR against
https://packaging.python.org/en/latest/specifications/#platform-compatibilit...
(the actual technical details of the proposed changes should still be discussed here)
Up: would it help doing the PR first as a basic for discussion ?

On 21 March 2016 at 23:16, David Cournapeau cournape@gmail.com wrote:
On Fri, Mar 11, 2016 at 3:26 PM, Nick Coghlan ncoghlan@gmail.com wrote:
Proposed errrata & minor admentments for PEP 425 can be submitted as a PyPUG issue with a PR against
https://packaging.python.org/en/latest/specifications/#platform-compatibilit...
(the actual technical details of the proposed changes should still be discussed here)
Up: would it help doing the PR first as a basic for discussion ?
Yep, having something lighter than a PEP to track the specifics of proposed changes was one of the key intended benefits of changing the process.
Cheers, Nick.
P.S. Note I'll be on vacation and deliberately laptop free for a week starting Friday though.
participants (2)
-
David Cournapeau
-
Nick Coghlan