TVM 社区准则

TVM采用Apache风格的模式,以能力为导向进行治理。我们相信创建一个包容的社区非常重要,在这里每个人都可以使用、贡献并影响项目的发展方向。当前贡献者列表请参阅CONTRIBUTORS.md

通用开发流程

我们欢迎社区中的每个人提交补丁、文档,并为项目提出新的发展方向。这里的关键指导原则是让社区中的每个人都能参与决策和开发。当提出重大变更时,应发送RFC以便社区讨论。我们鼓励通过公开讨论、可存档的渠道(如问题追踪、讨论论坛和邮件列表)进行交流,这样社区中的每个人都能参与并在后续过程中回顾讨论内容。

代码审查是确保代码质量的关键方式之一。高质量的代码审查能长期防止技术债务,对项目成功至关重要。合并拉取请求前必须经过审核。具备相关领域专业知识的提交者将主持审核流程,并在代码准备就绪时执行合并。相应提交者可邀请多位熟悉该代码领域的审查者参与。我们鼓励贡献者主动申请代码审查,并互相审阅彼此的代码——请记住,每个人都在为社区无偿奉献时间,高质量的代码审查本身与实际代码贡献同样耗费精力。若你为他人提供同样的帮助,你的代码也能更快获得审核。

社区应努力通过讨论达成技术决策的共识。我们希望提交者和项目管理委员会成员能以圆融的方式引导技术讨论,并在必要时提供具有明确技术依据的建议。

策略决策流程

在TVM社区中,以下战略决策需要获得2/3的绝对多数票(至少3票,且赞成票是反对票的两倍)才能通过:

  • 采用指导级社区策略,以支持新方向或整体项目演进。

  • 在项目中建立新模块。

  • 采用新的代码库:当现有已发布产品的代码库将被替换为替代代码库时。 如果此类投票未获批准,现有代码库将继续使用。这也包括在项目内创建新的子项目。

所有这些决策都是在社区讨论后做出的,这些讨论会被记录在摘要中。

Committers

提交者(Committers)是指被授予项目写入权限的个人。提交者通常负责代码的某个或某些特定领域,监督代码审查流程。贡献领域可以采取多种形式,包括代码贡献与代码审查、文档编写、教育培训以及社区推广。提交者对于保持项目高质量和健康发展至关重要。社区会积极从贡献者中寻找新的提交者。以下是帮助社区识别潜在提交者的有用特质列表:

  • 对项目的持续贡献,体现在参与RFC讨论、代码审查、新功能提案以及其他开发活动。熟悉并能主导项目中的一个或多个领域。

  • 贡献质量:高质量的、可读性强的代码贡献,表现为可直接合并的拉取请求,无需大量代码审查。有编写整洁、可维护代码的历史,并包含良好的测试用例。提供有见地的代码审查,帮助其他贡献者遵循良好标准。

  • 社区参与:积极参与讨论论坛,通过教程、演讲和推广活动宣传项目。我们鼓励提交者广泛合作,例如与社区成员进行代码审查和设计讨论,即使他们之间没有实际接触。

项目管理委员会(PMC)由活跃的代码提交者组成,负责协调讨论、管理项目发布以及提名新的提交者/PMC成员。候选人通常通过PMC内部讨论提出,随后达成共识性批准(即至少获得3张赞成票且无反对票)。任何反对意见必须附带理由。PMC成员应通过维护社区实践和准则来服务社区,使TVM成为对所有人更友好的社区。PMC成员应尽量避免提名来自自身组织的新候选人。

审阅者

评审者是那些积极为项目做出贡献并愿意参与新提交代码审查的个人。我们从活跃贡献者中识别评审者。提交者应明确邀请评审者进行审查。高质量的代码审查能长期防止技术债务积累,对项目的成功至关重要。项目中的每个拉取请求必须经过至少一位评审者的审查才能被合并。