Change in PyPI upload behavior. Intentional, accidental, pebkac?

Currently, as I understand it, PyPI display names are taken from the upload request’s name field, so as long as you upload both sdist and wheel artifacts in one go, they’ll get the same display name. I don’t even know if it’s possible to upload different artifacts of the same version in multiple requests. I think it that happens, last upload wins, as it does today IIUC.

There is (currently) no such thing as uploading multiple artifacts in a single HTTP request, it’s 1 artifact per request (things like twine upload dist/* just make multiple requests under the hood).

For name specifically we use whatever the most recently uploaded artifact said the name was during the upload, since name has to be a project wide value, to allow people to rename their projects over time.

Also I don’t think we need to legislate specifics like that, I think we can communicate the intent and projects can figure out the best way match that intent given their particular circumstances.

3 Likes

I just wanted to send thanks to all involved in the discussion and resolution of the issue. I’ve been able to upload new versions of my packages, e.g. flufl.enum, and everything is working the way I would expect, from tool behavior on my desktop to the PyPI page to pip’s behavior installing both flufl.enum and flufl_enum. Much gratitude.