治理

本文档基于 Ross Gardler 和 Gabriel Hanganu 所著的 仁慈的独裁者治理模型(Benevolent Dictator Governance Model) ,以 知识共享署名-相同方式共享 4.0 国际许可协议 授权。本文档本身也以相同的许可协议授权。

角色与职责

作者(Authors)

Harminder Virk(AdonisJS 的创建者)担任项目作者(Project Author)。项目作者负责项目的治理、标准和发展方向。总结如下:

  • 项目作者决定哪些新项目应归属于 AdonisJS 名下。
  • 项目作者负责为项目指派负责人(lead),并在现任负责人退位时将项目移交给新的负责人。
  • 作者有责任分享/记录框架的愿景,并使各项目负责人与之保持同步。

项目负责人(Project Leads)

AdonisJS 是核心团队创建和管理的多个包的组合。所有这些包都由项目作者选定的项目负责人来领导。

在几乎所有情况下,包的创建者都会担任项目负责人,因为是他们最初投入精力将想法变为现实。

项目负责人在项目所有方面的决策上都拥有最终决定权。然而,由于社区始终拥有 fork(分叉)的能力,此人对社区完全负责。项目负责人的职责是设定项目的战略目标,并清晰地传达给社区。他们也必须要理解整个社区,并努力在满足长期冲突需求的同时,确保项目能够长期存续。

在许多方面,项目负责人的角色关乎外交。关键在于确保随着项目扩张,合适的人被赋予对它的影响力,且社区能够团结在项目负责人的愿景周围。负责人的工作则是确保核心团队成员(见下文)代表项目做出正确的决策。一般来说,只要核心团队成员与项目的战略保持一致,项目负责人就会允许他们按期望推进。

Note

项目负责人不能将项目归档,也不能决定将其从 AdonisJS 名下移除。他们可以决定停止在该项目上的工作,而在这种情况下,我们会寻找一位新的项目负责人。

核心团队(Core team)

核心团队的成员是那些已经做出过多次宝贵贡献、如今被依赖来直接编写仓库代码并审查他人贡献的贡献者。在许多情况下,他们是程序员,但也可能以不同的角色做出贡献,例如社区参与。通常,一位核心团队成员会专注于项目的某个特定方面,并带来一定程度的专业知识和理解,从而赢得社区和项目负责人的尊重。核心团队成员并非一个正式职务,它只是有影响力的社区成员在项目负责人向其寻求指导和支持时,自然身处的一个位置。

核心团队成员对项目的整体方向没有决策权。然而,他们能够影响项目负责人。核心团队成员的职责是确保负责人了解社区的需求和集体目标,并帮助开发或引出对项目适当的贡献。通常,核心团队成员会被非正式地赋予对其特定责任领域的控制权,并被授予直接修改源代码某些区域的权限。也就是说,尽管核心团队成员没有明确的决策权,但他们的行动往往与负责人所做的决策同义。

活跃的核心团队成员(Active Core Team Members)

活跃的核心团队成员会定期为项目做出贡献。一位活跃的核心团队成员通常有一个或多个专注领域——最常见的情况是,他们负责在某个子项目仓库中进行定期的 issue 分流、修复 bug、改进文档或开发功能。

荣誉核心团队成员(Core Team Emeriti)

一些过去做出过宝贵贡献的核心团队成员,如今可能因各种原因无法再保持在同等程度的参与。这完全正常,任何对项目的过往贡献都依然受到高度赞赏。这些核心团队成员被授予荣誉核心团队成员的称号,并随时欢迎他们恢复活跃参与。

贡献者(Contributors)

贡献者是那些要么无意成为核心团队成员,要么尚未被项目负责人给予机会的社区成员。他们做出了宝贵的贡献,例如下面列出的那些,但通常无权直接更改项目代码。贡献者通过沟通工具参与项目,例如 RFC 讨论、GitHub issue 和 pull request、Discord 聊天室以及论坛。

任何人都可以成为贡献者。对项目的投入没有期望、没有特定的技能要求,也没有遴选流程。要成为贡献者,一位社区成员只需执行一项或多项对项目有益的操作。

一些贡献者已经以用户的身份参与项目,但也会发现自己正在做以下一项或多项事情:

  • 支持新用户(当前用户往往能提供最有效的新用户支持)
  • 报告 bug
  • 识别需求
  • 编程
  • 协助项目基础设施
  • 修复 bug
  • 添加功能

随着贡献者积累经验并熟悉项目,他们可能会发现项目负责人越来越依赖他们。当这种情况开始发生时,他们会逐渐承担起核心团队成员的角色,如上所述。

用户(Users)

用户是有项目需求的社区成员。他们是社区中最重要的成员:没有他们,项目就失去了存在的意义。任何人都可以成为用户;没有特定要求。

应鼓励用户尽可能多地参与项目和社区的生活。用户的贡献使项目团队能够确保他们满足了这些用户的需求。常见的用户活动包括(但不限于):

  • 传播关于项目的信息。
  • 从新用户的角度向开发者反馈项目的优势与不足。
  • 提供精神支持(一句「谢谢」大有裨益)。
  • 通过 GitHub Sponsors 提供资金支持。

持续参与项目及其社区的用户,往往会发现自己越来越投入。这样的用户随后可能会继续成为贡献者,如上所述。

支持

鼓励社区中的所有参与者在项目管理的框架内为新用户提供帮助。提供这种支持是作为一种壮大社区的方式。那些寻求支持的人应认识到,项目内的所有支持活动都是自愿的,因此是在时间允许的情况下提供。因此,需要保证响应时间或结果确定的用户,应考虑购买支持合同。然而,对于那些愿意按照项目自身的条件参与、并愿意帮助支持其他用户的人来说,社区支持渠道是理想之选。

资金捐赠(Monetary Donations)

对于一个开放开发的项目来说,资金不如积极的贡献重要。然而,有些人或组织资金充裕但时间紧缺,更愿意以现金形式做出贡献。如果你想进行一笔可观的捐赠,你或许可以赞助我们来实现一个新功能或修复一些 bug。项目网站提供了关于如何进行捐赠的清晰指引。

如果你经营着一门将本项目作为创收产品的生意,那么赞助其开发在商业上是合理的。它能确保你的产品所依赖的项目保持健康并得到积极维护。它还能提升我们在社区中的曝光度,并更容易吸引新的开发者。

品牌与所有权

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 下发布,项目负责人便不能删除或放弃该项目。