[Distutils] PEP 527 - Removing Un(der)used file types/extensions on PyPI

Donald Stufft donald at stufft.io
Thu Aug 25 12:11:40 EDT 2016

> On Aug 25, 2016, at 11:46 AM, M.-A. Lemburg <mal at egenix.com> wrote:
> You may not be aware, but developers that work on both Windows
> and Unix often have two sets of source code packages: one using
> Windows line ends, the other using Unix ones.
> The Windows ones can also include code which is only relevant
> on Windows while the Unix one includes parts that are only used
> on Unix, so having two sets (ZIP for Windows and .tar.gz for Unix)
> is a natural way to distribute your source code for those two
> target systems.
> Standardizing on two sdist formats is fine, but artificially
> limiting this to just one sdist upload removes useful
> functionality.

Well, except this doesn’t actually work in practice and anyone
doing this has a broken sdist. Neither pip nor setuptools is going
to consider a ``.tar.gz`` as a “Linux” sdist nor a ``.zip`` as a
“Windows” sdist and which one they happen to pick is basically an
implementation detail (in the latest version of pip, it’ll use
whichever one appears first in the /simple/<whatever>/ page.

In fact people doing this (which I am entirely sure is not common,
but I’m sure there is someone doing it) are likely to be the cause
of the weird issues that this part of the PEP is attempting to
prevent. Someone who happens to get the “Windows” sdist on Linux
and then is incredibly confused when it doesn’t have the Linux pieces
they need (and remember, none of the tooling supports the idea that
.tar.gz is for Linux and .zip is for Windows, so who knows which one
they’ll get). Of course, if the only difference is Windows vs Unix
line endings it’ll be ~roughly fine because Unix line endings work
fine on Windows, and Windows line endings work fine on Unix, but
shipping line ending differences to the correct OS is not a good
enough reason to keep this.

Donald Stufft

More information about the Distutils-SIG mailing list