中文

从一到数百:JavaScript 生态系统中的多重许可

软件工程 2020-12-10 v1

摘要

开源许可证构建了一个法律框架,在开源项目的广泛采用中起着关键作用。若无许可证,互联网上任何源代码都无法被公开(再)分发。尽管近期研究证明大多数流行开源项目都带有许可证,开发者在需要组合软件许可证时可能缺乏信心或专业知识,导致错误的项目许可证统一。这种许可证使用方式受到现代软件开发实践核心中高度复用的挑战,其中第三方库与框架被轻松快速地集成进软件代码库。此情景造成了我们所称的“多重许可”项目,即一个项目含有在多于一种许可证下授权的组件。尽管这些组件存在于文件层面,它们自然地在项目层面影响许可决策。本文中,我们开展了混合方法研究以阐明这些问题。我们首先解析 1,552 个 JavaScript 项目上可用的 1,426,263 个(源代码与非源代码)文件,寻找许可证信息。在这些项目中,我们观察到 947 个项目(61%)使用了多于一种许可证。平均每个研究项目有 4.7 个许可证(最多:256)。多重许可的原因之一是将第三方库的源代码并入项目代码库。如此做时,我们观察到 373 个多重许可项目引入了至少一处许可证不兼容问题。我们还调查了这些项目的 83 位维护者以交叉验证发现。我们观察到 63% 的受访维护者未意识到多重许可的影响。对于那些意识到的,他们采用多重许可证主要是为了遵从第三方库的许可证。

关键词

引用

@article{arxiv.2012.05016,
  title  = {From One to Hundreds: Multi-Licensing in the JavaScript Ecosystem},
  author = {João Pedro Moraes and Ivanilton Polato and Igor Wiese and Filipe Saraiva and Gustavo Pinto},
  journal= {arXiv preprint arXiv:2012.05016},
  year   = {2020}
}

备注

Submitted to EMSE, 33 pages