[Distutils] inconsistency between PEP425 and wheel tags

Vinay Sajip vinay_sajip at yahoo.co.uk
Tue Jan 21 19:51:40 CET 2014

It's easy enough to change in distlib, but the use of "probably" in that PyPy-specific sentence in PEP 425 makes that statement as a whole less than definitive. Indeed, the clear specification is to use py_version_nodot,  which on PyPy 1.9 at least gives me '27'. So, if we should be using the PyPy version number, I think PEP 425 should explicitly say something like

On PyPy, use ''.join(sys.pypy_version_info[:2])

Or whichever PyPy-specific API is supposed to be used to get this information, if not the one I've suggested.


Vinay Sajip

On Tue, 21/1/14, Brian Wickman <wickman at gmail.com> wrote:

 Subject: Re: [Distutils] inconsistency between PEP425 and wheel tags
 To: "Daniel Holth" <dholth at gmail.com>
 Cc: "DistUtils mailing list" <distutils-sig at python.org>
 Date: Tuesday, 21 January, 2014, 18:09
 For now I'm just using
 bdist_wheel, but the question is more focused on the
 dependency resolution side where I need to select from a
 list of compatible wheels on a remote server.  As it
 stands, I will be very unsuccessful if bdist_wheel produces
 pp27 tags and my downloader only looks for distributions
 tagged with pp22. :-)
 Happy to send out some pull requests.  pip,
 wheel and distlib all get this wrong.  AFAICT pip/wheel use
 the same pep425tags code.  Does that have a shared
 On Tue, Jan 21, 2014 at
 8:30 AM, Daniel Holth <dholth at gmail.com>
 should probably be considered a bug in bdist_wheel. I
 don't think
 there has been any movement on alternate implementations
 choosing what
 they want their PEP 425 tags to be.
 Are you implementing your own wheel generator? (neat)
 On Mon, Jan 20, 2014 at 12:28 AM, Brian Wickman <wickman at gmail.com>
 > For interpreter-specific tags PEP425 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."
 > But in practice if you build with an alternate
 interpreter you just get the
 > equivalent CPython version level, e.g.
 > pycrypto-2.6.1-pp27-none-macosx_10_7_x86_64.whl for
 PyPy 2.2.1, when the PEP
 > indicates it should be pp22.
 > As an implementer, should I follow the spec or follow
 reality?  If the
 > latter, should PEP425 be amended?
 > thanks!
 > brian
 > twitter.com/wickman
 > Distutils-SIG maillist  -  Distutils-SIG at python.org
 > https://mail.python.org/mailman/listinfo/distutils-sig
 -----Inline Attachment Follows-----
 Distutils-SIG maillist  -  Distutils-SIG at python.org

More information about the Distutils-SIG mailing list