开源项目管理权争夺:原核心维护者被踢,争议不断

09-27 06:33

有人的地方就有江湖,开源世界也不例外。近期,一位长期参与开源项目的开发者愤怒指责,自己深度维护十多年的项目遭遇“恶意接管”,最终自己被“踢出局”。该项目随后被一家非营利公司的开源总监接手,他还毫不留情地移除了所有其他维护者。


几天后,大部分“移除”操作被撤销,该组织的开源总监却轻描淡写地称这只是一个“错误”。然而,没过几天,他又以安全之名,再次将所有维护者从GitHub组织中移除。


如此戏剧性的剧情,正在主流编程语言Ruby社区上演,引发了巨大争议。Apache CouchDB的开发者、Relaxed公司的创始人之一Jan Lehnardt在Mastodon上质问道:“Ruby到底发生了什么鬼事情?”



“惨遭踢出局”的开源维护者


这其实是一场关于开源项目管理权的纷争,源头要从RubyGems和Bundler这两款工具说起。


RubyGems是Ruby的标准包管理器,Bundler是依赖管理器,由非营利组织Ruby Central赞助。多年来,这些工具由包括Ellen Dash和André Arko在内的专业团队义务维护。


不久前,RubyGems项目的重要长期维护者之一Ellen Dash(网名duckinator)发布PDF实名举报,Ruby Central组织无故删除了所有维护者的权限。



https://pup-e.com/goodbye-rubygems.pdf


据Ellen Dash描述,9月9日,一位RubyGems维护者在未作解释的情况下,进行了一系列调整:将RubyGems的GitHub enterprise重命名为Ruby Central;把非维护者Marty Haught(Ruby Central的开源总监)添加为维护者,同时将其他所有维护者移出GitHub仓库。


对此,Ellen Dash十分不解。她从13岁起就是Ruby社区成员,担任RubyGems维护者也有十年之久,不明白为何在毫无通知的情况下就失去了项目提交权限。于是,她与实施操作的维护者据理力争。


起初,该维护者拒绝撤销更改,称需Marty Haught同意。六天后,他表示已与Marty Haught沟通好,大部分更改被撤销,Marty Haught称移除维护者是个“永远不该发生的错误”,但他自己仍保留了对GitHub Enterprise的所有权。


如果说之前的操作是“失误”,后续的举措则更让人无语。9月18日,Marty Haught再次在未作解释的情况下,撤销了所有RubyGems、Bundler以及RubyGems.org维护团队管理员的GitHub组织成员权限,从而控制了Ruby Central及其他全职员工。


“我不会拐弯抹角,这就是一次强硬接管。”Ellen Dash吐槽道。她认为Ruby Central的行为对整个Ruby社区构成威胁,强行移除维护多年的开发者是敌意行为,已越过底线。虽然大部分变动在被指出问题后被撤销,但他们又再次重复同样的行为。在被点名批评后仍二次越界,说明他们没有善意行事。


因此,Ellen Dash决定立即辞去在Ruby Central的职务。她强调,Ruby Central在没有任何解释的情况下,单方面撤销了她和整个RubyGems团队的所有访问权限,这完全违背了他们的意愿。


Ruby非营利组织:此举是为了安全起见、加强管理


简单来说,就是负责Ruby核心工具的非营利组织Ruby Central,在未征求长期维护者同意的情况下,接管了RubyGems和Bundler这两个关键项目,导致长期贡献者被迫退出。


随着事件发酵,9月19日,Ruby Central在官方发布《加强RubyGems和Bundler的管理》声明,解释其行动原因。作为基础设施的非营利管理机构,Ruby Central负有维护供应链和生态系统长期稳定的受托责任。在咨询法律顾问并进行安全审计后,他们加强治理流程,正式制定运营商协议,并加强对生产系统的访问。今后,只有Ruby Central雇佣或签约的工程师才能拥有RubyGems.org服务的管理权限。


Ruby Central指出,软件供应链攻击风险迫使他们“必须采取主动措施来全方位保护Ruby gem生态系统”。


Ruby Central董事会成员、Vestmark公司CTO Freedom Dumlao在博客上进一步解释:“Ruby Central长期负责RubyGems和Bundler,并非新情况。过去几个月,安全问题频繁出现,一些公司因供应链攻击付出代价,开始审视包括RubyGems和Bundler在内的供应链环节。部分公司付费给Ruby Central确保供应链安全稳定,却发现一些无正式关系或协议的人仍拥有关键基础设施的最高权限。”


他还表示,Ruby Central并非没尝试改进管理模式。这两个工具历史悠久,有些人早年的提交权限即便多年不用也仍保留,此前虽不是严重隐患,但现在安全问题凸显。他认为解决方案很简单:和真正需要访问权限的人签订提交者协议,撤销不再需要访问的人的权限,同时仍开放接受Pull Request,若他们未来想重新成为提交者,也可重新加入。但如何告知长期拥有关键权限的人撤销其权限而不引发不满,是个难题。


社区、维护者的愤怒回应


然而,Ruby Central的声明并未得到开发者的广泛认同。许多Ruby开发者在社交媒体和博客上表达了失望和愤怒,猜测“Ruby Central在一些企业赞助者的影响下,撤销了关键贡献者的管理权限,并安排了新的领导层”。


芝加哥开发者Sam Stephenson在Mastodon上写道:“所谓的‘受托责任’,不过是把‘我们从一个敌意捐助者那里拿了几百万美元换取对RubyGems基础设施的控制权’美化了一下。”



网友Mike Perham也认为Ruby Central的举动越界。他指出,Ruby Central并不拥有RubyGems源代码的版权,该仓库在其出现之前就已存在,其角色是管理rubygems.org的基础设施并支付维护费用,不能决定谁是维护者。这和所有开源项目一样,应由团队决定。他还要求Ruby Central向社区提供更多信息,认为在未告知赞助商及要求之前,大家只能猜测真正原因,此事必须公开。他强调“rubygems/rubygems一直不在Ruby Central控制之下,直到hsbt单方面移除整个现有团队,并把Marty [Haught]加为管理员,没有讨论、没有透明,这是一次非法的夺权行为,本应通过公开流程,而非私下交易”。



Homebrew项目负责人Mike McQuaid曾试图调解Ruby Central与RubyGems维护者之间的矛盾,但未成功。他在Bluesky上表示:“Ruby Central对此处理得非常糟糕,甚至错误地移除了RubyGems组织中最活跃的成员,而该成员拒绝回归。”


揭露此事的维护者Ellen Dash回复评论时写道:“我没看到阻止事态恶化的办法,所以我选择退出,并把我看到的事情记录下来。我把自己三分之一的人生都给了这个项目,最后却要解释说我失败了,这种痛苦无法形容。”


截至目前,继Ellen Dash之后,另一名核心维护者André Arko也在博客中告别社区,称对失去社区驱动的控制权感到遗憾。越来越多的维护者坦言自己突然被“抛弃”。


随着核心维护者离开,新的管理团队需要证明自身能力,社区也在密切关注。此次事件提醒所有开源项目,如何在专业管理与社区自治之间找到平衡,是未来开源治理必须面对的问题。


对于Ruby Central的此举,你怎么看待?


参考:


https://pup-e.com/goodbye-rubygems.pdf


https://www.theregister.com/2025/09/22/ruby_central_rubygems/


https://thenewstack.io/open-source-turmoil-rubygems-maintainers-kicked-off-github/


本文来自微信公众号“CSDN”,整理:屠敏,36氪经授权发布。


本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com