Following system colour scheme - Python 增强提案 Selected dark colour scheme - Python 增强提案 Selected light colour scheme - Python 增强提案

Python 增强提案

PEP 715 – 在 PyPI 上禁用 bdist_egg 分发上传

作者:
William Woodruff <william at yossarian.net>
赞助者:
Donald Stufft <donald at stufft.io>
PEP 代表:
Donald Stufft <donald at stufft.io>
讨论邮件列表:
Discourse 帖子
状态:
最终
类型:
标准跟踪
主题:
打包
创建日期:
2023年6月6日
历史记录:
2023年6月9日
决议:
Discourse 消息

目录

摘要

本 PEP 建议弃用,然后禁用在 PyPI 上上传新的 bdist_egg 分发类型。同时,本 PEP 建议弃用,然后禁用上传具有 .egg 后缀的文件名。

在实施本 PEP 后,PyPI 将仅接受 sdistbdist_wheel 类型的新的上传,分别对应于具有 .tar.gz/.zip.whl 后缀的文件。

本 PEP 不建议删除或以其他方式影响任何先前上传的 bdist_egg 分发或具有 .egg 后缀的文件。

基本原理

先前的工作

本提案的基础是 PEP 527 建立的,该提案建议弃用并最终删除对少量未(被)使用文件扩展名和分发类型的上传支持。

特别是,PEP 527 提议删除 bdist_dumbbdist_rpmbdist_dmgbdist_msibdist_wininst 分发类型,以及 .tar.tar.bz2.tar.xz.tar.Z.tgz.tbz 分发文件名中的文件扩展名。

PEP 527 已通过 PR #7529 完全在 Warehouse 中实施,该 PR 于 2020 年 4 月 13 日合并。

bdist_egg 格式

bdist_egg 文件类型标识 egg 格式 中的分发。egg 格式由 setuptools 于 2004 年引入,其功能大致等同于 wheel 格式,后者于 2012 年由 PEP 427 引入,作为 标准化格式 用于 构建的分发

尽管 egg 格式存在时间较长,但在 PyPI 上的 采用率有限。该问题中的一些观察结果

  • 在 2023 年 5 月,bdist_egg 上传占 PyPI 所有分发上传的 0.2%;
  • pip 于 2016 年弃用了其 --egg 选项;
  • setuptools 自 2019 年起就将 egg 支持视为已弃用;
  • build 仅支持 sdistbdist_wheel 文件类型。

鉴于以上情况,本 PEP 提议在 PEP 527 中提出的相同理由下删除 bdist_egg 格式,即

  • egg 分发对更广泛的生态系统用途有限,因此代表了一种非互惠的维护负担;
  • 拥有额外的构建分发格式会让最终用户感到困惑,他们可能会错误地选择它而不是 wheel 格式;

本 PEP 此外还提供了一个基于标准化和重复的删除理由:egg 格式未由任何 PEP 或其他社区标准标准化,并且与标准化且得到良好支持的替代方案(wheel)高度重叠。

.egg 文件扩展名

.egg 文件扩展名专门用于 bdist_egg 格式的分发。因此,在 PyPI 禁用对 bdist_egg 分发的新的分发上传的情况下,它没有任何作用。

移除流程

本 PEP **不**建议从 PyPI 中删除任何现有文件,只禁止上传新的文件。

PyPI 将提供为期一个月的弃用期限。在弃用期限开始时,自 2023 年 1 月 1 日以来上传过一个或多个 egg 分发的项目的维护者将收到一封一次性电子邮件,通知他们即将停止支持 egg 分发上传。

在弃用期限内,用户将继续被允许将 egg 分发上传到新的和现有的项目中。在此期间上传 egg 分发也将向项目的全部维护者发送与上述类似的电子邮件,提醒他们即将停止支持。

弃用期限结束后,PyPI 将不再支持上传 egg 分发。

先例

以上移除流程基于 PEP 527 中的流程,并进行了以下更改

  • 在弃用期限内,所有项目都将继续被允许上传 egg,而不仅仅是以前上传过的项目。
  • 在弃用期限内上传 egg 也会触发发送电子邮件给维护者,除了在开始时发送的一次性电子邮件。

向后兼容性

影响有限

如基本原理部分所述,预计本 PEP 对绝大多数 PyPI 用户和项目不会产生任何影响,并且在过去 1 年半的时间里,社区已经进行了大量的协调,以最大程度地减少对最后几个用例的影响。

托管文件

本 PEP **不**建议删除已上传到 PyPI 的任何 egg 分发。所有先前上传的 egg 分发都将保持可下载状态,以确保现有用户能够继续下载它们。

弃用期限

本 PEP 使用上面记录的移除流程,该流程为先前已将 egg 分发上传到 PyPI 的项目指定了 1 个月的弃用期限。

弃用期限结束后,PyPI 将不再支持上传新的 egg 分发。

安全隐患

本 PEP 未发现与删除 egg 分发上传支持相关的任何正面或负面安全影响。

如何讲解

作为移除流程的一部分,PyPI 将向 2023 年以前上传过 egg 分发的所有项目的维护者发送电子邮件。

此外,PyPI 将在 PyPI 博客 上发布一篇帖子,公开宣布弃用期限的开始和结束。


来源:https://github.com/python/peps/blob/main/peps/pep-0715.rst

最后修改时间:2023-09-09 17:39:29 GMT