BreakBot: Analyzing the Impact of Breaking Changes to Assist Library Evolution
Lina Ochoa (TU/e), Thomas Degueule (LaBRI), Jean-R\'emy Falleri, (LaBRI, IUF)

TL;DR
BreakBot is a tool that analyzes pull requests in Java libraries on GitHub to identify and assess breaking changes, helping maintainers make informed decisions during library evolution.
Contribution
This paper introduces BreakBot, a novel bot that uses static analysis to objectively evaluate the impact of breaking changes on client projects during library development.
Findings
BreakBot successfully identifies breaking changes in Java libraries.
It provides maintainers with objective data to inform code review decisions.
The tool enhances library evolution by balancing change and stability.
Abstract
"If we make this change to our code, how will it impact our clients?" It is difficult for library maintainers to answer this simple-yet essential!-question when evolving their libraries. Library maintainers are constantly balancing between two opposing positions: make changes at the risk of breaking some of their clients, or avoid changes and maintain compatibility at the cost of immobility and growing technical debt. We argue that the lack of objective usage data and tool support leaves maintainers with their own subjective perception of their community to make these decisions. We introduce BreakBot, a bot that analyses the pull requests of Java libraries on GitHub to identify the breaking changes they introduce and their impact on client projects. Through static analysis of libraries and clients, it extracts and summarizes objective data that enrich the code review process by…
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.
