I depended on you and you broke me: An empirical study of manifesting breaking changes in client packages
Daniel Venturini, Filipe Roseiro Cogo, Ivanilton Polato, Marco A, Gerosa, Igor Scaliante Wiese

TL;DR
This study empirically investigates how breaking changes in npm dependencies affect dependent packages, revealing that a significant portion are impacted and often recover through version adjustments, highlighting the importance of understanding dependency impacts.
Contribution
It provides the first empirical analysis of manifesting breaking changes in npm, quantifying their impact and recovery methods in real-world package dependencies.
Findings
12% of dependent packages impacted by breaking changes
44% of breaking changes occur in minor and patch releases
Half of affected packages recover by version adjustments
Abstract
Complex software systems have a network of dependencies. Developers often configure package managers (e.g., npm) to automatically update dependencies with each publication of new releases containing bug fixes and new features. When a dependency release introduces backward-incompatible changes, commonly known as breaking changes, dependent packages may not build anymore. This may indirectly impact downstream packages, but the impact of breaking changes and how dependent packages recover from these breaking changes remain unclear. To close this gap, we investigated the manifestation of breaking changes in the npm ecosystem, focusing on cases where packages' builds are impacted by breaking changes from their dependencies. We measured the extent to which breaking changes affect dependent packages. Our analyses show that around 12% of the dependent packages and 14% of their releases were…
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 · Software System Performance and Reliability · Service-Oriented Architecture and Web Services
