治理
角色与职责
作者
Harminder Virk(AdonisJS 的创建者)担任项目作者(Project Author)。项目作者负责项目的治理、标准与发展方向。概括来说:
- 项目作者决定哪些新项目应当纳入 AdonisJS 旗下。
- 项目作者负责为各项目指派负责人,并在现任负责人卸任时将项目移交给新负责人。
- 作者有责任分享/记录框架的愿景,并让各项目负责人与之保持同步。
项目负责人
AdonisJS 是多个由核心团队创建和管理的软件包的组合。所有这些软件包都由项目作者选定的项目负责人(Project Lead)来领导。
在几乎所有情况下,软件包的创建者会担任项目负责人,因为他们是为此想法付诸最初努力的人。
项目负责人对项目各方面决策拥有最终决定权。然而,由于社区始终拥有 fork(分叉)的能力,此人对社区完全负责。项目负责人的责任是制定项目的战略目标,并向社区清晰地传达这些目标。同时,他们还必须整体理解社区,在满足众多相互冲突需求的同时,尽可能确保项目能够长期存续。
在许多方面,项目负责人的角色关乎外交。关键在于确保随着项目扩张,正确的人能够对其施加影响,并且社区能够团结在项目负责人愿景的周围。随后,负责人的工作是确保核心团队成员(见下文)代表项目做出正确的决策。一般而言,只要核心团队成员与项目战略保持一致,项目负责人就会允许他们按自己的意愿推进。
项目负责人不能存档或决定将项目从 AdonisJS 旗下移除。他们可以决定停止该项目的工作,在这种情况下,我们会寻找新的项目负责人。
核心团队
核心团队成员是指那些已经为项目做出过多次有价值贡献,并且现在被信赖来直接编写代码到仓库中、同时审查他人贡献的贡献者。在很多情况下,他们是程序员,但也可能以其他角色贡献,例如社区运营。通常,一名核心团队成员会专注于项目的某个特定方面,并带来一定的专业知识和理解,从而赢得社区和项目负责人的尊重。核心团队成员并非一个正式职位,它只是有影响力的社区成员在项目负责人向他们寻求指导和帮助时会自然处于的位置。
核心团队成员对项目的总体方向没有决策权。不过,他们能够影响项目负责人。核心团队成员的职责是确保负责人了解社区的需求和集体目标,并帮助开发或引导对项目适当的贡献。通常,核心团队成员会被非正式地赋予其特定责任领域的控制权,并被授予直接修改源代码某些区域的权限。也就是说,尽管核心团队成员没有明确决策权,但他们往往会发现自己的行动与负责人做出的决策如出一辙。
活跃核心团队成员
活跃核心团队成员会定期为项目做出贡献。一名活跃核心团队成员通常有一个或多个专注领域——最常见的情况下,他们会负责某个子项目仓库中常规的 issue 分类、缺陷修复、文档改进或功能开发。
荣誉核心团队成员
一些过去做出过宝贵贡献的核心成员,如今可能由于各种原因无法维持同等程度的参与。这完全正常,任何过去的贡献依然备受感激。这些核心成员作为荣誉核心成员(Core Team Emeriti)受到表彰,并随时欢迎恢复活跃参与。
贡献者
贡献者是指那些要么无意成为核心团队成员,要么尚未获得项目负责人机会的社区成员。他们做出有价值的贡献,例如下面列出的那些,但通常无权直接修改项目代码。贡献者通过沟通工具参与项目,例如 RFC 讨论、GitHub issue 与 pull request、Discord 聊天室以及论坛。
任何人都可以成为贡献者。对项目没有参与义务的期望,没有特定的技能要求,也没有选拔流程。要成为贡献者,社区成员只需执行一个或多个对项目有益的操作。
一些贡献者已经以用户的身份参与项目,同时也会发现自己正在做以下一项或多项事情:
- 支持新用户(现有用户通常能提供最有效的新用户支持)
- 报告缺陷
- 识别需求
- 编程
- 协助项目基础设施
- 修复缺陷
- 添加功能
随着贡献者积累经验和熟悉度,他们可能会发现项目负责人开始越来越依赖他们。当这种情况发生时,他们会逐渐承担核心团队成员的角色,如上所述。
用户
用户是指有项目需求的社区成员。他们是社区中最重要的成员:没有他们,项目将毫无意义。任何人都可以成为用户;没有特定要求。
应当鼓励用户尽可能多地参与项目和社区的生活。用户的贡献使项目团队能够确保满足这些用户的需求。常见的用户活动包括(但不限于):
- 宣传推广项目。
- 从新用户的角度向开发者反馈项目的优势与不足。
- 提供精神支持(一句"谢谢"意义非凡)。
- 通过 GitHub Sponsors 提供财务支持。
持续参与项目和社区的用户,往往会发现自己越来越投入其中。这样的用户随后可能会如上所述成为贡献者。
支持
我们鼓励社区的所有参与者在项目管理的框架内为新用户提供支持。提供这种支持是为了壮大社区。寻求帮助的人应当认识到,项目内的所有支持活动都是自愿的,因此是在时间允许的情况下提供的。因此,需要保证响应时间或结果的使用者应当考虑购买支持合同。不过,对于那些愿意按项目的规则参与、并愿意帮助其他用户的社区成员来说,社区支持渠道是理想的选择。
资金捐赠
对于一个开放开发的项目而言,资金不如积极的贡献重要。然而,有些个人或组织资金充裕但时间紧张,更愿意以现金形式做出贡献。如果你想进行重大捐赠,或许可以赞助我们实现某个新功能或修复一些缺陷。项目网站提供了关于如何进行捐赠的明确指引。
如果你运营一个将本项目作为创收产品的业务,赞助其开发在商业上是合理的。它能确保你产品所依赖的项目保持健康并处于积极维护之中。它还能提升我们在社区中的曝光度,并更容易吸引新的开发者。
品牌与所有权
AdonisJS(末尾拼写为"JS")是 Harminder Virk 的注册商标。
只有 @adonisjs npm scope 下以及 AdonisJS GitHub 组织下的项目,才由核心团队管理并提供官方支持。
此外,你不得以可能造成与 AdonisJS 存在任何官方关联或背书误解的方式使用 AdonisJS 名称或标志。任何可能引起客户混淆的 AdonisJS 名称或标志的使用都是不被允许的。
这包括以强调 AdonisJS 品牌的方式为产品或服务命名,例如 "AdonisJS UIKit" 或 "AdonisJS Studio",以及使用类似 "adonisjs-studio.com" 的域名。
相反,你必须使用自己的品牌名称,并以能够明显区别于 AdonisJS 的方式使用。
此外,未经明确书面同意,你不得将我们的商标用于 T 恤、贴纸或其他周边商品。
AdonisJS 旗下的项目
AdonisJS 旗下的项目是项目作者的知识产权。一旦由项目负责人创建的项目成为"AdonisJS GitHub 组织"的一部分,或者发布在 @adonisjs npm scope 下,项目负责人便不能删除或放弃该项目。
本治理文档基于 Ross Gardler 和 Gabriel Hanganu 撰写的仁慈独裁者治理模型(Benevolent Dictator Governance Model),采用知识共享署名-相同方式共享 4.0 国际许可协议(Creative Commons Attribution-ShareAlike 4.0 International License)授权。本文档本身也同样采用该许可协议授权。