社区准则
TVM 采用 Apache 风格模型,以实力治理。我们相信,建立一个包容性社区非常重要,让每个人都能使用、贡献并影响项目方向。请参阅 CONTRIBUTORS.md 获取当前贡献者列表。
通用开发流程
社区欢迎所有人提交补丁、文档,或为项目提出新的方向。核心准则是:让社区中所有人都有机会参与决策与开发。当提议重大的变更时,应通过 RFC(请求评议)形式公开讨论。我们鼓励使用可归档的公开渠道(如 GitHub Issue、讨论论坛、邮件列表)进行讨论,以便所有社区成员都能参与并在日后查阅整个过程。
代码审查是确保代码质量的关键途径。高质量的代码审查有助于从长远上避免技术债务,对项目成功至关重要。每一个 Pull Request 必须经过审查后才能合并。具备相关领域专业知识的提交者将主持 PR 的审查与合并,并可邀请多位熟悉该模块的审阅者参与审查。我们鼓励贡献者主动请求代码审查,也鼓励彼此互相审查代码——请记住,大家都是志愿为社区贡献时间,高质量的代码审查本身就与代码贡献同样重要。如果你为他人审阅代码,你的代码也更容易获得及时反馈。
社区应努力通过讨论达成技术共识。我们期望提交者与 PMC(项目管理委员会)以协商的方式主导技术讨论,在必要时提供清晰的技术依据和建议。
战略决策流程
以下战略级决策须经社区实际投票的 2/3 多数(至少 3 票,且 +1 票数是 -1 票数的两倍)通过:
- 采纳一项指导性社区战略,以开启新方向或推动项目整体演进。
- 在项目中建立新的模块。
- 接纳新的代码库:当要替换已发布产品的现有代码库时。若投票未通过,现有代码库继续沿用。此规则同样适用于创建子项目。
所有战略决策须在社区公开讨论并形成书面总结。
提交者
提交者是拥有项目写权限的个体,通常负责项目某一或数个模块的代码审查工作。贡献形式包括但不限于:代码、审查、文档、教育及推广。高质量的项目离不开提交者的支持,社区也积极从活跃贡献者中识别和提名新的提交者。以下是一些评估潜在提交者的参考特征:
- 持续贡献:积极参与 RFC 讨论、代码审查、提出新特性、或参与其他开发活动。熟悉并能够对某个或多个模块负责。
- 贡献质量:高质量、易读的代码提交,能在无需大量审查的情况下合并。有创建干净、可维护代码与测试用例的记录。能够提供高水平的审查意见。
- 社区参与:活跃参与讨论、推广项目(如撰写教程、演讲、组织活动)。我们鼓励提交者跨组织协作,与未曾面对面合作的成员沟通、审查代码与设计。
PMC(项目管理委员会) 由活跃提交者组成,负责引导讨论、管理发布、提名新提交者和 PMC 成员。通常由 PMC 内部讨论并达成共识(至少 3 个 +1,且无 veto)来提名新成员。若有 veto,必须附带明确理由。PMC 应维护社区规范与准则,并努力避免提名来自自己公司的人员。
审阅者
审阅者是积极参与项目、愿意为新贡献进行代码审查的个人。社区从活跃贡献者中识别审阅者。提交者应明确邀请审阅者参与审查。高质量的审查有助于避免技术债务,对项目长期发展极其重要。每一个 Pull Request 至少需一位审阅者通过审查后才能被合并。