遵循系统配色方案 选定的深色方案 选定的浅色方案

Python增强方案

PEP 541–文件包索引名称保留

作者:
Łukasz Langa<lukasz at python.org>
BDFL-减速:
在python.org上标记Mangoba<mmangoba>
讨论-收件人:
Distutils-SIG列表
状态:
最终
类型:
过程
主题:
包装
创建:
2017年1月12日
后历史:

分辨率:
Distutils SIG消息

目录

摘要

该政治公众人物建议延长使用条款[1]包的索引[2],澄清包所有者对以下方面的期望包索引上包名称的所有权,特别是关于冲突解决。

现有软件包存储库,如CPAN[3],净现值[4]、和github[5]将作为该领域的现有技术进行研究。

理论基础

假设索引上的包名称共享一个平面命名空间,唯一的名称是有限的资源。不断增长的年龄一揽子指数导致冲突局势不断上升在名称的当前用法和建议的不同用法之间同名。

本文件旨在为解决此类冲突的最典型案例。

审批流程

由于该政策的应用可能对Python Software Foundation,使用的审批流程比这更正式用于大多数政治公众人物。

指定的BDFL-Delegate将代替直接接受政治公众人物向PSF的包装工作组建议其接受。之后咨询PSF的总法律顾问,然后通过该政策须在工作组内进行正式表决。

该正式批准流程将用于政策,以及未来任何修正案的通过。

规范

本文档的主要思想是,包索引为社区。邀请每个用户将内容上传到包索引根据使用条款,理解其承担的唯一风险是用户。

虽然包索引不是备份服务Package Index尽最大努力使该内容可以无限期地访问但在某些边缘情况下社区的需求可能会超过个人的期望包名称的所有权。

本文档涵盖的用例包括:

  • 放弃的项目:
    • 不同用户组的持续维护;
    • 从索引中删除以用于其他项目。
  • 活动项目:
    • 解决名字纠纷。
  • 无效项目:
    • 受到知识产权侵权索赔的项目。

使用条款的拟议扩展,如实施部分,将作为单独的文件发布在包装索引,链接到首页中的现有使用条款旁边页脚。

实施

可达性

文件包索引的用户只负责访问由文件包索引维护人员负责与以下项目相关的事项:用户拥有。在任何需要联系用户的情况下,维护人员将使用以下联系方式:

  • 包索引中用户配置文件中的文件电子邮件地址;
  • 给定项目的“作者”字段中列出的电子邮件地址上传至索引;
  • 给定项目文档中的任何电子邮件地址在索引或列出的主页上。

六周后,维护人员不再试图联系用户。

放弃的项目

考虑一个项目被遗弃的当满足以下所有条件时:

  • 无法联系到所有者(请参阅上文的“可达性”);
  • 过去12个月内未发布;
  • 项目主页上没有所有者的活动(或没有主页列出)。

考虑所有其他项目积极的.

废弃项目的持续维护

如果候选人似乎愿意继续维护被遗弃的项目,名称的所有权在以下所有情况下转移满足:

  • 项目已确定被遗弃的按照所描述的规则以上;
  • 候选人能够证明自己的联系尝试失败现有所有者;
  • 候选人能够证明在候选人自己的项目分支;
  • 候选人能够证明为什么一个fork使用不同的名称不是可接受的解决方法;
  • 包索引的维护者没有任何额外的保留。

在任何情况下,都不会违背可联系的所有者。

拆除废弃项目

项目永远不会仅根据放弃。上传到包索引的工件保持固有历史价值。

被遗弃的项目可以出于以下目的转让给新所有者满足以下所有条件时重用名称:

  • 项目已确定被遗弃的按照所描述的规则以上;
  • 候选人能够证明自己的联系尝试失败现有所有者;
  • 候选人能够证明该项目建议重用已经存在的名称并满足显著性要求;
  • 候选人能够证明为什么一个fork使用不同的名称不是可接受的解决方法;
  • 下载现有包的包索引统计信息表明项目未被使用;
  • 包索引的维护者没有任何额外的保留。

为活动项目命名冲突解决方案

一揽子指数的维护者不是争端的仲裁者围绕积极的项目。这里有很多可能的场景,给出了一个非结论性列表,描述了一些真实世界的例子如下所示。以下任何一项都不符合包名称所有权转让:

  1. 用户A和用户B共享项目X。一段时间后,他们分手了他们每个人都想以X的名字继续这个项目。
  2. 用户A拥有包索引之外的项目X。用户B创建索引中名为X的包。一段时间后,用户A想要在索引上发布项目X,但意识到名称已被占用。即使用户A的项目X获得显著性并且用户B的项目X不显著。
  3. 用户A将项目X发布到包索引。过了一段时间用户B建议对项目进行错误修复,但没有新版本由用户A发布。即使用户A同意发布新版本和更高版本没有,即使合并了用户B的更改到项目X的源代码存储库。

同样,上面的列表并不是唯一的。软件包的维护人员索引建议用户相互联系并解决通过尊重的沟通发布(参见PSF行为准则[6]).

无效的项目

在包索引上发布的项目满足以下任一条件被视为无效,将从索引中删除:

  • 项目不符合使用条款;
  • 项目是恶意软件(旨在直接利用或危害系统或用户促进命令和控制攻击,或执行数据过滤);
  • 项目是垃圾邮件(旨在广告或招揽商品或服务);
  • 项目包含非法内容;
  • 项目违反版权、商标、专利或许可;
  • 项目是名称蹲起(包没有功能或空的);
  • 项目名称、描述或内容违反行为准则;
  • 项目使用模糊处理来隐藏或屏蔽功能;
  • 项目滥用程序包索引的目的并非如此预期的。

包索引维护程序预先声明特定包由于安全原因,名称不可用。

知识产权政策

这是Python软件基金会和包索引的政策维护人员应适当回应知识分子的主张第三方侵犯财产。这不是Python软件基金会或包索引维护者预先筛选任何类型的知识产权的上传包侵权。

应向合法的@蟒蛇.组织Python软件基金会的顾问将决定适当的回应。可以将包移除或转移到Python软件基金会全权决定的新所有者处理侵权索赔。

在包索引上发布的项目满足以下任一条件可能被视为侵权,并可能从索引中删除或转让给新所有者:

  • 项目包含来自第三方的未经许可的版权材料,并根据DMCA提出合理索赔;
  • 项目使用第三方商标的方式不受名义或合理使用指南;
  • 项目明显涉及专利系统或工艺投诉主题;
  • 该项目正面临诉讼。

如果投诉侵犯知识产权,投诉的副本将发送给包裹所有者。在一些在这种情况下,包索引维护人员可以在业主回应道。

Python软件基金会的作用

Python软件基金会[7]是一家非营利法律实体将包索引作为社区服务提供。

文件包索引维护人员可以上报本文件所涵盖的问题如果问题不清楚,由包装工作组解决的文件够了。一些决定要求董事会的附加判决,尤其是在违反行为准则或法律索赔的情况下。董事会提出的建议发送给包装工作组[8]供审查。

包装工作组对本文件涉及的任何争议具有最终发言权可以决定在之后重新分配项目或从包索引中删除项目即使没有列出所有要求,也要仔细考虑在这里见面。

如何请求姓名转移

如果您想接管PyPI上的现有项目名称,以下是要遵循的步骤:

  1. 尝试直接联系当前所有者:给他们发电子邮件并提出问题如果您能找到相关的存储库。这里描述的过程是指如果无法联系业主,作为最后的手段。
  2. 检查上述条件,查看何时允许转移。特别地,的标准为不同的项目重用名称同一项目的持续维护-尽管名字不容易被转移无论哪种情况。
  3. 搜索PyPI支持问题看看是否有其他人已经要求使用相同的名称。
  4. 如果满足转让名称所有权的所有标准,打开一个新问题请详细说明为什么您认为每个相关标准都是满意的。

现有技术

NPM包含一个与首页链接的单独部分,名为包名称争议.它被称为“活文件”,截至2017年1月,其内容可以概括如下:

  • 禁止包名蹲起;
  • 希望重用项目名称的用户需要联系现有作者,抄送给支持@npmjs公司.通用域名格式;
  • 所有联系人必须符合NPM行为准则;
  • 如果几周后没有解决方案,npm公司拥有这一权利这件事的最终决定。

CPAN允许任何用户上传同名模块。PAUSE,一个相关的索引,仅列出主要维护者上传的模块或列出的模块共同维护者。CPAN文件不会以其他方式解决争议。

GitHub的服务条款包含详尽的行为列表不符合一般使用条件。虽然没有在任何地方编纂,GitHub同意用户通过存档被放弃的帐户并让其他用户或组织重命名其帐户。这是逐个案例完成的基础。

被拒绝的建议书

最初的方法是希望做到最好,解决问题在没有书面政策的情况下出现。这是不可持续的。缺乏关于包名称冲突的通用书面指南决议正在造成不必要的紧张局势。用户,包索引维护者在没有书面记录的情况下做出的决策指导方针可能显得武断。从包装的角度来看索引维护人员,解决名称冲突是一项压力很大的任务,因为由于缺乏明确的政策而造成意外伤害的风险。

工具书类

致谢

Distutils和Catalog SIG的许多参与者多年来的想法。


资料来源:https://github.com/python/eps/blob/main/peps/pep-0541.rst

上次修改时间:格林尼治标准时间2023-09-09 17:39:29