事件回顾

Denis Pushkarev 是 Core-js 库的维护人员,去年,他在驾驶摩托车时撞到两名行人,导致其中一人死亡。2019 年 10 月,Pushkarev 被定罪;同年 11 月,Denis Pushkarev 提出上诉,可惜上诉失败,最终被判处 18 个月有期徒刑。上诉时,他强调自己是因为对面驶来的汽车的远光灯使自己视野受限且那两名行人是突然出现的,导致自己没有看见才酿成恶果,但这个辩解最终并没有改变判决结果。

一个广受欢迎的 JS 库的唯一维护者被判 18 个月有期徒刑,意味着这个人气很高的项目将处于一个无人维护和更新的阶段,这种情况下,很多项目贡献者和开发者都在担心 Core-js 的命运。

Core-js 将何去何从

Core-js 是 Javascript 的模块化标准库,它提供了大量的功能来执行常见的操作,适用于 2020 年的 ECMAScript 的 polyfills:集合、迭代器、类型数组等等。Core-js 每周通过 npm 注册表下载的次数超过 2600 万次,其中包括苹果等大公司,但这场车祸使这一切的未来都充满了不确定性。

唯一维护者锒铛入狱,周下载量超2600万的JS库该何去何从?

数据来自于 npm

唯一维护者锒铛入狱,周下载量超2600万的JS库该何去何从?

截图自苹果官网

Denis Pushkarev 的 GitHub 账号 ID 为 zloirock,早在去年 5 月,发生车祸之后,他就曾提出通过在库中加入广告从而增加收入,因为他觉得自己需要承担车祸相关的法律和医疗费用,但是 Core-js 虽然下载量比较高,乐于付费的人却少之又少。Core-js 的 GitHub 首页上仍写着“作者正在找工作”,虽然很多开发者都在吐槽他“一直处于找工作的阶段”,但似乎并没有令 Pushkarev 满意的工作出现。

此前,开发商 Nathan Dobrowolski 向 Pushkarev 提出疑问:“如果你进了监狱,那么谁来维护 Core-js?”对此,Pushkarev 没有给出任何答案。我们可以看到,GitHub 上最后一次发布更新是 2020 年 1 月 13 日,此后没有任何更新消息。若无人接替 Pushkarev 对 Core-js 进行维护与更新,虽然不会像 left-pad 事件那样严重,开发者们可以修改 Core-js 的代码,但这样又会出现很多额外成本。

解决方案

GitHub 社区与安全高级产品经理 Ben Balter 在给 The Register 的电子邮件中说,在项目维护者不响应的情况下,该公司将继续考虑回购所有权的转移。Balter 说:“在一种首选的情况下,我们要确保提前主动缓解问题。”同时还表示,“我们鼓励维护者将受欢迎的项目从他们的个人帐户转移到组织中。除了获得高级社区管理功能之外,添加至少一名其他维护者作为共同所有者进一步确保了该项目能够继续进行,即使一个维护者是无法使用。”

他补充说,维护者可以通过将 GitHub 状态设置为“离开”来表示他们打算暂时或永久性退出项目,以使开发者们知道在此期间这些维护者并不会对他们的问题进行回应。

Balter 还表示,GitHub 拥有在生病时转移帐户所有权的流程,适用于亲戚,合作者,同事和业务合作伙伴。他说,GitHub 提供了某种应急迁移流程,fork 不活动的代码库也是其中的一个选项。他还指出,如果 GitHub 可以接管项目的规范资源,则它有可能重新定位。

Pushkarev 仍没有任何消息,Core-js 的首页上也没有任何更新,没有人知道 Pushkarev 是否会将 Core-js 托管给朋友或社区,又或是被 GitHub 接管?一个深受众多开发者们喜爱的项目,如果就此停止维护,那么过不了多久,这个项目的热度就会逐渐降低,逐渐被开发者们放弃。如果等到 Pushkarev 18 个月后出狱之后再进行更新维护的话,可能没有多少开发者会重新选择 Core-js 了,毕竟 18 个月足够开发者找到一个更棒的替代品了。

延伸阅读

https://www.theregister.co.uk/2020/03/26/corejs_maintainer_jailed_code_release/