Redis的开源治理

从2009年到2020年,Salvatore Sanfilippo建立、领导和维护了Redis开源项目。在此期间,Redis没有正式的治理结构,主要作为一个BDFL式的项目运作。

随着Redis的发展、成熟和用户基础的扩大,为其持续的开发和维护从而形成一个可持续的结构变得越来越重要。Salvatore和Redis的核心贡献者希望确保项目的连续性,并构建更大的社区。基于以上因素,Redis采用了新的治理结构。

目前的治理结构

从2020年6月30日开始,Redis采用了与当前项目规模相匹配的轻型治理模式,并将早期模式的变化减至最小。治理模式旨在成为一种精英管理模式,旨在赋予那些表现出长期承诺并做出重大贡献的个人更大的话语权。

Redis的核心团队

Salvatore Sanfilippo任命了Yossi Gottlieb(yossigo)和Oran Agra(oranagra)两位继任者来接管和领导Redis项目。

在公司的支持下,我们借此机会创建了一个更加开放、可扩展和社区驱动的“核心团队”结构来运行项目。核心团队的成员是根据已证明的、长期的个人参与和贡献等标准选定的。

Redis的核心团队成员为Redis的开源项目和社区服务。他们应根据行为准则,在行为、文化和风格等方面树立良好的榜样。他们还应该以不受外来利益或冲突影响的方式,基于项目和社区的最佳利益而采取行动。

核心团队将负责Redis的核心项目,该项目是Redis的一部分,托管在Redis的主存储库中,并获得BSD许可。它还将致力于与构成Redis生态系统的其他项目保持协调发展,包括Redis客户端、卫星项目、依赖Redis的主要中间件等。

角色和职责

核心团队的职责如下:

  • 管理Redis的核心代码和文档
  • 管理新的Redis版本
  • 保持高水平的技术指导/路线图
  • 提供快速响应,包括修复/修补程序,以解决安全漏洞和其他主要问题
  • 项目治理决策和变更
  • Redis与Redis生态系统其他部分的协调
  • 管理核心团队成员

核心团队的目标是通过进一步将任务分配给那些表现出责任、知识和技能的个人,形成一个贡献者社区并给予其授权。特别是,我们希望看到社区在以下领域有更多的参与:

  • 对报告的问题进行支持、故障排除和错误修复;
  • 对贡献/请求进行分类处理。

决策制定

一般的决策由核心团队成员通过投票的方式决定:每个成员可以投赞同票或反对票。投反对票必须充分说明理由,并且最好还要有一个替代的建议。核心团队将始终试图达成全面共识,而不是少数服从多数。一般决策的例子如下:

  • 提出请求和关闭问题的日常批准
  • 开放新问题供讨论

对Redis架构、设计或理念以及核心团队结构或成员变更有重大影响的重大决策最好通过完全一致的意见来确定。如果团队无法达成全面共识,则需要多数票。重大决策的例子如下:

  • Redis core的根本变化
  • 添加新的数据结构
  • 创建RESP(Redis序列化协议)的新版本
  • 影响向后兼容性的更改
  • 添加或更改核心团队成员

需要说明的是,项目负责人有权否决重大决策。

核心团队成员

核心团队不应终身任职,但希望其能长期参与以保持Redis编程风格和社区的稳定性和一致性。

如果由Redis Ltd.资助的核心团队成员必须被替换,继任者将由Redis Ltd.与其余的团队核心成员协商后指定。

如果不是由Redis Ltd.资助的核心团队成员因任何原因不再参与,剩下的团队成员有权自己选择一个继任者。

社区论坛和交流

我们希望Redis社区尽可能热情、包容。为此,我们通过了一项行为守则,要求所有社区成员阅读和遵守。

我们鼓励所有重要的沟通都是公开的、异步的、存档的,以便社区积极参与使用此处描述的渠道。但敏感的安全问题除外,这些问题需要在公开披露之前解决。

新的Redis存储库和审批提交流程

Redis的核心源码库被托管。我们的目标是最终将所有东西(Redis核心源码和其他生态系统项目)托管在Redis GitHub组织下。提交到 Redis 源代码库的代码需要进行审查,至少需要一名非提交者的核心团队成员的批准,并且没有反对意见。

项目和开发的更新

请与项目和社区保持联系!有关项目和社区更新,请关注项目频道。开发公告将通过Redis邮件列表发布。

治理规则的更新

对规则的任何实质性修改都将被视为重大决策。轻微变更将被视为正常决定。