处理完 JavaScript 历史上戏剧性的事件之后,npm 公布了一版新的规则,用于应对用户试图下架包的情况。
新的规则增加如下声明:
- 版本更新少于 24 小时的包允许下架;
- 超过 24 小时的包的下架需要联系 npm 维护者;
- 如果有 npm 维护者参与,npm 将检查是否有其他包依赖该包,如果有则不允下架;
- 如果某个包的所有版本都被移除,npm 会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。
在新规则的详述文档中,npm 提供了不同场景下的几个例子说明新规则如何运作。
回顾最近的 _left-pad_ 包下架事件,新规则将能阻止作者 Azer Koculu 下架他公布的包,因为这些包的版本超过 24 小时且有很多依赖。
npm 认可有下架包的权利的重要性,但是对于个体来说,对整个社区负责更加重要:
这个特性非常重要和合法,因此我们不会移除它,不过我们现在显著改变了下架包的方法和下架包的规则。这个规则是平衡开发者个人权利和维护开源社区的团结的第一步。
社区的反应各不相同,不过 reddit 上的评论列表记录了新规则对开源社区的的意义。
查看英文原文: Npm Updates Policy on Removing Packages
感谢张龙对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论