Egg distributions make up a tiny fraction of the overall number of distributions uploaded to PyPI (under 0.2%), and have been deprecated by other components of the packaging ecosystem (pip, setuptools, etc.) for years;
Egg distributions are effectively a non-standard legacy alternative to the other built distribution format that PyPI supports (wheels), meaning that its continued presence represents a source of potential user confusion about which format is better defined and encouraged by the broader ecosystem.
To summarize the proposed changes:
I propose that we consider bdist_egg and .egg deprecated on PyPI and enable a 1-month deprecation period, similar to what was done with PEP 527;
After the deprecation period, PyPI should cease to accept uploads of egg distributions;
Existing distributions are not affected, meaning that PyPI will continue to serve any egg distributions uploaded before and during the deprecation period.
The PEP also enumerates some methods for communicating this change, including emailing every maintainer of every project that has uploaded an egg distribution since January 1 2023, emailing every maintainer whose project uploads an egg during the deprecation period, and posting a notice to the PyPI blog.
Of these, I believe the only ones that will still be accepted after PEP 715 is implemented would be .tar.gz, .zip and .whl (the uppercase .ZIP is a single file from 2015, presumably incorrectly named). Is that correct? And would it be worth documenting that explicitly somewhere?
I believe the only ones that will still be accepted after PEP 715 is implemented would be .tar.gz , .zip and .whl (the uppercase .ZIP is a single file from 2015, presumably incorrectly named). Is that correct?
That’s my understanding as well!
I can make that explicit in this PEP, if you think that makes sense – PEP 527 does something similar with the filetypes/extensions that it deprecated.
Beyond that, maybe it makes sense to update the PyPUG documentation around support? The current section on uploading to PyPI is somewhat sparse (and doesn’t mention which filetypes are supported at all): Packaging and distributing projects - Python Packaging User Guide
I’m +1 on this PEP, I think it’s long been time for PyPI to drop support for the egg format unless someone comes forward with a compelling use case to delay it.
@dstufft is listed as the PEP-Delegate here, so there’s no need to get the Steering Council involved. If you feel it is ready for resolution, and he agrees, then simply let him know and he’ll go ahead, do a final review and approve it, and you can then update the PEP accordingly—though it might be best to wait another 12 hours for any last objections/comments, so the discussion thread is open for an even two weeks.
Tying things together: PyPI has merged the first part of PEP 715’s specified behavior, meaning that the deprecation period has begun (and will end on 2023-08-01).