arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1806.01545cs.SE
收藏

关于npm包依赖网络中技术滞后的演变

On the evolution of technical lag in the npm package dependency network

Alexandre Decan, Tom Mens, Eleni Constantinou

摘要:

通过包管理器开发和分发的软件包广泛依赖于其他包。这些依赖关系会定期更新,例如添加新功能,解决错误或修复安全问题。为了充分利用这种类型的重用的好处,开发人员应该通过依赖最新的版本来保持他们的依赖关系。然而,在实践中,这并不总是可能的,并且软件包会落后于其依赖项的最新版本。这种现象在文献中被描述为技术滞后。在本文中,我们对npm依赖网络中的技术滞后进行了实证研究,研究了12万个软件包的140多万个版本的演变,以及这些版本之间的800万个依赖关系。我们将探讨技术滞后如何随着时间的推移而增加,同时考虑到发布类型和包依赖约束的使用。我们还讨论了如何通过依赖语义版本化策略来减少技术滞后。

英文摘要:

Software packages developed and distributed through package managers extensively depend on other packages. These dependencies are regularly updated, for example to add new features, resolve bugs or fix security issues. In order to take full advantage of the benefits of this type of reuse, developers should keep their dependencies up to date by relying on the latest releases. In practice, however, this is not always possible, and packages lag behind with respect to the latest version of their dependencies. This phenomenon is described as technical lag in the literature. In this paper, we perform an empirical study of technical lag in the npm dependency network by investigating its evolution for over 1.4M releases of 120K packages and 8M dependencies between these releases. We explore how technical lag increases over time, taking into account the release type and the use of package dependency constraints. We also discuss how technical lag can be reduced by relying on the semantic versioning policy.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑