现在何去何从?在npm生态系统中为衰退包寻找替代方案
软件工程
2023-08-21 v1
摘要
软件生态系统(例如npm、PyPI)是现代软件开发的支柱。开发者每天向生态系统中添加新包以解决新问题或提供替代方案,导致过时包对社区的重要性下降。衰退中的包随时间被复用减少,且可能维护频率降低。因此,开发者通常将其依赖迁移到更好的替代方案。用更好的替代方案替换衰退包需要开发者投入时间和精力来识别需要替换的包、寻找替代方案、评估迁移收益,并最终执行迁移。本文提出一种方法,自动识别需要替换的包并找到其替代方案,且辅以执行所建议迁移的开源项目的真实示例。我们的方法核心依赖于生态系统中执行的依赖迁移模式,以向其他开发者建议迁移。我们在npm生态系统上评估了我们的方法,发现96%的 suggested 替代方案是准确的。此外,通过调查JavaScript专家开发者,其中67%表示将在未来项目中使用我们建议的替代包。
引用
@article{arxiv.2308.08667,
title = {Where to Go Now? Finding Alternatives for Declining Packages in the npm Ecosystem},
author = {Suhaib Mujahid and Diego Elias Costa and Rabe Abdalkareem and Emad Shihab},
journal= {arXiv preprint arXiv:2308.08667},
year = {2023}
}