提交者指南

本文档旨在为提交者提供一些实用建议,内容将不断更新完善。 其中大部分经验教训来自开发过程中的实践总结。 我们欢迎每一位提交者为本文档贡献内容。 关于提交者职责和通用开发流程的概述,请参阅TVM社区指南

社区优先

社区的集体努力推动项目向前发展,并使项目对每个人来说都更加出色。当我们做出决策时,时刻牢记社区总是有益的。以下是一些我们可以思考的示例问题:

  • 如何鼓励新贡献者更深入地参与项目?

  • 我能帮助节省其他贡献者的时间吗?

  • 我是否让社区的其他成员能够参与设计提案?

公共归档原则

虽然面对面的私下讨论等渠道对开发很有帮助,但它们也为更广泛社区的参与设置了障碍。Apache的开发方式要求所有决策都在公开渠道做出,这些渠道会被存档并供所有人查阅。因此,任何贡献者都可以通过查阅存档来跟进开发进度,并随时加入开发。

虽然这一原则适用于每一位贡献者, 但对于提交者来说尤为重要。 以下是该原则的一些应用示例:

  • 当从个人渠道收到与项目相关的问题时,鼓励对方在讨论论坛中开设公开讨论帖,这样社区中的其他成员也能从解答中受益。

  • 在面对面讨论后,将讨论摘要发送到公共频道(作为RFC或讨论主题)。

独立项目管理

在参与项目时,每个人都应被视为戴着Apache提交者的身份。也就是说,在项目活动背景下,提交者应当以项目的最佳利益行事。在所有方面,区分你作为提交者与其他可能角色的身份都非常重要。

在项目参与过程中,明确说明你当前所代表的身份角色(特别是在可能引起混淆的情况下)会很有帮助,尤其是当你并非以提交者身份参与时。以下是两个示例:

  • “戴着[foo]的帽子:[当扮演foo角色而非提交者时的消息]”。

  • "以Apache TVM贡献者身份发言:[作为提交者时的发言]"

管理 Pull Request

以下是一些指导拉取请求的小贴士。 你也可以查看代码审查

  • 将该PR分配给自己,以便其他提交者知道该PR已经被处理。

  • 利用状态标签来显示当前状态。

  • 检查是否需要发送RFC。

  • 如果贡献者尚未请求审阅者,请礼貌地请贡献者进行操作。 如果该PR来自新贡献者, 请协助贡献者请求审阅者 并提醒贡献者下次自行操作。

  • 审核评论,要求审阅者明确批准。

  • 将PR标记为已接受并感谢贡献者/评审者。

  • 合并这个PR :)

时间管理

提交者可以做很多事情,例如主持讨论、审核拉取请求和贡献代码。

参与开源项目工作可能很有收获,但有时也会让人感到有些不知所措。适当的时间管理可能有助于缓解这个问题。例如,一些代码提交者每周会安排一个"社区日",在这天他们会积极处理未完成的拉取请求,而在其他时间则较少关注社区动态。

请记住,您的贡献永远不会消失,因此在为项目贡献力量时,请从容不迫,按照自己的节奏来 :)

广泛协作

有时,我们倾向于只与自己熟悉的人互动。 然而,广泛的协作对项目的成功至关重要。 请记住这一点,尝试为那些你未曾线下交流过的社区成员引导PR(Pull Requests),并邀请他们进行代码审查。