FSE 2025
Mon 23 - Fri 27 June 2025 Trondheim, Norway
Wed 25 Jun 2025 14:50 - 15:10 at Vega - Dependency Chair(s): Alexandre Bartel

Code evolution is prevalent in software ecosystems, which can provide many benefits, such as new features, bug fixes, security patches, etc., while still introducing breaking changes that make downstream projects fail to work. 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 19% of the breaking changes cannot be detected by regression testing. Then in the process of investigating source code of our collected breaking changes, we yield a taxonomy of JavaScript and TypeScript-specific syntactic breaking changes and a taxonomy of major types of behavioral breaking changes. Additionally, we investigate the reasons why developers make breaking changes in NPM and find three major reasons, i.e., to reduce code redundancy, to improve identifier names, and to improve API design, and each category contains several sub-items. We provide actionable implications for future research, e.g., automatic naming and renaming techniques should be applied in JavaScript projects to improve identifier names, future research can try to detect more types of behavioral breaking changes. By presenting the implications, we also discuss the weakness of automatic renaming and breaking change detection approaches, such as the lack of support for public identifiers and various types of breaking changes.

Wed 25 Jun

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

14:00 - 15:30
DependencyResearch Papers / Journal First / Demonstrations at Vega
Chair(s): Alexandre Bartel Umeå University
14:00
20m
Talk
Automatically fixing dependency breaking changes
Research Papers
Lukas Fruntke University College London, Jens Krinke University College London
DOI
14:20
10m
Talk
AutoPyDep: A Recommendation System for Python Dependency Management Utilizing Graph-Based Analytics
Demonstrations
Dibyendu Brinto Bose Virginia Tech, USA , Travis Chan Virginia Tech, Matthew Trimble Virginia Tech, Chris Brown Virginia Tech
14:30
20m
Talk
Pinning Is Futile: You Need More Than Local Dependency Versioning to Defend Against Supply Chain Attacks
Research Papers
Hao He Carnegie Mellon University, Bogdan Vasilescu Carnegie Mellon University, Christian Kästner Carnegie Mellon University
DOI
14:50
20m
Talk
Towards Better Comprehension of Breaking Changes in the NPM Ecosystem
Journal First
Dezhen Kong Zhejiang University, Jiakun Liu Singapore Management University, Lingfeng Bao Zhejiang University, David Lo Singapore Management University
15:10
20m
Talk
On the Characteristics and Impacts of Protestware Libraries
Research Papers
Tanner Finken University of Arizona, Jesse Chen University of Arizona, Sazzadur Rahaman University of Arizona, Tucson, Arizona, USA
DOI

Information for Participants
Wed 25 Jun 2025 14:00 - 15:30 at Vega - Dependency Chair(s): Alexandre Bartel
Info for room Vega:

Vega is close to the registration desk.

Facing the registration desk, its entrance is on the left, close to the hotel side entrance.