Faker.js 作者“删库跑路”引开源圈“震动”:该开源项目现已被社区控制
共 2665字,需浏览 6分钟
·
2022-01-20 14:11
5 年前,一位程序员因删除了自己开源项目 left pad 中的一些代码而让大半个互联网瘫痪、导致无数代码库崩溃并引发热议。现在,同样的事情再次发生了 —— 上上周,知名工具库 Faker.js 的作者做了同样的事情,现在的结果也和5年前差不多。
据最新报道显示,目前 Faker.js 项目现在已成为由 8 名来自不同背景和公司的工程师组成的团队社区所控制。而 Faker.js 的作者 Marak 已正式“出局”。
Faker.js 作者“删库跑路”
引开源圈“震动”
1 月初,Faker.js 的作者 Marak Squires 主动恶意破坏自己的项目后“删库跑路”。该事件发生之后,瞬间引发了开源圈“震动”。
据悉,Marak 不仅将自己的 Faker.js 项目仓库的所有代码清空,留下了一个简短的自述文件"What really happened with Aaron Swartz?",还注入了导致程序死循环的恶意代码,引起众多应用程序崩溃。
作为一个非常有用的工具,Faker.js 可以生成可用于应用程序开发/测试方面的 Fake 数据,其受欢迎程度甚至被《财富》世界 500 强企业在内的数百家公司使用。
而一直以来,开发和维护 Faker.js 项目的作者 —— 程序员 Marak 向来都被认为是一位颇具争议的人物。报道称,Faker.js 项目作者 Marak 此前就有过删除自己热门项目的记录。早在 2020 年,Marak 就曾宣称他已经“受够了维护 Faker.js ”。
而在此次行动之前的“预兆”中,Marak 在一份代码提交中声明:“恕我直言,我将不会再为《财富》世界500强(以及其他规模较小的公司)提供免费支持。”
众所周知,js代码库是开源免费的,这需要有人支付几十万的薪水来继续支持维护。但作为免费使用该代码库的一些世界企业及公司们,却在代码库无法使用或出状况的时候第一时间出来指责作者而不用付出任何代价,这一点也确实让开源项目的作者感到失望。
由此也看来得出,Faker.js 作者此次事件的发生也并非“突然”了。
此前在 reddit 上,有不少热门帖也表示,Marak 清空 Faker.js 仓库的代码是因为缺乏资金和被别人滥用开源项目。
当然也有帖子称,这个被删除代码的 Faker.js 仓库也不是真正的 Faker.js 原仓库。据称,Marak 首先将真正的 Faker.js 仓库设置为私有,并为它修改了名字。然后再创建新的同名「Faker.js」仓库——所以仓库的 commit 信息只有最新的一条记录,而且 star 数量也远少于原本的 Faker.js 仓库。
尽管 Marak 清空了 Faker.js 项目仓库的代码,但其在 npm 上的软件包仍然保留着历史版本的下载。有报道称,Faker.js 最新的版本项目的周下载量也超过了200万。
Faker.js 现已成为社区控制的项目
目前,Faker.js 已成为社区控制的项目,新组成的团队则暂时将他们所维护的库称为“官方库”,且合并了所有活跃的分支,待后期事态平息、混淆减少之后,他们则会放弃使用“官方库”的名称。
现在,社区控制的 Faker.js 项目已获得了不少开发者的认可。以下是项目仓库的 star 数增长情况:
自接管 Faker.js 以来,新团队已对 issue 进行了分类和审查 PR、提供在线文档、迁移至 TypeScript、创建公开的推特帐号、在 npm 上发布软件包、清理 Prettier、CI、Netlify Deploy Previews 和 GitHub Actions 等工具。
同时,新团队还制定了一个发展规划图:
对 ESM 的支持
Browserify=>Rollup/Vite
改进测试基础设施
提供类型生成文档
与 Faker 生态系统的现有维护者互动
在文档中提供交互式游乐场
与节点18兼容
js 项目从 Open Collective 转移到 Faker.js遗留帐户(总计11652.69美元),将用于邀请 Marak 和另一名维护人员 Barin 加入
转让完成后,现有团队将成为 Faker.js 的管理员。开放集合平台上的 js 帐户(https://opencollective.com/fakerjs)
已通知现有团队,如果他们希望向 Marak 捐款,请选择https://opencollective.com/fakerjs-legacy 或https://opencollective.com/marak(当然,他们也会同步并通知是否收到了注明为 Marak 捐赠的资金)
js 项目引发开源文化脆弱的本质
关于 Faker.js
想成为前端大佬?
测一测你的段位