[Python-Dev] PEP 427: wheel

Nick Coghlan ncoghlan at gmail.com
Sat Feb 16 10:18:22 CET 2013

On Sat, Feb 16, 2013 at 2:21 PM, Daniel Holth <dholth at gmail.com> wrote:
> #. Python scripts must appear in ``scripts`` and begin with exactly
>    ``b'#!python'`` in order to enjoy script wrapper generation and
>    ``#!python`` rewriting at install time.  They may have any or no
>    extension.

For compatibility with file encoding declarations, I believe this
needs to be relaxed to starting with '#!python' in the source file
encoding, rather than strictly b'#!python' (which will only be the
case for ASCII compatible encodings).

My rationale is that installers are going to need to read the source
file encoding for the scripts anyway, otherwise they may write the
shebang line back out with the wrong encoding, potentially leading to
decoding errors when attempting to run the script.

> #. ``{distribution}-{version}.dist-info/METADATA`` is Metadata version 1.1
>    or greater (PEP 314, PEP 345, PEP 426) format metadata.

I suggest removing the PEP references here and simply saying "is
Metadata version 1.1 or greater format metadata"

> #. ``Wheel-Version`` is the version number of the Wheel specification.
>    ``Generator`` is the name and optionally the version of the software
>    that produced the archive. ``Root-Is-Purelib`` is true if the top
>    level directory of the archive should be installed into purelib;
>    otherwise the root should be installed into platlib. ``Tag`` is the
>    wheel's expanded compatibility tags; in the example the filename would
>    contain ``py2.py3-none-any``. ``Build`` is the build number and is
>    omitted if there is no build number.

I suggest breaking these out into separate bullet points (they're a
bit hard to read as they stand)

Aside from those minor issues, the current version of the spec looks
fine to me - upload those fixes and I will accept it. If we later need
to define wheel 1.1 or 2.0 to handle additional situations, well,
that's why it's a versioned format :)


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list