当前位置:首页 > 科技资讯 > 正文

Ruby社区风波:核心工具维护者遭“踢出局”

江湖风云,开源世界亦不例外。近日,一位深耕开源多年的开发者愤怒发声,指责自己悉心维护十余年的项目遭遇“恶意接管”,最终落得被“踢出局”的境地。随后,该项目由一家非营利公司的开源总监接手,并大举移除其他所有维护者,行事果断不留情面。

数日之后,大部分“移除”操作得以撤销,但该开源总监却轻描淡写地称之为一次“误操作”。更令人意外的是,隔日他又将所有维护者从GitHub组织中彻底移除,理由竟是出于安全考虑。

如此戏剧化的情节,正在Ruby社区内上演,并引发了广泛争议。其中,Apache CouchDB的开发者、Relaxed公司创始人之一Jan Lehnardt也在Mastodon上质疑:“Ruby究竟发生了什么?”

Ruby社区风波:核心工具维护者遭“踢出局” RubyGems Bundler RubyCentral 开源管理 第1张

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

归根结底,这是一场关于开源项目管理权的纷争,其源头可追溯至RubyGems和Bundler这两款工具。

RubyGems作为Ruby的标准包管理器,而Bundler则是依赖管理器,两者均由非营利组织Ruby Central赞助。多年来,包括Ellen Dash和André Arko在内的专业团队一直默默维护这些工具,投入大量时间却未获得正式报酬。

不久前,作为RubyGems重要长期维护者之一的Ellen Dash(网名duckinator)发布了一份PDF文档,实名举报Ruby Central组织无故删除所有维护者权限,引发社区哗然。

Ruby社区风波:核心工具维护者遭“踢出局” RubyGems Bundler RubyCentral 开源管理 第2张

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

据Ellen Dash描述,9月9日,一名RubyGems维护者未经解释便单方面进行了调整,具体包括:

将RubyGems的GitHub enterprise重命名为Ruby Central;

将非维护者Marty Haught(Ruby Central的开源总监)添加为维护者,同时移除其他所有维护者的GitHub仓库权限。

面对这突如其来的变故,拥有十年Ruby社区及RubyGems维护经验的Ellen Dash感到十分困惑,为何在毫无通知的情况下会失去项目提交权限?

为此,她与该维护者据理力争。起初,该维护者拒绝撤销更改,并声称需得到Marty Haught的同意。六天后,该维护者又表示已与Marty Haught沟通并撤销了大部分更改。据转述,Marty Haught称此次移除为“不应发生的错误”。但不变的是,Haught仍保留对GitHub Enterprise的所有权。

若之前的操作尚属“失误”,那么后续举动则令人无语。

9月18日,Marty Haught再次未加解释便撤销了所有RubyGems、Bundler及RubyGems.org维护团队管理员的GitHub组织成员权限,从而掌控了Ruby Central及其他全职员工。

“我不会拐弯抹角:这其实就是一次强硬接管。”Ellen Dash吐槽道。同时,她也表达了对Ruby Central行为的担忧:

我认为Ruby Central的行为对整个Ruby社区构成威胁。

强行移除那些维护RubyGems和Bundler超过十年的开发者,本质上是一种敌意行为。Ruby Central的做法已越界。

尽管大部分变动在指出问题后被撤销,但他们又重复了同样的行为。

在被点名批评后第二次越界,Ruby Central已明确表明并未善意行事。我别无选择,只能发声。

因此,我决定立即辞去在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未曾尝试改进Bundler和RubyGems的管理模式。事实上,这两个工具的历史可追溯至Ruby Central负责它们之前。早年拥有提交权限的人即便多年不再需要也依然保留这些权限。这曾是个小问题但从未成为严重隐患。

在我看来,解决方案很常识:与真正需要访问权限的人签订提交者协议(如其他许多知名开源项目),撤销不再需要访问的人权限,同时仍开放Pull Request。如果他们未来希望重新加入可再次欢迎。但问题是:如何告诉一个长期拥有关键基础设施权限的人‘你不再需要这些权限’而不让对方生气?如果其他人说‘如果你撤销他们的权限我自己会加回来’或‘如果你撤销他们的权限我就退出’该怎么办?这些都是情绪化的对话。我并未参与也无法评论。

但董事会必须面对这些信息。”

社区、维护者的愤怒回应

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

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

Ruby社区风波:核心工具维护者遭“踢出局” RubyGems Bundler RubyCentral 开源管理 第3张