Towards Better Comprehension of Breaking Changes in the NPM Ecosystem
Dezhen Kong, Jiakun Liu, Lingfeng Bao, David Lo

TL;DR
This study provides a comprehensive analysis of breaking changes in the NPM ecosystem, including their documentation, detection challenges, and a taxonomy of change types, to improve understanding and detection tools.
Contribution
It introduces a large-scale empirical study, new taxonomies of breaking changes, and insights into developer motivations, enhancing detection and comprehension of breaking changes in JavaScript and TypeScript.
Findings
95.4% of breaking changes are documented by developers
19% of breaking changes are undetectable by regression testing
Identified major reasons for breaking changes: reducing redundancy, improving names, and API design
Abstract
Breaking changes cause a lot of effort to both downstream and upstream developers: downstream developers need to adapt to breaking changes and upstream developers are responsible for identifying and documenting them. In the NPM ecosystem, characterized by frequent code changes and a high tolerance for making breaking changes, the effort is larger. For better comprehension of breaking changes in the NPM ecosystem and to enhance breaking change detection tools, we conduct a large-scale empirical study to investigate breaking changes in the NPM ecosystem. We construct a dataset of explicitly documented breaking changes from 381 popular NPM projects. We find that 95.4% of the detected breaking changes can be covered by developers' documentation, and about 19% of the breaking changes cannot be detected by regression testing. Then in the process of investigating source code of our collected…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research
