TVM 社区准则
TVM 采用 Apache 风格的模型,并以贡献价值为治理原则。我们认为,创建一个包容性的社区非常重要,让每个人都可以使用该项目、为其贡献力量并影响其发展方向。有关当前贡献者列表,请参阅 CONTRIBUTORS.md。
通用开发流程
社区中的每个人都欢迎发送补丁、文档,并为项目提出新的方向。此处的关键指导原则是让社区中的每个人都能够参与决策和开发。当提出重大更改时,应发送 RFC 以允许社区讨论。我们鼓励公开讨论、可存档的渠道,例如 issues、讨论论坛和邮件列表,以便社区中的每个人都可以参与并在以后查看该过程。
代码审查是确保代码质量的关键方法之一。高质量的代码审查可以防止长期的技术债务,并且对于项目的成功至关重要。pull request 需要在合并之前进行审查。在该领域具有专业知识的提交者将负责审核 pull request,并在代码准备就绪时合并代码。相应的提交者可以请求多位熟悉该代码领域的审阅者。我们鼓励贡献者自己请求代码审查,并互相帮助审查彼此的代码——请记住,每个人都在为社区志愿奉献时间,高质量的代码审查本身的成本与实际的代码贡献一样多,如果您也为他人提供同样的帮助,您的代码就可以得到快速审查。
社区应努力通过讨论就技术决策达成共识。我们希望提交者和 PMC 以外交方式主持技术讨论,并在必要时提供具有明确技术推理的建议。
策略决策流程
在 TVM 社区中,需要 2/3 多数(至少 3 票,且 +1 票数是 -1 票数的两倍)的约束性决策才能做出以下战略决策
采纳指导级别的社区策略,以支持新的方向或整体项目演进。
在项目中建立新模块。
采纳新的代码库:当现有已发布产品的代码库要替换为替代代码库时。如果此类投票未能获得批准,则现有代码库将继续存在。这也涵盖了在项目中创建新的子项目。
所有这些决策都是在社区对话之后做出的,这些对话被记录为摘要的一部分。
提交者
提交者是被授予项目写入权限的个人。提交者通常负责代码的某个或多个领域,他们在其中监督代码审查过程。贡献领域可以采取各种形式,包括代码贡献和代码审查、文档、教育和推广。提交者对于高质量和健康的项目至关重要。社区积极从贡献者中寻找新的提交者。以下是一些有用的特质,可以帮助社区识别潜在的提交者
持续为项目做出贡献,通过对 RFC 的讨论、代码审查和新功能的提案以及其他开发活动来证明。熟悉项目的一个或多个领域,并能够承担责任。
贡献质量:高质量、可读的代码贡献,通过无需大量代码审查即可合并的 pull request 来体现。创建干净、可维护的代码并包含良好的测试用例的历史记录。提供信息丰富的代码审查,以帮助其他贡献者遵守良好标准。
社区参与:积极参与讨论论坛,通过教程、演讲和推广来宣传项目。我们鼓励提交者进行广泛协作,例如与他们没有实际互动的社区成员进行代码审查和讨论设计。
项目管理委员会 (PMC) 由一群活跃的提交者组成,他们主持讨论、管理项目发布,并提议新的提交者/PMC 成员。潜在的候选人通常通过 PMC 之间的内部讨论提出,然后通过共识批准(即至少 3 票 +1 票,且没有否决票)。任何否决都必须附有理由。PMC 应通过维护社区实践和准则,使 TVM 成为每个人的更好社区,从而为社区服务。PMC 应努力仅提名其自身组织以外的新候选人。
审阅者
审阅者是积极为项目做出贡献并愿意参与新贡献的代码审查的个人。我们从活跃的贡献者中识别审阅者。提交者应明确征求审阅者的意见。高质量的代码审查可以防止长期的技术债务,并且对于项目的成功至关重要。对项目的 pull request 必须至少由一位审阅者审阅才能合并。