npm 包依赖网络中技术滞后的演化研究
软件工程
2018-06-14 v2
摘要
通过包管理器开发和分发的软件包广泛依赖于其他包。这些依赖会定期更新,例如添加新功能、解决错误或修复安全问题。为了充分利用此类复用的好处,开发人员应通过依赖最新版本来保持其依赖项为最新。然而在实践中,这并非总是可行,包会滞后于其依赖项的最新版本。文献中将此现象描述为技术滞后。在本文中,我们对 npm 依赖网络中的技术滞后进行了实证研究,考察了超过 12 万个包的 140 多万次发布以及这些发布之间的 800 万条依赖关系的演化。我们探讨了技术滞后如何随时间增加,同时考虑了发布类型和包依赖约束的使用。我们还讨论了如何通过依赖语义化版本规范来减少技术滞后。
引用
@article{arxiv.1806.01545,
title = {On the evolution of technical lag in the npm package dependency network},
author = {Alexandre Decan and Tom Mens and Eleni Constantinou},
journal= {arXiv preprint arXiv:1806.01545},
year = {2018}
}
备注
Preprint. Paper accepted for publication at the 34th IEEE International Conference on Software Maintenance and Evolution (ICSME 2018), Madrid, Spain. A replication package of our analysis is available on https://doi.org/10.5281/zenodo.1283203