Breaking-Good: Explaining Breaking Dependency Updates with Build Analysis
Frank Reyes, Benoit Baudry, Martin Monperrus

TL;DR
Breaking-Good is a tool that automatically explains the causes of breaking dependency updates in software projects, helping developers understand and fix compilation errors caused by incompatible dependency changes.
Contribution
It introduces the first automated technique to identify root causes of breaking dependency updates and generate detailed explanations for developers.
Findings
Accurately identifies root causes in 70% of real-world cases.
Provides detailed explanations categorizing causes such as dependency changes and incompatibilities.
Helps developers understand and resolve breaking updates more efficiently.
Abstract
Dependency updates often cause compilation errors when new dependency versions introduce changes that are incompatible with existing client code. Fixing breaking dependency updates is notoriously hard, as their root cause can be hidden deep in the dependency tree. We present Breaking-Good, a tool that automatically generates explanations for breaking updates. Breaking-Good provides a detailed categorization of compilation errors, identifying several factors related to changes in direct and indirect dependencies, incompatibilities between Java versions, and client-specific configuration. With a blended analysis of log and dependency trees, Breaking-Good generates detailed explanations for each breaking update. These explanations help developers understand the causes of the breaking update, and suggest possible actions to fix the breakage. We evaluate Breaking-Good on 243 real-world…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Data Quality and Management · Software Engineering Research
