pytorch/rfcs

GitHub: pytorch/rfcs

PyTorch 官方的 RFC(意见征集)仓库,为社区提供了一套在编写代码之前讨论、评审和决定重大功能设计变更的标准化流程。

Stars: 147 | Forks: 100

本页面包含有关如何向 PyTorch 提出并实现功能更改的说明。 # 向 Pytorch 提出新功能 要提出新功能,您需要提交一份意见征集(RFC)。这份 RFC 本质上是一份设计提案,您可以在其中分享详细的描述,说明您想要进行什么更改、为什么需要它,以及您建议如何实现它。 在功能处于构思阶段时进行更改,要比在 PR 阶段容易得多。这份文档为核心维护者提供了一个机会,让您可以在开始编写代码之前听取他们的改进建议。例如,他们可能知道其他计划中的工作,否则您的工作可能会与这些工作发生冲突;或者他们可能会建议一些实现上的更改,使您的功能具有更广泛的适用性。 较小的更改,包括错误修复和文档改进,可以通过主 PyTorch 仓库中常规的 GitHub pull request 工作流来实现和审查。 RFC 更适合于那些太大而不适合在 feature-request issue 中讨论的设计提案,例如添加新的抽象,或者如果关于新添加内容所涉及的权衡的讨论并非微不足道。 如果您不确定某件事应该是 RFC 还是 feature-request issue,可以通过在主 PyTorch/PyTorch 仓库中发布 issue 来询问。 # 意见征集 ## 第一步:创建 RFC RFC 位于其独立的仓库中。 要创建一个: 1. Fork https://github.com/pytorch/rfcs 仓库 2. 将模板文件 `RFC-0000-template.md` 复制为 `RFC-00xx-your-feature.md`,并填写您的提案。该模板是一个指导原则,您可以视需要自由添加其他章节 3. 您也可以让模板直接链接到另一个编辑器,例如 Google Docs 文件,但请确保该文档是公开可见的。这可以使模板更容易编辑,但评论功能的扩展性不太好,因此请谨慎使用此选项。 ## 第二步:获取关于 RFC 的反馈 1. 提交一个标题为 `RFC-00xx-your-feature.md` 的 pull request 2. 在您的 PR 准备好接受审查之前,请为其添加 draft 标签。 3. 一旦准备好接受审查,请移除 draft 标签并为其添加 `commenting` 标签 4. 在 https://github.com/pytorch/pytorch 仓库中提交一个 issue 以审查您的提案。 5. 在描述中,包含您的功能的简短摘要以及指向您的 RFC PR 的链接 6. Pytorch Triage 审查团队会将您的 issue 路由给具有相关专业知识的核心贡献者。 7. 建立共识。这些核心贡献者将审查您的 PR 并提供反馈。根据需要修改您的提案,直到大家对前进的路径达成一致。您可以分享提案的其他论坛包括[开发者论坛](https://dev-discuss.pytorch.org/c/rfc-chatter)和 [Slack 频道](https://bit.ly/ptslack)。标记感兴趣的利益相关者(可通过 [CODEOWNERS](https://github.com/pytorch/pytorch/blob/master/CODEOWNERS) 识别)有助于建立共识。 _(注意:如果提案带有无法解决的缺点,或者违背了 pytorch 维护者的长期计划,提案可能会被拒绝)_ ## 第三步:实现您的功能 1. 如果您的 RFC PR 被接受,您可以将其合并到 [pytorch/rfcs](https://github.com/pytorch/rfcs) 仓库中,并开始着手实现。 2. 当您提交 PR 以实现您的提案时,请记住链接到您的 RFC,以帮助审查者了解上下文。 ## 实现 RFC 每个被接受的 RFC 都在 PyTorch 仓库中有一个关联的 issue 来跟踪其实现情况;因此,该关联的 issue 可以通过团队用于所有 issue 的分类处理流程来分配优先级。 RFC 的作者没有义务去实现它。当然,欢迎 RFC 作者(像任何其他开发者一样)在 RFC 被接受后发布实现以供审查。 如果您有兴趣参与实现一个已被接受的 RFC,但无法确定是否已经有人在做,请随时提问(例如,通过在相关 issue 上发表评论)。 ## RFC 拒绝 一些 RFC pull request 在关闭时(作为拒绝流程的一部分)会被标记为“shelved”标签。一个以“shelved”关闭的 RFC 之所以被这样标记,是因为在未来的某个时间之前,我们既不想考虑评估该提案,也不想实现所描述的功能,而且我们相信在此之前我们完全可以等待。 ## 灵感来源 PyTorch 的 RFC 流程的灵感来源于 [Rust RFC 流程](https://github.com/rust-lang/rfcs) 和 [React RFC 流程](https://github.com/reactjs/rfcs/),以及用于决议模板的 [Artsy RFC 流程](https://github.com/artsy/README/blob/main/playbooks/rfcs.md#resolution)。 ## 许可证 通过向 rfcs 贡献内容,即表示您同意您的贡献将根据本源代码树根目录下的 LICENSE 文件进行许可。
标签:PyTorch, RFC, 深度学习框架, 网络安全研究, 设计提案, 防御加固, 项目规范