如何为开源社区编写治理流程文档
在开源社区中,我们经常讨论贡献指南、行为准则以及新贡献者引导。但我们很少讨论的一个话题是什么?治理。
治理听起来很严肃,但其核心含义很简单:我们如何做决策,以及谁来做决策?无论你是在基层项目与几位维护者合作,还是在一个成熟的开源生态系统中工作,治理流程都会影响人们如何贡献、管理问题以及成长为领导者。
而且,就像开源中的任何事情一样——如果没有文档记录,它可能就不存在。
在本文中,我将解释为什么治理文档很重要,应该包含哪些内容,以及如何编写有用、清晰且人性化的治理流程文档。
目录
- 为什么治理很重要(以及为什么要文档化)
- 治理文档应包含的内容
- 使治理文档清晰且友好
- 如何开始为开源社区编写治理流程文档
为什么治理很重要(以及为什么要文档化)
每个开源社区都已经有某种形式的治理(即使没有写下来)。有时是单个维护者做出所有决策,有时是一小群人“知道什么是最好的”。这里的危险不是结构本身,而是缺乏清晰度。
当治理流程没有文档化时:
- 新贡献者可能对如何参与感到困惑
- 决策显得武断或有偏见
- 权力动态变得不可见
- 冲突更难管理或公平解决
文档化治理可以促进信任、透明度和可预测性。它并不意味着将贡献者限制在僵化的规则中,而是为社区提供对事物如何运作以及如何变化的共同理解。
治理文档应包含的内容
将你的治理文档视为一张地图。它应该帮助贡献者理解他们所处的位置、事物如何运作以及他们可以采取哪些路径,包括:
-
使命和价值观:项目为什么存在?哪些原则指导决策或优先级?这可以为治理定下基调并邀请协作。
-
角色和职责:维护者是谁?贡献者、审阅者和核心团队成员可以做什么?谁可以打开拉取请求?审阅它们?批准提案?明确定义期望和边界。
-
决策过程:技术决策是如何做出的?通过共识?投票?是否有最终决定权的首席维护者?哪些类型的决策需要社区输入?如何解决争议?
-
冲突解决:如果人们不同意会发生什么?是否有尊重地升级问题的流程?
-
提案流程:如何提出和讨论更改?是否使用 RFC 系统、GitHub 讨论或其他方式?审查或反馈的典型时间表是什么?
-
领导变更:如何添加新维护者?如何辞职或被移除?
-
修改治理:治理流程本身及其文档如何更改?谁有权这样做?
-
贡献指南:贡献者如何开始?如何提交拉取请求?审查和批准是什么样的?是否有贡献者阶梯?当某人定期贡献后会发生什么?让每个人都能轻松了解整体贡献者体验。
-
行为准则(链接或嵌入):治理和行为密切相关。一个塑造文化,另一个保护文化。
使治理文档清晰且友好
治理文档不必读起来像法律政策。事实上,它不应该。清晰、友好的语气有助于读者感到被包容,特别是新来者或来自代表性不足群体的贡献者。
你在治理文档中使用的语气将塑造人们对社区的感受。它可能感觉像一扇锁着的门,也可能是一条清晰、友好的前进道路。以下是如何保持人性化:
-
使用简单、清晰的语言。避免过于复杂的术语,并在需要时解释缩写。
-
具体明确。“你必须在 Discord 服务器中才能投票”比“需要参与”更好。
-
保持简短易读。使用列表、标题和项目符号。
-
解释“为什么”。提供更多背景信息。当人们理解规则存在的原因时,他们更可能信任规则。
-
使用示例或场景。例如,“当两位维护者在技术方向上意见不一致时…”
-
让它感觉开放。邀请贡献者提问或建议更改,包括治理流程。仅此一点就可以帮助社区以更少的摩擦发展。
如何开始为开源社区编写治理流程文档
我曾帮助在多年非正式的项目中编写治理文档。最难的部分?开始。总是担心越界或“让它太正式”。
但写下事情并不意味着一成不变。事实上,最好的治理文档是活文档,与社区共同创建,定期审查,并随着项目的发展而更新。
我学到的一些经验:
-
使用社区的问题作为指导。如果人们不断问“我如何成为维护者?”,就写下来。
-
让人们审查和评论。共同创建——不要只是强加。
如果你不确定从哪里开始,可以参考那些做得好的开源项目。例如,Kubernetes 在其社区仓库中有一个结构良好的治理模型文档,概述了从角色到决策过程的一切。
Tor 项目也维护透明且社区驱动的治理文档(我曾有机会贡献的一个项目),定义了角色、职责和决策路径,并向世界各地的贡献者传达。
结论
编写治理文档不必令人害怕。它只是让不可见的东西变得可见,并以邀请人们加入的方式完成。当你写下事物如何运作时,你为他人自信地贡献、理解他们加入的社区并在其中成长创造了空间。这就是治理应该关注的。
所以,如果你的项目还没有记录其治理原则,不要等到它“足够大”。现在就开始,从小处着手,让它与你的社区一起发展。
记住:治理不是关于控制,而是关于清晰。