开源工具的世界已经扩展到欢迎 Jetx,因为该项目的维护者终于完成了采用 MIT Expat 许可证的必要工作。此前,JavaScript linter 的部分代码是在 JSON 许可下发布的,其中还有一个看似无伤大雅的附加条款:“This software should be used for good, not evil”。该条款阻止 FSF 将其识别为已认证的自由软件许可证,并且同样未被开源计划认定为开源。

在一篇名为 Looking at the sink 的帖子中,JSHint 的共同维护者 Mike Pennisi 描述了许可证如何损害了该项目。尽管该工具在 2015 年赢得了最受欢迎的 JavaScript linter 的称号,但在过去五年中,它已经被该工具的现代风格 ESLint 残酷地超越,这主要是由于其非自由许可。影响。

图片来源:Mike Pennisi

"有法律意识的反对者不会背叛他们卑鄙的动机;他们拒绝签订模棱两可的合同,”Pennysi 说。 “换句话说:他们不是在说‘我是一个邪恶的人’,而是在说‘我不明白你想要什么。’”这种考虑使 JSHint 无法包含在各种上下文中。 "

由于许可问题,Debian 和 Fedora GNU/Linux 发行版的开发人员无法加入 JSHint。Pennisi 详细介绍了 JSHint 编程平台的“重新包装”,由于其附加条款历史也被重新考虑WordPress。

他说:“曾经有一段时间,流行的内容管理系统 WordPress 以这种方式重新包装了 JSHint。 “一旦他们理解了 JSON 许可,他们将在几周内替换 JSHint。Pennisi 引用了 WordPress 4.9 的一张票,其中 JSHint 已从核心 CodeMirror 实现以及 WordPress 的构建工具中删除。

Pennisi 说:“当像 JSHint 这样的项目失去用户时,它也会失去贡献者。 “这会减慢新功能的添加和错误的修复。”及时性对这些事情很重要,人们对延迟有非常负面的看法。最好的例子来自 JSHint 对异步函数的延迟支持。

JSHint 已经成为 Pennisi 所说的“笨拙的 JavaScript 小孩”。不幸的是,七年后,开源的过程并不像提交拉取请求更改许可证那么简单。在一系列论文中,贺建奎开始了向 200 多名贡献者征求该项目许可的艰苦过程,但最终遭到拒绝,其中一些人拒绝联系。最终,JSHint 团队被迫重写源代码,但仅由不允许更改许可证的五个人贡献的部分。

8 月初,JSHint 更新为使用 MIT Expat 许可证版本 2.12 .0 现在与 GPL 兼容。 Pennisi 对他所谓的“JSHint 的解放”是一个有趣的警示故事,详细说明了克服项目原始许可挑战的努力。这个故事的主要收获是软件开发人员应该认真考虑许可的后果。开源许可使项目走得更远,远远超出其创建者单独提议的范围。

“对于许多人来说,许可是软件开发不可或缺的一部分,”Pennisi 说。 ” “这是一个相对的观点:法律框架令人望而生畏,大多数考虑都可以通过简单地默认使用众所周知的免费/开源许可证来解决。

“问题在于,并非所有软件都是在众所周知的免费/开源许可下分发的。我希望 JSHint 衰退的细节能帮助人们理解许可为何重要。”

喜欢像这样:

点赞加载...

资源