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 兼容
在资金方面,与此前对 Faker.js 我的项目捐款一样。js 我的项目是在开源汇合平台上进行的,现有团队在与开源汇合执行董事沟通后,制订了一个过渡打算:
- js 我的项目从 Open Collective 转移到 Faker.js 遗留帐户(总计 11652.69 美元),将用于邀请 Marak 和另一名保护人员 Barin 退出
- 转让实现后,现有团队将成为 Faker.js 的管理员。凋谢汇合平台上的 js 帐户 (https://opencollective.com/fa…)
- 已告诉现有团队,如果他们心愿向 Marak 捐款,请抉择 https://opencollective.com/fa… 或 http://opencollective。com/marak。(当然,他们也会同步并告诉是否收到了注明为 Marak 捐献的资金)
最初,团队承诺,他们将持续开发和保护 Faker.js 我的项目,让该我的项目变回从前那样酷。
js 我的项目引发开源文化软弱的实质
此次 Faker.js 我的项目作者的“歹意毁坏”事件,也引发了一场业内对于“数字生态系统的脆弱性”的探讨。
致力在“商业世界”中生存的开源概念,却不得不被最原始的契约关系所“禁锢”,而撑持这种缓和关系的是一个简略的问题:一旦开源代码被采纳,谁将最终对其负责?
是一个简单的问题,也是一场对于开源与商业由来已久的“抵触”,波及罪责、所有权、道德和人类动机的缺点性质等话题。
而作为一个对其余我的项目极具依赖性的开源我的项目,这次 Faker.js 作者的“歹意毁坏”事件所裸露进去的问题也更为简单。
所以当初对于“谁才是对的?”这个开源哲学中由来已久的问题,你会怎么看呢?欢送在评论区留言互动。
对于 Faker.js
Faker.js 是非常风行的 Node.js 工具库,提供了各种类型的模仿数据,用于开发调试。最早的 Faker 我的项目于 2004 年由 Jason Kohles 首次应用 Perl 实现。起初 Marak 实现了 Node.js 版本,并投入了大量精力和工夫来保护 Faker.js。