From fb779378cc4beeb83e557878ef7fe907b05874e6 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:02:14 -0400 Subject: [PATCH 01/23] PEP: Disabling bdist_egg uploads Signed-off-by: William Woodruff --- pep-9999.rst | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 pep-9999.rst diff --git a/pep-9999.rst b/pep-9999.rst new file mode 100644 index 00000000000..f122bbc50d1 --- /dev/null +++ b/pep-9999.rst @@ -0,0 +1,107 @@ +PEP: 9999 +Title: Disabling bdist_egg distribution uploads on PyPI +Author: William Woodruff +PEP-Delegate: Donald Stufft +Sponsor: Donald Stufft +Status: Draft +Type: Process +Topic: Packaging +Content-Type: text/x-rst +Created: 06-Jun-2023 + +Abstract +======== + +This PEP recommends deprecating and then disabling new uploads of the +``bdist_egg`` distribution type on PyPI. In a parallel move, this PEP recommends +deprecating and then disabling new uploads of distribution filenames that have +the ``.egg`` suffix. + +It does not recommend removing or otherwise affecting any previously +uploaded ``bdist_egg`` distributions. + +Rationale +========= + +Previous Work +------------- + +The groundwork for this proposal was established with :pep:`527`, which +proposed deprecating and eventually removing upload support for a handful +of un(der)used file extensions and distribution types. + +In particular, :pep:`527` proposed the removal of the ``bdist_dumb``, +``bdist_rpm``, ``bdist_dmg``, ``bdist_msi``, and ``bdist_wininst`` distribution +types, as well as the ``.tar``, ``.tar.bz2``, ``.tar.xz``, ``.tar.Z``, +``.tgz``, and ``.tbz`` file extensions on distribution filenames. + +:pep:`527` was fully enacted with +`PR #7529 `_ to Warehouse, +which was merged on 13-Apr-2020. + +The ``bdist_egg`` format +------------------------ + +The ``bdist_egg`` filetype identifies distributions in the +`Egg format `_. The +Egg format was introduced by setuptools in 2004 and is roughly equivalent +in functionality to the +`Wheel format `_ +introduced and standardized by :pep:`427` in 2012. + +Despite their longevity, the Egg format has had +`limited adoption on PyPI `_. +Some observations from that issue: + +* As of December 2021, ``bdist_egg`` uploads account for less than 1% of all + built distribution uploads; +* ``pip`` deprecated its ``--egg`` option in 2016; +* ``setuptools`` has considered Egg support deprecated since 2019; +* ``build`` only supports the ``sdist`` and ``bdist_wheel`` filetypes. + +Given the above, this PEP proposes the removal of the ``bdist_egg`` format +under the same justifications presented in :pep:`527`, namely: + +1. Egg distributions are of of limited use to the broader ecosystem and + therefore represent a non-reciprocal maintenance burden; +2. Continued support for Egg distributions represents a bandwidth and storage + cost to PyPI, as well as to any external mirrors of PyPI. + +This PEP *additionally* offers an argument for removal rooted in +standardization and duplication: the Egg format is not standardized by any +PEP or other community standard, and overlaps heavily with its standardized +and well-supported alternative (Wheel). + +The ``.egg`` file extension +--------------------------- + +The ``.egg`` file extension is used exclusively for distributions of the +``bdist_egg`` format. As such, it serves no purpose in a scenario where +PyPI disables new distribution uploads for ``bdist_egg`` distributions. + +Removal Process +=============== + +This PEP proposes a removal process based on :pep:`527`, but with the following +modifications: + +* The deprecation period will be six months, rather than one month. +* During the deprecation period, *all* packages will + `continue to be allowed `_ + to upload ``bdist_egg`` distributions, not just those that have previously + uploaded ``bdist_egg`` distributions. +* During the deprecation period, uploading a ``bdist_egg`` distribution to PyPI + will trigger an email to all maintainers of the containing package, rather + than sending a single email at the beginning of the deprecation period. + +After the deprecation period, PyPI will refuse to accept a file upload with +either the ``bdist_egg`` filetype or the ``.egg`` suffix, and support for +uploading Egg distributions will cease to exist on PyPI. + +As with :pep:`527`, this process is intended to ensure minimal disruption, +and will **NOT** affect any existing files on PyPI. + +Copyright +========= + +This document has been placed in the public domain. From ff1b25beea341c9dffeb94695f4841984a4e0b2c Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:04:28 -0400 Subject: [PATCH 02/23] CODEOWNERS: mark @dstufft Signed-off-by: William Woodruff --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 16a88cf1538..759d9efb642 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -682,3 +682,4 @@ pep-8016.rst @njsmith @dstufft pep-8100.rst @njsmith # pep-8101.rst # pep-8102.rst +pep-9999.rst @dstufft From 09695b20e12029a2256376885ee124c3bda54f6f Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:17:20 -0400 Subject: [PATCH 03/23] fixup: header order, copyright Signed-off-by: William Woodruff --- pep-9999.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index f122bbc50d1..43f7925dfa2 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -1,13 +1,15 @@ PEP: 9999 Title: Disabling bdist_egg distribution uploads on PyPI Author: William Woodruff -PEP-Delegate: Donald Stufft Sponsor: Donald Stufft +PEP-Delegate: Donald Stufft Status: Draft Type: Process Topic: Packaging Content-Type: text/x-rst Created: 06-Jun-2023 +Post-History: `26-Jan-2022 `__ +Resolution: Abstract ======== @@ -104,4 +106,5 @@ and will **NOT** affect any existing files on PyPI. Copyright ========= -This document has been placed in the public domain. +This document is placed in the public domain or under the +CC0-1.0-Universal license, whichever is more permissive. From 5896ff1fd475b32063046d7ad8b4142e56c025ff Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:20:27 -0400 Subject: [PATCH 04/23] PEP: rename as 715 Signed-off-by: William Woodruff --- .github/CODEOWNERS | 2 +- pep-9999.rst => pep-0715.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename pep-9999.rst => pep-0715.rst (99%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 759d9efb642..353bc5159a7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -595,6 +595,7 @@ pep-0711.rst @njsmith pep-0712.rst @ericvsmith pep-0713.rst @ambv pep-0714.rst @dstufft +pep-9999.rst @dstufft # ... # pep-0754.txt # ... @@ -682,4 +683,3 @@ pep-8016.rst @njsmith @dstufft pep-8100.rst @njsmith # pep-8101.rst # pep-8102.rst -pep-9999.rst @dstufft diff --git a/pep-9999.rst b/pep-0715.rst similarity index 99% rename from pep-9999.rst rename to pep-0715.rst index 43f7925dfa2..077542cb85a 100644 --- a/pep-9999.rst +++ b/pep-0715.rst @@ -1,4 +1,4 @@ -PEP: 9999 +PEP: 715 Title: Disabling bdist_egg distribution uploads on PyPI Author: William Woodruff Sponsor: Donald Stufft From 270684e22eb6c06b1762b41950845f698a9ecf2d Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:22:30 -0400 Subject: [PATCH 05/23] fixup: fix path in CODEOWNERS Signed-off-by: William Woodruff --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 353bc5159a7..300a1da34b4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -595,7 +595,7 @@ pep-0711.rst @njsmith pep-0712.rst @ericvsmith pep-0713.rst @ambv pep-0714.rst @dstufft -pep-9999.rst @dstufft +pep-0715.rst @dstufft # ... # pep-0754.txt # ... From fb4c38472909f567b927075dad5ac1369bc203e4 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:23:33 -0400 Subject: [PATCH 06/23] tweak: remove deprecation window change Signed-off-by: William Woodruff --- pep-0715.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/pep-0715.rst b/pep-0715.rst index 077542cb85a..326f0832fc6 100644 --- a/pep-0715.rst +++ b/pep-0715.rst @@ -87,7 +87,6 @@ Removal Process This PEP proposes a removal process based on :pep:`527`, but with the following modifications: -* The deprecation period will be six months, rather than one month. * During the deprecation period, *all* packages will `continue to be allowed `_ to upload ``bdist_egg`` distributions, not just those that have previously From f465ab1c08ecfe595749b31f841fa4c7f38aa081 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:30:21 -0400 Subject: [PATCH 07/23] PEP: drop post-history URL Apparently GH issues are not supported. Signed-off-by: William Woodruff --- pep-0715.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pep-0715.rst b/pep-0715.rst index 326f0832fc6..da1f805b6cc 100644 --- a/pep-0715.rst +++ b/pep-0715.rst @@ -8,7 +8,7 @@ Type: Process Topic: Packaging Content-Type: text/x-rst Created: 06-Jun-2023 -Post-History: `26-Jan-2022 `__ +Post-History: Resolution: Abstract From 23b8449f5fe7f0f667e848a57aff6b4c9f3f7055 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:53:23 -0400 Subject: [PATCH 08/23] revert PEP number pending discussion Signed-off-by: William Woodruff --- .github/CODEOWNERS | 2 +- pep-0715.rst => pep-9999.rst | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename pep-0715.rst => pep-9999.rst (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 300a1da34b4..759d9efb642 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -595,7 +595,6 @@ pep-0711.rst @njsmith pep-0712.rst @ericvsmith pep-0713.rst @ambv pep-0714.rst @dstufft -pep-0715.rst @dstufft # ... # pep-0754.txt # ... @@ -683,3 +682,4 @@ pep-8016.rst @njsmith @dstufft pep-8100.rst @njsmith # pep-8101.rst # pep-8102.rst +pep-9999.rst @dstufft diff --git a/pep-0715.rst b/pep-9999.rst similarity index 100% rename from pep-0715.rst rename to pep-9999.rst From 294a4a06075a92404fa63c955f8f8617bba6e193 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:59:11 -0400 Subject: [PATCH 09/23] PEP: feedback Signed-off-by: William Woodruff --- pep-9999.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index da1f805b6cc..327981c5e8c 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -39,7 +39,7 @@ types, as well as the ``.tar``, ``.tar.bz2``, ``.tar.xz``, ``.tar.Z``, :pep:`527` was fully enacted with `PR #7529 `_ to Warehouse, -which was merged on 13-Apr-2020. +which was merged on 13 April 2020. The ``bdist_egg`` format ------------------------ @@ -51,7 +51,7 @@ in functionality to the `Wheel format `_ introduced and standardized by :pep:`427` in 2012. -Despite their longevity, the Egg format has had +Despite its longevity, the Egg format has had `limited adoption on PyPI `_. Some observations from that issue: From 5442686aca7d582d6114ebe421eb216dcde2416c Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Tue, 6 Jun 2023 23:59:51 -0400 Subject: [PATCH 10/23] PEP: fix tmp number Signed-off-by: William Woodruff --- pep-9999.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pep-9999.rst b/pep-9999.rst index 327981c5e8c..06abf2e1bae 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -1,4 +1,4 @@ -PEP: 715 +PEP: 9999 Title: Disabling bdist_egg distribution uploads on PyPI Author: William Woodruff Sponsor: Donald Stufft From 4cf8fa2c37b06014c2eea4b5177e005474820053 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 09:34:53 -0400 Subject: [PATCH 11/23] Apply suggestions from code review Co-authored-by: C.A.M. Gerlach --- pep-9999.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 06abf2e1bae..a92217abc65 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -20,7 +20,7 @@ deprecating and then disabling new uploads of distribution filenames that have the ``.egg`` suffix. It does not recommend removing or otherwise affecting any previously -uploaded ``bdist_egg`` distributions. +uploaded ``bdist_egg`` distributions or files with the ``.egg`` suffix. Rationale ========= @@ -45,11 +45,12 @@ The ``bdist_egg`` format ------------------------ The ``bdist_egg`` filetype identifies distributions in the -`Egg format `_. The +:term:`Egg format `. The Egg format was introduced by setuptools in 2004 and is roughly equivalent in functionality to the -`Wheel format `_ -introduced and standardized by :pep:`427` in 2012. +:term:`Wheel format ` +first introduced by :pep:`427` in 2012 as the standardized +:ref:`built distribution format `. Despite its longevity, the Egg format has had `limited adoption on PyPI `_. @@ -64,10 +65,10 @@ Some observations from that issue: Given the above, this PEP proposes the removal of the ``bdist_egg`` format under the same justifications presented in :pep:`527`, namely: -1. Egg distributions are of of limited use to the broader ecosystem and - therefore represent a non-reciprocal maintenance burden; -2. Continued support for Egg distributions represents a bandwidth and storage - cost to PyPI, as well as to any external mirrors of PyPI. +* Egg distributions are of of limited use to the broader ecosystem and + therefore represent a non-reciprocal maintenance burden; +* Continued support for Egg distributions represents a bandwidth and storage + cost to PyPI, as well as to any external mirrors of PyPI. This PEP *additionally* offers an argument for removal rooted in standardization and duplication: the Egg format is not standardized by any @@ -92,7 +93,7 @@ modifications: to upload ``bdist_egg`` distributions, not just those that have previously uploaded ``bdist_egg`` distributions. * During the deprecation period, uploading a ``bdist_egg`` distribution to PyPI - will trigger an email to all maintainers of the containing package, rather + will trigger an email to all maintainers of the project, rather than sending a single email at the beginning of the deprecation period. After the deprecation period, PyPI will refuse to accept a file upload with From fb85cc6e3d3038d3ea3e6d1f69c998473144d11e Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 09:37:39 -0400 Subject: [PATCH 12/23] pep: decapitalize Egg and Wheel Signed-off-by: William Woodruff --- pep-9999.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index a92217abc65..9ac449180fe 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -45,35 +45,35 @@ The ``bdist_egg`` format ------------------------ The ``bdist_egg`` filetype identifies distributions in the -:term:`Egg format `. The -Egg format was introduced by setuptools in 2004 and is roughly equivalent +:term:`egg format `. The +egg format was introduced by setuptools in 2004 and is roughly equivalent in functionality to the -:term:`Wheel format ` +:term:`wheel format ` first introduced by :pep:`427` in 2012 as the standardized :ref:`built distribution format `. -Despite its longevity, the Egg format has had +Despite its longevity, the egg format has had `limited adoption on PyPI `_. Some observations from that issue: * As of December 2021, ``bdist_egg`` uploads account for less than 1% of all built distribution uploads; * ``pip`` deprecated its ``--egg`` option in 2016; -* ``setuptools`` has considered Egg support deprecated since 2019; +* ``setuptools`` has considered egg support deprecated since 2019; * ``build`` only supports the ``sdist`` and ``bdist_wheel`` filetypes. Given the above, this PEP proposes the removal of the ``bdist_egg`` format under the same justifications presented in :pep:`527`, namely: -* Egg distributions are of of limited use to the broader ecosystem and +* egg distributions are of of limited use to the broader ecosystem and therefore represent a non-reciprocal maintenance burden; -* Continued support for Egg distributions represents a bandwidth and storage +* Continued support for egg distributions represents a bandwidth and storage cost to PyPI, as well as to any external mirrors of PyPI. This PEP *additionally* offers an argument for removal rooted in -standardization and duplication: the Egg format is not standardized by any +standardization and duplication: the egg format is not standardized by any PEP or other community standard, and overlaps heavily with its standardized -and well-supported alternative (Wheel). +and well-supported alternative (wheel). The ``.egg`` file extension --------------------------- @@ -98,7 +98,7 @@ modifications: After the deprecation period, PyPI will refuse to accept a file upload with either the ``bdist_egg`` filetype or the ``.egg`` suffix, and support for -uploading Egg distributions will cease to exist on PyPI. +uploading egg distributions will cease to exist on PyPI. As with :pep:`527`, this process is intended to ensure minimal disruption, and will **NOT** affect any existing files on PyPI. From 6d53cacec66c3a28ca8e53868c4c826f04d7220b Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 09:41:10 -0400 Subject: [PATCH 13/23] PEP: re-use PEP 527's removal process Signed-off-by: William Woodruff --- pep-9999.rst | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 9ac449180fe..00f7f939e66 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -85,23 +85,7 @@ PyPI disables new distribution uploads for ``bdist_egg`` distributions. Removal Process =============== -This PEP proposes a removal process based on :pep:`527`, but with the following -modifications: - -* During the deprecation period, *all* packages will - `continue to be allowed `_ - to upload ``bdist_egg`` distributions, not just those that have previously - uploaded ``bdist_egg`` distributions. -* During the deprecation period, uploading a ``bdist_egg`` distribution to PyPI - will trigger an email to all maintainers of the project, rather - than sending a single email at the beginning of the deprecation period. - -After the deprecation period, PyPI will refuse to accept a file upload with -either the ``bdist_egg`` filetype or the ``.egg`` suffix, and support for -uploading egg distributions will cease to exist on PyPI. - -As with :pep:`527`, this process is intended to ensure minimal disruption, -and will **NOT** affect any existing files on PyPI. +This PEP proposes using the same removal process specified in :pep:`527`. Copyright ========= From 54b4eb772a5cfbbc3cfba6c9b43507740bbed845 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 10:07:59 -0400 Subject: [PATCH 14/23] PEP: additional sections Signed-off-by: William Woodruff --- pep-9999.rst | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 00f7f939e66..c5b2437e032 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -56,8 +56,8 @@ Despite its longevity, the egg format has had `limited adoption on PyPI `_. Some observations from that issue: -* As of December 2021, ``bdist_egg`` uploads account for less than 1% of all - built distribution uploads; +* In the month of May 2023, ``bdist_egg`` uploads accounted for 0.2% of all + distribution uploads to PyPI; * ``pip`` deprecated its ``--egg`` option in 2016; * ``setuptools`` has considered egg support deprecated since 2019; * ``build`` only supports the ``sdist`` and ``bdist_wheel`` filetypes. @@ -87,6 +87,49 @@ Removal Process This PEP proposes using the same removal process specified in :pep:`527`. +Backwards Compatibility +======================= + +Limited Impact +-------------- + +As noted in the rationale section, this PEP is expected to have no impact +on the overwhelming majority of PyPI users. + +Hosted Files +------------ + +This PEP does **NOT** propose the removal of any egg distributions that have +already been uploaded to PyPI. All previously uploaded egg distributions will +remain downloadable, ensuring that existing users will continue to be able +to download them. + +Deprecation Period +------------------ + +This PEP uses the removal process documented in :pep:`527`, which specifies +a deprecation period of 1 month for projects that have previously uploaded +egg distributions to PyPI. + +After the end of the deprecation period, support for uploading new egg +distributions will cease to exist on PyPI. + +Security Implications +===================== + +This PEP does not identify any positive or negative security implications +associated with removing upload support for egg distributions. + +How To Teach This +================= + +As part of the :pep:`527` removal process, PyPI will send emails to all +maintainers of projects who have previously uploaded egg distributions. + +Additionally, PyPI will write a post on the +`PyPI blog `_ that publicly announces the deprecation +period's start and end. + Copyright ========= From 113abc184bacf97d03a85a0e654a96929c8a8408 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 10:16:01 -0400 Subject: [PATCH 15/23] PEP: embed removal process Rather than referencing. Signed-off-by: William Woodruff --- pep-9999.rst | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index c5b2437e032..6c26eeb17b5 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -85,7 +85,29 @@ PyPI disables new distribution uploads for ``bdist_egg`` distributions. Removal Process =============== -This PEP proposes using the same removal process specified in :pep:`527`. +This PEP does **NOT** propose removing any existing files from PyPI, only +disallowing new ones from being uploaded. This restriction will be phased in on +a per-project basis to allow projects to adjust to the new restrictions where +applicable. + +First, any *existing* projects will be flagged to allow legacy file types to be +uploaded, and any project without that flag (i.e. new projects) will not be +able to upload anything but ``sdist`` with a ``.tar.gz`` or ``.zip`` extension, +or a ``bdist_wheel`` with a ``.whl`` extension. Then, any existing projects +that have never uploaded a file that requires the legacy file type flag will +have that flag removed, also making them fall under the new restrictions. +Finally, an email will be generated to the maintainers of all projects still +given the legacy flag, which will inform them of the upcoming new restrictions +on uploads and tell them that these restrictions will be applied to future +uploads to their projects starting in 1 month. Finally, after 1 month all +projects will have the legacy file type flag removed, and support for uploading +these types of files will cease to exist on PyPI. + +Prior Art +--------- + +The removal process above is based on :pep:`527`'s removal process. However, +only the process above is authoritative for this PEP. Backwards Compatibility ======================= @@ -107,7 +129,7 @@ to download them. Deprecation Period ------------------ -This PEP uses the removal process documented in :pep:`527`, which specifies +This PEP uses the removal process documented above, which specifies a deprecation period of 1 month for projects that have previously uploaded egg distributions to PyPI. @@ -123,8 +145,8 @@ associated with removing upload support for egg distributions. How To Teach This ================= -As part of the :pep:`527` removal process, PyPI will send emails to all -maintainers of projects who have previously uploaded egg distributions. +As part of the removal process, PyPI will send emails to all maintainers of +projects who have previously uploaded egg distributions. Additionally, PyPI will write a post on the `PyPI blog `_ that publicly announces the deprecation From d9bb29e4bb9e7b2b0314dd0f2f243717ec292813 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 10:37:51 -0400 Subject: [PATCH 16/23] PEP: rewrite removal process Signed-off-by: William Woodruff --- pep-9999.rst | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 6c26eeb17b5..95669256151 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -86,22 +86,17 @@ Removal Process =============== This PEP does **NOT** propose removing any existing files from PyPI, only -disallowing new ones from being uploaded. This restriction will be phased in on -a per-project basis to allow projects to adjust to the new restrictions where -applicable. - -First, any *existing* projects will be flagged to allow legacy file types to be -uploaded, and any project without that flag (i.e. new projects) will not be -able to upload anything but ``sdist`` with a ``.tar.gz`` or ``.zip`` extension, -or a ``bdist_wheel`` with a ``.whl`` extension. Then, any existing projects -that have never uploaded a file that requires the legacy file type flag will -have that flag removed, also making them fall under the new restrictions. -Finally, an email will be generated to the maintainers of all projects still -given the legacy flag, which will inform them of the upcoming new restrictions -on uploads and tell them that these restrictions will be applied to future -uploads to their projects starting in 1 month. Finally, after 1 month all -projects will have the legacy file type flag removed, and support for uploading -these types of files will cease to exist on PyPI. +disallowing new ones from being uploaded. + +PyPI will provide a deprecation period of one month. During the +deprecation period users will continue to be allowed to upload egg +distributions to new and existing projects. Uploading an egg distribution +during this period will result in an email to all maintainers of the project, +which will inform them of the upcoming new restrictions on egg distribution +uploads. + +After the deprecation period, support for uploading egg distributions will +cease to exist on PyPI. Prior Art --------- From 92a85aa3d8557ef1a080b6084d71785455d001f9 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 11:19:31 -0400 Subject: [PATCH 17/23] PEP: one-time email Signed-off-by: William Woodruff --- pep-9999.rst | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 95669256151..191248cf1ba 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -88,11 +88,15 @@ Removal Process This PEP does **NOT** propose removing any existing files from PyPI, only disallowing new ones from being uploaded. -PyPI will provide a deprecation period of one month. During the -deprecation period users will continue to be allowed to upload egg +PyPI will provide a deprecation period of one month. At the beginning +of the deprecation period, maintainers of projects that already have egg +distributions will receive a one-time email informing them of the upcoming +restrictions on egg distribution uploads. + +During the deprecation period users will continue to be allowed to upload egg distributions to new and existing projects. Uploading an egg distribution during this period will result in an email to all maintainers of the project, -which will inform them of the upcoming new restrictions on egg distribution +which will inform them of the upcoming restrictions on egg distribution uploads. After the deprecation period, support for uploading egg distributions will From b65151947a0d79b96fe487cfa17b7d58d2e9d3c4 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 11:21:45 -0400 Subject: [PATCH 18/23] PEP: tweak justifications Signed-off-by: William Woodruff --- pep-9999.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 191248cf1ba..8961952776a 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -65,10 +65,10 @@ Some observations from that issue: Given the above, this PEP proposes the removal of the ``bdist_egg`` format under the same justifications presented in :pep:`527`, namely: -* egg distributions are of of limited use to the broader ecosystem and +* Egg distributions are of of limited use to the broader ecosystem and therefore represent a non-reciprocal maintenance burden; -* Continued support for egg distributions represents a bandwidth and storage - cost to PyPI, as well as to any external mirrors of PyPI. +* Having an additional bdist format is confusing to end users, who may + mistakenly pick it over the wheel format; This PEP *additionally* offers an argument for removal rooted in standardization and duplication: the egg format is not standardized by any From dc621ae01270820778aca184bfd7a13cde366350 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 15:07:02 -0400 Subject: [PATCH 19/23] Apply suggestions from code review Co-authored-by: C.A.M. Gerlach --- pep-9999.rst | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index 8961952776a..b17890a91ca 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -67,7 +67,8 @@ under the same justifications presented in :pep:`527`, namely: * Egg distributions are of of limited use to the broader ecosystem and therefore represent a non-reciprocal maintenance burden; -* Having an additional bdist format is confusing to end users, who may +* Having an additional built distribution format + is confusing to end users, who may mistakenly pick it over the wheel format; This PEP *additionally* offers an argument for removal rooted in @@ -91,13 +92,12 @@ disallowing new ones from being uploaded. PyPI will provide a deprecation period of one month. At the beginning of the deprecation period, maintainers of projects that already have egg distributions will receive a one-time email informing them of the upcoming -restrictions on egg distribution uploads. +end of support for egg distribution uploads. -During the deprecation period users will continue to be allowed to upload egg +During the deprecation period, users will continue to be allowed to upload egg distributions to new and existing projects. Uploading an egg distribution -during this period will result in an email to all maintainers of the project, -which will inform them of the upcoming restrictions on egg distribution -uploads. +during this period will also send all maintainers of the project +a similar email as above, reminding them of the upcoming end of support. After the deprecation period, support for uploading egg distributions will cease to exist on PyPI. @@ -105,8 +105,12 @@ cease to exist on PyPI. Prior Art --------- -The removal process above is based on :pep:`527`'s removal process. However, -only the process above is authoritative for this PEP. +The removal process above was based on that of :pep:`527`, with the following changes: + +* All projects will be continue to be allowed to upload eggs + during the deprecation period, not just those that have done so previously. +* Uploading an egg during the deprecation period will also trigger an email + to maintainers, in addition to the one-time email at the beginning. Backwards Compatibility ======================= @@ -115,7 +119,9 @@ Limited Impact -------------- As noted in the rationale section, this PEP is expected to have no impact -on the overwhelming majority of PyPI users. +on the overwhelming majority of PyPI users and projects, and there has been +`substantial community coordination `_ +over the past 1 1/2 years to minimize the impact on the few last use cases. Hosted Files ------------ From 4b00f93962af75e53b46c8a217800d823415d369 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Wed, 7 Jun 2023 15:10:12 -0400 Subject: [PATCH 20/23] PEP: address feedback Signed-off-by: William Woodruff --- pep-9999.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index b17890a91ca..eb52935aaae 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -49,8 +49,9 @@ The ``bdist_egg`` filetype identifies distributions in the egg format was introduced by setuptools in 2004 and is roughly equivalent in functionality to the :term:`wheel format ` -first introduced by :pep:`427` in 2012 as the standardized -:ref:`built distribution format `. +first introduced by :pep:`427` in 2012 +as :ref:`the standardized format ` +for :term:`packaging:Built Distributions`. Despite its longevity, the egg format has had `limited adoption on PyPI `_. From 9948afe6fadbd698f7ef8e6d0c2a6a0f6084b58d Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Thu, 8 Jun 2023 16:05:00 -0400 Subject: [PATCH 21/23] Apply suggestions from code review Co-authored-by: C.A.M. Gerlach --- pep-9999.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index eb52935aaae..d5d310aded9 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -91,8 +91,8 @@ This PEP does **NOT** propose removing any existing files from PyPI, only disallowing new ones from being uploaded. PyPI will provide a deprecation period of one month. At the beginning -of the deprecation period, maintainers of projects that already have egg -distributions will receive a one-time email informing them of the upcoming +of the deprecation period, maintainers of projects that have uploaded one or more egg +distributions since 1 Jan 2023 will receive a one-time email informing them of the upcoming end of support for egg distribution uploads. During the deprecation period, users will continue to be allowed to upload egg @@ -152,7 +152,7 @@ How To Teach This ================= As part of the removal process, PyPI will send emails to all maintainers of -projects who have previously uploaded egg distributions. +projects that have previously uploaded egg distributions in 2023. Additionally, PyPI will write a post on the `PyPI blog `_ that publicly announces the deprecation From 047bd1d4cd6e39d391e121bc08105326e309ae99 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Thu, 8 Jun 2023 16:06:20 -0400 Subject: [PATCH 22/23] PEP: reflow Signed-off-by: William Woodruff --- pep-9999.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pep-9999.rst b/pep-9999.rst index d5d310aded9..c90fc91f2a8 100644 --- a/pep-9999.rst +++ b/pep-9999.rst @@ -91,9 +91,9 @@ This PEP does **NOT** propose removing any existing files from PyPI, only disallowing new ones from being uploaded. PyPI will provide a deprecation period of one month. At the beginning -of the deprecation period, maintainers of projects that have uploaded one or more egg -distributions since 1 Jan 2023 will receive a one-time email informing them of the upcoming -end of support for egg distribution uploads. +of the deprecation period, maintainers of projects that have uploaded one or +more egg distributions since 1 Jan 2023 will receive a one-time email informing +them of the upcoming end of support for egg distribution uploads. During the deprecation period, users will continue to be allowed to upload egg distributions to new and existing projects. Uploading an egg distribution @@ -106,7 +106,8 @@ cease to exist on PyPI. Prior Art --------- -The removal process above was based on that of :pep:`527`, with the following changes: +The removal process above was based on that of :pep:`527`, with the following +changes: * All projects will be continue to be allowed to upload eggs during the deprecation period, not just those that have done so previously. From 7a6ca8586538314167546ea0fa19ad2f785d7389 Mon Sep 17 00:00:00 2001 From: William Woodruff Date: Fri, 9 Jun 2023 09:52:22 -0400 Subject: [PATCH 23/23] PEP: retitle as 715 Signed-off-by: William Woodruff --- .github/CODEOWNERS | 2 +- pep-9999.rst => pep-0715.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename pep-9999.rst => pep-0715.rst (99%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 759d9efb642..300a1da34b4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -595,6 +595,7 @@ pep-0711.rst @njsmith pep-0712.rst @ericvsmith pep-0713.rst @ambv pep-0714.rst @dstufft +pep-0715.rst @dstufft # ... # pep-0754.txt # ... @@ -682,4 +683,3 @@ pep-8016.rst @njsmith @dstufft pep-8100.rst @njsmith # pep-8101.rst # pep-8102.rst -pep-9999.rst @dstufft diff --git a/pep-9999.rst b/pep-0715.rst similarity index 99% rename from pep-9999.rst rename to pep-0715.rst index c90fc91f2a8..567e0d80cac 100644 --- a/pep-9999.rst +++ b/pep-0715.rst @@ -1,4 +1,4 @@ -PEP: 9999 +PEP: 715 Title: Disabling bdist_egg distribution uploads on PyPI Author: William Woodruff Sponsor: Donald Stufft