PyTorch 治理¶
治理理念与指导原则¶
PyTorch 采用了一种治理结构,由一小部分维护者主导整个项目的发展方向,并强烈倾向于 PyTorch 的设计哲学,该哲学重视设计和代码的贡献。除了核心维护者之外,还有一组范围稍广的核心开发者,他们拥有直接合并拉取请求的能力,并负责核心代码库的各个部分。
除了维护者和核心开发者之外,社区成员也鼓励参与进来,提交问题、提出建议、审查拉取请求,并在社区中积极活跃。鉴于贡献程度和投入意愿,任何人都可以被授予代码库部分部分的写入权限或所有权。
基于这一治理结构,该项目有以下核心运营原则,决策由此产生,整体文化也由此衍生:
代码贡献 比企业赞助更为重要,独立开发者备受重视。
项目影响力 是通过贡献获得的(无论是PR、论坛回答、代码审查或其他形式)
关键人物及其职能¶
项目维护者¶
项目维护者为 PyTorch 项目提供领导和指导。具体内容包括:
为该项目阐明一个连贯的长期愿景
具备对 PyTorch 代码库的深入理解
以所有相关方都能接受的方式协商并解决有争议的问题
PyTorch 维护者:
核心开发者¶
PyTorch项目由一组核心开发者开发。您可以在PyTorch治理 | 感兴趣的人中找到核心开发者的名单。
虽然成员资格由“PyTorch核心”团队在GitHub上的“PyTorch” 组织中的存在决定,但贡献有多种形式:
将更改提交到代码仓库;
审查他人的拉取请求;
在问题跟踪器上分类错误报告;
在官方 PyTorch 交流渠道上讨论话题。
决策制定¶
无争议的更改¶
主要的工作通过 GitHub 上的错误跟踪问题和拉取请求进行。核心开发者应避免直接将更改推送到 PyTorch 仓库,而是依赖拉取请求。核心开发者批准一个拉取请求后,可以将其合并而无需进一步流程。核心开发者和项目维护者最终批准这些更改。
通知相关专家有关错误跟踪问题或拉取请求的信息非常重要。在给定的兴趣领域中,专家的评审是强烈推荐的,尤其是在拉取请求的批准方面。未能这样做可能会导致相关专家撤销该更改。
有争议的决策过程¶
在给定的兴趣领域进行重大更改需要在GitHub上开启一个议题进行讨论。这包括:
对框架进行任何语义或语法上的更改。
对 Python 或 Cpp API 的不兼容向后更改。
对核心框架的补充,包括在现有库中新增的重要功能。
移除核心功能
项目维护人员最终批准这些更改。
FAQ¶
Q: 如果我想拥有(或部分拥有)项目的一部分,比如一个域名API(即Torch Vision)? 这是完全可能的。 第一步是开始为现有的项目领域做贡献,并促进其健康和成功。除此之外,你还可以通过GitHub问题提交新功能或更改的提案,以改进该项目领域。
Q: 如果我是一家公司,希望在内部使用PyTorch进行开发,是否可以被授予或购买一个董事会席位以推动项目方向? 不,PyTorch项目严格遵循由维护者主导的项目理念,没有董事会或任何机制接受与获取技术方向影响力相关的财务贡献。
Q: PyTorch项目是否支持资助或有办法支持使用或贡献项目的独立开发者? 目前还没有。不过,我们正在寻找更好的方式来支持PyTorch周围的独立开发者社区。如果您有任何建议或意见,请在PyTorch论坛上联系我们进行讨论。
Q: 如何为项目贡献代码? 如果更改相对较小,可以立即在GitHub上打开一个拉取请求以供项目提交者审查和合并。对于较大的更改,请先打开一个问题以提出建议并进行讨论。请参阅PyTorch贡献者指南了解贡献指南。
Q: 我能成为项目中的提交者吗? 很遗憾,当前向PyTorch提交代码的过程涉及与Facebook基础设施的交互,只有Facebook员工才能触发。然而,我们正在寻找方法来扩展提交者基础,以包括Facebook以外的个人,并将在工具允许时提供更新。
Q: 如果我想在会议上或其他场合提供一个PyTorch教程,是否需要正式成为提交者(committer)才能这样做? 不需要, 我们鼓励社区成员在他们能够的时候,在任何地方展示他们的工作。请通过 pytorch-marketing@fb.com 获取市场支持。