  "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 providing maintainers with the
appropriate information to decide whether-and how-changes should be accepted,
directly in the pull requests.
