TVM 社区指南#

TVM 采用 Apache 风格模型,以优点治理。我们认为,创建包容的社区是很重要的,在这里每个人都可以使用、贡献和影响项目的方向。查看当前的贡献者列表 CONTRIBUTORS.md

一般开发过程#

欢迎社区中的每个人发送补丁、文件,并对项目提出新的方向。这里的关键指导方针是让社区中的每个人都参与到决策和开发中来。当提出重大变更时,应发送 RFC 以供社区讨论。鼓励公众讨论、可存档渠道,如问题、讨论论坛和邮件列表,这样社区中的每个人都可以参与和审查过程。

代码评审是确保代码质量的关键方法之一。高质量的代码审查可以防止长期的技术债务,并且对项目的成功至关重要。PR 在合并之前需要被审查。具有相应领域专业知识的提交者将协调 PR,并在代码就绪时合并代码。相应的提交者可以请求多个熟悉代码区域的评审人员。鼓励贡献者自己要求代码评审,并帮助评审彼此的代码——记住,每个人都是自愿为社区贡献时间的,高质量的代码评审本身的成本与实际的代码贡献是一样的,如果你帮助其他人,你的代码也可以很快被评审。

社区应该努力通过讨论就技术决定达成共识。希望委员会和私营军事委员会以外交方式主持技术讨论,并在必要时提供具有明确技术推理的建议。

Committers#

Committers are individuals who are granted the write access to the project. A committer is usually responsible for a certain area or several areas of the code where they oversee the code review process. The area of contribution can take all forms, including code contributions and code reviews, documents, education, and outreach. Committers are essential for a high quality and healthy project. The community actively look for new committers from contributors. Here is a list of useful traits that help the community to recognize potential committers:

  • Sustained contribution to the project, demonstrated by discussion over RFCs, code reviews and proposals of new features, and other development activities. Being familiar with, and being able to take ownership on one or several areas of the project.

  • Quality of contributions: High-quality, readable code contributions indicated by pull requests that can be merged without a substantial code review. History of creating clean, maintainable code and including good test cases. Informative code reviews to help other contributors that adhere to a good standard.

  • Community involvement: active participation in the discussion forum, promote the projects via tutorials, talks and outreach. We encourage committers to collaborate broadly, e.g. do code reviews and discuss designs with community members that they do not interact physically.

The Project Management Committee (PMC) consists group of active committers that moderate the discussion, manage the project release, and proposes new committer/PMC members. Potential candidates are usually proposed via an internal discussion among PMCs, followed by a consensus approval, (i.e. at least 3 +1 votes, and no vetoes). Any veto must be accompanied by reasoning. PMCs should serve the community by upholding the community practices and guidelines TVM a better community for everyone. PMCs should strive to only nominate new candidates outside of their own organization.

Reviewers#

Reviewers are individuals who actively contributed to the project and are willing to participate in the code review of new contributions. We identify reviewers from active contributors. The committers should explicitly solicit reviews from reviewers. High-quality code reviews prevent technical debt for long-term and are crucial to the success of the project. A pull request to the project has to be reviewed by at least one reviewer in order to be merged.