Dependency Update Strategies and Package Characteristics

Author:

Javan Jafari Abbas1ORCID,Costa Diego Elias2ORCID,Shihab Emad1ORCID,Abdalkareem Rabe3ORCID

Affiliation:

1. Data-driven Analysis of Software (DAS) Lab at the Department of Computer Science and Software Engineering, Concordia University, Canada

2. LATECE Lab at the Department of Computer Science, Université du Québec à Montréal (UQAM), Canada

3. Department of Computer Science at the Faculty of Science, Omar Al-Mukhtar University, Libya

Abstract

Managing project dependencies is a key maintenance issue in software development. Developers need to choose an update strategy that allows them to receive important updates and fixes while protecting them from breaking changes. Semantic Versioning was proposed to address this dilemma, but many have opted for more restrictive or permissive alternatives. This empirical study explores the association between package characteristics and the dependency update strategy selected by its dependents to understand how developers select and change their update strategies. We study over 112,000 Node Package Manager (npm) packages and use 19 characteristics to build a prediction model that identifies the common dependency update strategy for each package. Our model achieves a minimum improvement of 72% over the baselines and is much better aligned with community decisions than the npm default strategy. We investigate how different package characteristics can influence the predicted update strategy and find that dependent count, age, and release status to be the highest influencing features. We complement the work with qualitative analyses of 160 packages to investigate the evolution of update strategies. While the common update strategy remains consistent for many packages, certain events such as the release of the 1.0.0 version or breaking changes influence the selected update strategy over time.

Publisher

Association for Computing Machinery (ACM)

Subject

Software

Reference45 articles.

1. Sampling in software engineering research: a critical review and guidelines

2. Christopher Bogart Anna Filippova Christian Kästner and James Herbsleb. 2017. How Ecosystem Cultures Differ: Results from a Survey on Values and Practices Across 18 Software Ecosystems. Retrieved October 16 2020 from http://breakingapis.org/survey/.

3. How to break an API: cost negotiation and community values in three software ecosystems

4. Daniel Chatfield. 2014. Fix the Versioning. Retrieved October 16 2020 from https://github.com/jashkenas/underscore/issues/1805.

Cited by 4 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Challenges of Integrating Artificial Intelligence in Software Project Planning: A Systematic Literature Review;Digital;2024-06-29

2. Analyzing the Accessibility of GitHub Repositories for PyPI and NPM Libraries;Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering;2024-06-18

3. BUMP: A Benchmark of Reproducible Breaking Dependency Updates;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER);2024-03-12

4. An empirical study of software ecosystem related tweets by npm maintainers;PeerJ Computer Science;2024-01-17

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3