打开网易新闻 查看精彩图片

Ruby Central是一个支持Ruby编程语言生态系统的非营利组织,刚刚发布了一份关于2025年9月RubyGems分裂事件的调查报告。该事件中,RubyGems包管理器背后的GitHub代码库所有权被从现有维护者手中夺走。

事件背景和触发因素

根据Ruby Central董事会的声明,发布这份报告的目的是解释参与人员和决策过程。董事会还承诺采取进一步措施来"加强治理、提高透明度,并扩大社区对RubyGems管理的参与"。

报告由Richard Schneeman撰写,他是Salesforce的首席工程师,维护Heroku Ruby Buildpack,并在RubyGems事件发生一个月后加入Ruby Central董事会。Schneeman表示,这个事件"非常主观",该文件是在"多次失败尝试...由于追求客观性而导致"之后完成的。

据Schneeman介绍,事件的关键触发因素是André Arko在未咨询Ruby Central的情况下,推出了rv Ruby管理工具并建立了Spinel组织。Arko此前是RubyGems维护者、Ruby Central顾问,同时也从Ruby Central获得待命工程服务报酬。Arko的合作伙伴是Samuel Giddins,Ruby Central的安全工程师。

冲突升级过程

Arko此前创建了RubyTogether组织,该组织于2022年与Ruby Central合并。Spinel合作公司似乎具有类似的结构。Schneeman引用了Ruby Central开源总监Marty Haught在Slack上的消息,Haught写道要"加速移除André",可能是因为他现在被视为竞争对手。Giddins在9月初自愿离开了Ruby Central。

9月份后续发生的事情充满了Ruby Central与RubyGems维护者之间的混乱和沟通不足。正如我们当时报道的,RubyGems GitHub组织被重命名为Ruby Central,Haught成为RubyGems的维护者,所有其他维护者都被移除。受影响的维护者之一Ellen Dash表示:"强制移除那些维护RubyGems和Bundler超过十年的人员本质上是一种敌对行为。"Bundler是Ruby依赖管理器。这些变更是通过Ruby核心成员Hiroshi Shibata实现的,他拥有必要的权限并按照Ruby Central的指示行动。

事件结果和社区反应

经过复杂的来回沟通和相当大的不满情绪后,Ruby Central保持了对RubyGems GitHub代码库的控制,几位前维护者分叉了RubyGems创建了Gem Cooperative。10月份,Ruby创始人松本行弘表示,RubyGems代码库所有权将过渡到Ruby核心团队,同时继续由Ruby Central管理。

前RubyGems维护者之一Josef Simánek在Reddit上对报告做出回应。他说,Ruby Central应该做的是"信任并与所有维护者沟通来解决任何项目问题"。Simánek表示,Ruby Central不需要拥有代码库就能运营RubyGems服务。他表示仍然不满意"Ruby Central决定抛弃几乎整个原始RubyGems/Bundler/RubyGems.org团队,并将服务置于真正的危险之中"。

Schneeman的回应是,问题的一部分在于维护者离开了。他说:"随着另一方的离开...这让Ruby Central承担(并拥有)这个烂摊子。"

开源项目的经验教训

曾领导Homebrew项目并在当时试图调解友好解决方案但未成功的Mike McQuaid在1月份的FOSDEM上谈到了这一事件。他指出RubyGems"不是什么小众工具...我们谈论的是互联网上的关键基础设施"。McQuaid提到"双方都谈到了他们如何与对方进行法律诉讼",他认为这对和解机会是致命的。

McQuaid专注于开源项目的经验教训,而不是详细重述谁做了什么说了什么。可持续性是其中的一部分,因为付费角色和其他商业利益在RubyGems分裂中发挥了作用,治理是另一部分。他说:"如果你的项目还没有因治理或金钱问题发生争论,那么有一天可能会发生。要做好准备,尽量在问题出现之前处理这些事情。"

McQuaid告诉The Register:"这份回顾性报告是积极的,因为它显示了Ruby Central正在吸取教训并公布比以前更具体的信息。我仍然不认为Ruby Central做对了或正在做对所有事情,但我很高兴看到比以前更多的问责制和反思。"

Q&A

Q1:什么是RubyGems分裂事件?

A:RubyGems分裂事件是指2025年9月份,Ruby Central强制接管了RubyGems包管理器的GitHub代码库所有权,移除了所有现有维护者,导致多位维护RubyGems超过十年的开发者被迫离开,并另外创建了Gem Cooperative项目。

Q2:为什么Ruby Central要接管RubyGems代码库?

A:据报告显示,主要触发因素是前维护者André Arko在未咨询Ruby Central的情况下推出了竞争性的rv Ruby管理工具并建立了Spinel组织。Ruby Central认为这构成了竞争威胁,因此决定"加速移除"Arko并接管代码库控制权。

Q3:这个事件对开源社区有什么启示?

A:Mike McQuaid指出,这个事件说明开源项目需要提前准备治理和资金管理机制。如果项目还没有因治理或金钱问题发生争论,将来很可能会遇到,因此应该在问题出现之前就建立相应的处理机制,避免类似的分裂事件。