[Distutils] Proposal: using /etc/os-release in the "platform tag" definition for wheel files

Donald Stufft donald at stufft.io
Sat Nov 29 18:40:00 CET 2014


Binary compatibility is not something that is my strong suite, however I think
that whatever we do should be aimed at eventual support of uploading Linux
binaries to PyPI. Currently we allow Windows and OSX and from what I understand
the same Linux ABI problems can happen in those situations, it's just less
likely because of the single vendor nature of those platforms. In that vein
I don't believe we need to *solve* the Linux ABI problem generically but that
we need to get something that will most likely work.

To this end the idea of using the distro name and version sounds like a
solution that will get the Linux side of things closer to the Windows and OS X
side. I do think we should continue to support the plain linux values and
possibly we should even allow them to be uploaded to PyPI.

I had also previously though about an additional file in the metadata spec
which would encode the SOABI of each thing that has been dynamically linked
(it's my understanding that you can inspect this?) and then when pip downloads
a Wheel file it can use that file as a final and certain check of
compatability. In this way the filename would only be used to try and select
the file which is most likely to work on the system but that we can detect
once we've downloaded the file if it will or will not work and fall back to
attempt other files, possibly even the sdist.

I don't think we need to try and protect people from uploading a badly built
Wheel. If a project uploads a Wheel that has incorrect platform tags then that
is a bug in their project as long as we provide reasonable differentiators that
people can use to tag their Wheels with.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



More information about the Distutils-SIG mailing list