2025年9月,Ruby开源社区爆发了一场震动整个开发者界的风暴。Ruby Central,一个长期负责管理Ruby核心项目和生态系统资源的重要组织,在Shopify的强大压力下,实施了对RubyGems和Bundler代码仓库的全面接管。此次接管不仅未获得核心维护者的同意,还导致许多资深贡献者被剥夺了项目管理权限,引发了社区成员的强烈不满和广泛质疑。此次事件的根源复杂交织,涉及资金支持的挑战、社区治理机制的缺失以及大厂与社区力量的博弈。经过对内部会议录音、相关人员采访和事件资料的梳理,可以更为清晰地展现风波背后的真相与影响。Ruby Central面临着资金紧张的难题。
此前,Sidekiq每年为其提供25万美元的赞助,但因后者在2025年RailsConf大会上为DHH(David Heinemeier Hansson)提供平台引发争议,Sidekiq撤销了该笔赞助,直接使Ruby Central的资金来源大受影响。资金渠道骤然收窄,Ruby Central被逼迫寻求新的融资支持。而此时,Shopify亮明态度,强烈要求Ruby Central必须完全控制RubyGems GitHub仓库以及相关的bundler和rubygems-update两个gem版本包,威胁如果不遵守其要求,将终止对Ruby Central的资金支持。面对来自Shopify的压力,Ruby Central内部出现分歧和急迫应对的局面。HSBT(Hiroshi Shibata),作为Ruby核心成员和RubyGems的维护者,未经充分沟通,提前实施了仓库权限变更,将Marty Haught添加为所有者,同时临时降低其他维护者的权限,这一举动激化了冲突。维护者们随即对权限变动提出质疑,但HSBT称必须得到Marty的授权才可更改。
虽然部分权限在之后恢复,但Marty依然被保留为仓库所有者之一,且这一身份并未获得原维护者的认可。为了化解纷争,RubyGems维护团队与Marty召开了线上会议。会议中,Marty介绍了其正在制定的新运营协议,旨在规范RubyGems.org服务的运营者责任,并指出针对仓库权限存在的风险。但是,维护者们明确指出,RubyGems的源代码与RubyGems.org服务是两回事。RubyGems作为软件项目本身是由社区共同维护和拥有的开源项目,而RubyGems.org服务仅是由Ruby Central运营的具体部署实例。任何人都可基于RubyGems源代码自行部署服务,二者是完全独立的。
这一界定对于权责划分至关重要。然而Ruby Central并未充分尊重这一区别。虽然Ruby Central为RubyGems的维护做出了资金贡献,也雇佣了一部分维护者支持服务运维,但这些行为并不能转让源代码及其仓库的所有权。Ruby Central的行为超出了其实际拥有的权限范畴。9月9日HSBT擅自调整权限,9月18日Ruby Central董事会通过投票决定全面接管RubyGems的GitHub仓库并行使管理权,随即实施了对维护者们的排除。许多资深贡献者,包括从事该项目多年、曾创立Ruby Together组织的André Arko,被剥夺了访问和维护权限。
尤其是在André当班负责rubyGems.org服务时,有关权限的撤销直接影响了服务运行的稳定性。此次接管不仅是技术层面的变动,更是社区治理结构的重大转折。长期以来,Ruby社区的开源项目秉持着自由共享和社区共管的原则,但此次事件暴露出在资金压力和大型企业介入之下,社区项目的自治性可能受到严重削弱。值得注意的是,Ruby Central目前在资金上对Shopify表现出高度依赖。Sidekiq撤资之后,Shopify成为Ruby Central的主要资助者。多位消息人士透露,在2025年Rails World大会期间,多方代表包括Ruby Central、Ruby Core、Rails Core以及其他重要公司进行了多轮资金支持和项目保护方案的讨论。
传闻中,Shopify对RubyGems维护团队施加压力,要除去部分核心维护者,否则拒绝提供未来的资金支持。由此,Ruby Central被迫选择妥协,以保续运营。Ruby Central董事会虽然意识到接管行为会对社区造成伤害,且已有维护者表达了反对意见,甚至提出了替代方案如分叉(forking)项目,但最终投票决定执行这场强制接管。该事件发生于欧洲EuRuKo大会期间,部分欧洲社区成员正忙于参会,无法及时响应冲突,加剧了事件的复杂性。对此,Ruby Central发表了一份官方声明,称此次接管是为了增强供应链安全管理,维护服务的稳定性和安全性,并强调是出于其作为运营服务的组织的受托责任。然而,该声明语言空洞、缺少对具体责任人的签名,且公关策略被社区普遍认为过于官方和模糊,难以获得真正理解和支持。
DHH对事件的态度也引发关注。他通过转发Ruby Central声明表达了支持,称这将确保Ruby供应链的技术和组织安全,然而他的公开言论与其以往对开源项目主权和企业控制的批评形成明显反差,例如他曾公开反对苹果App Store的垄断控制,对保护开源项目所有权极为重视。另一方面,Shopify和Ruby Central内部人员在社交媒体上对事件的公关发声,出现了对事实的曲解。例如,Shopify员工兼Ruby Central董事会成员发表言论,试图将此次接管粉饰为防范供应链攻击的必要举措,混淆了RubyGems源代码与RubyGems.org服务的区别,借以合理化强制接管的行为。除了对RubyGems项目主权的争议,事件背后还隐藏着开源生态中对新兴工具和竞争力量的疑虑。资深维护者André和同事联合其他开发者成立了Spinel合作社,推出新型Ruby版本管理工具 - - rv。
该工具旨在改善Ruby版本及依赖管理体验,有望挑战现有的工具生态。对此,部分Rails核心开发者和来自Shopify的人员表现出抵触情绪,将rv视为威胁,甚至暗示相关维护者的动机不纯。此举让人质疑大型企业是否借助影响力压制潜在竞争者,保持对Ruby生态的掌控。整个事件不仅是一次内部项目权力的争夺,更是关于开源社区治理、企业介入与社区自主性的深刻探讨。它揭示出在资金依赖困境中,社区长久以来自发形成的协作模式正受到巨大挑战。Ruby Central的举措虽然旨在保证项目的持续发展和安全,但其擅自夺取社区维护者多年心血的项目主控权,也让人担心开源项目的未来是否还能保持开放与公平。
与此同时,社区核心维护者忍受挫折,却依然积极投入新型替代方案的研发,展现出开源精神的坚韧和希望。对广大Ruby开发者和开源从业者来说,此事件是一次深刻反思的契机。如何在保持项目稳定、安全的同时尊重维护者的权利?如何平衡资金压力与社区自治?如何防范大企业过度干预开源生态?这些问题亟需社区成员共同探讨和创新应对策略。未来,只有在透明、信任与充分交流的基础上,Ruby社区以及全开放源代码社会才能走向更加健康、持续的发展道路。随着事件的持续发酵,社区呼吁更多公开的对话和责任的承担,也期待有更多的声音能够被听见。无论最终结局如何,Shopify与Ruby Central之间的这场风波无疑已经成为开源项目治理史上重要的一页,也给予了全球技术社区宝贵的经验教训。
。