唯一维护者锒铛入狱,周下载量超2600万的JS库该何去何从?
Core-js是GitHub上一个极具人气的JavaScript库,最近,这个库的维护者Denis Pushkarev锒铛入狱。Pushkarev在去年发生了一起车祸,造成一死一伤,尽管Pushkarev声称车祸的主要原因并不在于自己,但并没能左右判决结果,Pushkarev需要为他的违法行为付出代价——最终被判处18个月有期徒刑。
事件回顾
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万次,其中包括苹果等大公司,但这场车祸使这一切的未来都充满了不确定性。
数据来自于npm
截图自苹果官网
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/