Just because it’s a spare-time project and that has been a bit limited during the whole Python governance stuff, I just wanted to say I’m still working on creating a package for PEP 425. The code currently lives at https://github.com/brettcannon/pep425 . At this point I have support for:
Python 3
Python 2
PyPy
PyPy3
macOS
I still have to test support for:
Linux
Windows
Once all of this is wrapped up I will try to make @dstufft happy and submit for inclusion into packaging as probably a new packaging.tags module.
Anyway, my key point is that I’m still slowly, actively working on this.
This will be awesome I think, and hopefully we can move all of the things over to using it instead. I’ll try to find some time to read over your pep425 library.
Thanks! The API is done from my perspective. I tried to keep it small to start but also to include anything I know I/people will need (e.g. parsing wheel file names).
pip currently includes the installed libc version in the User Agent; IIUC, this is useful information to pass to linehaul. I think this should also be exposed via the API of this code, in some form.
I’m not 100% sure that function belongs to the future packaging.tags (it’s not really a “tag”) but I can’t really think of a good place for it. I’ll defer to @dstufft and @brettcannon on where this can go/what it looks like.
It’d probably be useful to include context on why the code directly interfaces with libc, via ctypes, instead of using platform.libc_ver (along the lines of an existing comment in pip)
As a note to self, whenever we do switch, the note about pip < 8.1.2 libc versions being useless should probably be preserved in some discoverable place within pip itself; likely as a comment within the function that creates the user agent.
If pip is needing the information as well then maybe it can be made into a hidden function? Otherwise we can talk it over once the code is merged and figure out where it needs to exist.
Maybe, but that’s a question for the manylinux PEP authors since I just copied the code over blindly.