社区成员
概述
本章节深入探讨了构成开源社区基础的多个关键要素,为理解和参与开源社区的各方提供了全面的指导。首先,通过详细阐述社区的组织结构和各个角色的职责,本节为读者揭示了开源社区的内部工作机制和成员互动方式。这包括了对维护者、贡献者、用户等关键角色的详细介绍,强调了每个角色在社区发展中的重要性和责任。接下来,许可证的概述部分为读者提供了关于如何选择和理解开源许可证的宝贵信息,这对于确保项目合法合规至关重要。同时,本章还详细介绍了社区中常用的沟通渠道和工具,强调了透明、高效沟通在开源社区成功运作中的重要性。
在开源社区中,成员之间如何交互,社区运行遵循什么流程,以及如何构建开源社区,这些话题都属于开源治理领域,是社区管理模型的一部分。一个明确的开源社区治理模型能提供一个推动项目向前发展的通用方法。但每个项目都运行模式与管理体系都不尽相同。在本章及后面几章中,我们试图提供一个较为通用的社区治理模板,并回答以下问题:
- 谁来做决定?
- 社区治理有哪些原则?
- 如何新增维护者?
- 维护社区都有哪些步骤?
- 有哪些沟通模式?
在我们看来,很多事情最好在事前决定好,而不是在事后再去解决。这样可以避免很多不必要的麻烦,尤其是关于知识产权/许可证、社区成员角色、社区行为准则等内容。同时我们也奉行少即是多原则,将以上需要事前决定的内容授权给项目初创团队自行决定,而不是试图在前期就替他们解决/决定全部内容。我们只会明确相关治理原则并提供像本手册这样的指导内容以及相关内容模板,这样做的目的是为了避免过度规范化,让项目初创团队有更多的自由度,同时也能够更好地适应不同的项目需求。例如,项目组可以为投票程序和选举制定自己的规则,而 PMC 同样可以确定项目中都有哪些角色,以及每个角色的职责是什么。
社区成员
OWNERS.md
文件的形式公布(不强求,但这也是社区激励的一部分),一个明确的贡献者清单以及清晰的晋升路线对于吸引新贡献者非常有帮助。开源社区的健康和活力依赖于其成员的多样化角色和贡献。在这个生态系统中,每个角色都扮演着独特且关键的部分。以下是社区中最常见的四种角色,他们共同构成了社区的动力系统。
领导者(Leader)
领导者在开源社区中扮演着战略决策和方向设定的角色。他们通常是社区的创始人或长期成员,对社区的愿景和目标有深刻的理解。领导者负责确立社区文化,设定长远目标,并在关键时刻提供指导。他们还需要处理社区的外部关系,如与其他组织的合作和推广社区项目。领导者的影响力和决策能力对社区的健康和持续发展至关重要。
维护者(Maintainer)
维护者是社区中技术方面的关键人物,大多数项目会将一些决策权委托给负责维护项目的特定人群,也就是维护者。他们通常负责代码库的管理,包括审查和合并代码贡献、发布新版本和维护文档。维护者还需确保代码的质量和项目的稳定性,同时也是社区成员就技术问题寻求帮助的首要联系人。他们在技术决策和项目方向上有显著的发言权。
提交者(Committer)
提交者是那些被授予直接向项目代码库提交更改权限的个人,在很多项目中维护者和提交者是同一回事。这通常是对那些显示出持续贡献和对项目有深入理解的贡献者的一种认可。提交者除了贡献代码之外,还可能参与代码审查过程,帮助新贡献者和维护者协调工作。他们在保持项目动力和引导新贡献者方面扮演着重要角色。
贡献者(Contributor)
健康项目通常也有更广泛的以更小的方式作出贡献的人群,他们就是贡献者。贡献者是开源社区的基础,包括所有为项目做出贡献的人员,不仅限于编写代码。这些贡献可以是改进文档、报告和修复错误、设计图形界面、提供翻译、回答社区问题等。贡献者的多样性和活跃性是衡量社区健康的关键指标。他们通过各种形式的参与,为社区注入新鲜血液和创新思想。
其他角色
除了上面四种角色以外,不同的开源社区还可能有其他的角色,以下是一些常见的角色:
审查者(Reviewer):在一些开源项目中,为了激励贡献者而设置了 Reviewer 这一角色。审查者是负责审查社区贡献者提交的代码和文档的专家。他们的主要职责是确保所有贡献符合项目的质量标准、风格指南和技术方向。这不仅包括代码的功能性和效率,还包括代码的可读性、可维护性和文档的完整性。
项目管理者(Project Manager):项目管理者负责日常的组织工作,如规划会议、协调发布周期和管理任务。
社区协调人:社区协调人则是沟通的桥梁,他们促进成员间的互动,处理冲突,保持社区文化的积极和包容。
倡导者(Advocates)/布道者(Evangelist):积极推广社区和其项目的成员。通过撰写博客、在社交媒体上发言等方式增加项目的可见性和影响力。
赞助者(Sponsors):为社区或特定项目提供财务或资源支持的个人或组织。帮助社区获得必要的资源,支持项目的持续发展。