DeepAI AI Chat
Log In Sign Up

Analyzing the Impact of Pull Requests to Guide Library Evolution

11/09/2021
by   Lina Ochoa, et al.
labri
TU Eindhoven
0

"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.

READ FULL TEXT

page 1

page 2

page 3

page 4

10/15/2021

Breaking Bad? Semantic Versioning and Impact of Breaking Changes in Maven Central

Just like any software, libraries evolve to incorporate new features, bu...
03/17/2021

DUETS: A Dataset of Reproducible Pairs ofJava Library-Clients

Software engineering researchers look for software artifacts to study th...
09/27/2017

An Empirical Study on the Impact of Refactoring Activities on Evolving Client-Used APIs

Context: Refactoring is recognized as an effective practice to maintain ...
07/08/2022

Understanding the Role of External Pull Requests in the NPM Ecosystem

The risk to using third-party libraries in a software application is tha...
01/16/2018

Why and How Java Developers Break APIs

Modern software development depends on APIs to reuse code and increase p...
02/17/2021

DepOwl: Detecting Dependency Bugs to Prevent Compatibility Failures

Applications depend on libraries to avoid reinventing the wheel. Librari...
10/05/2015

On The Evolution Of User Support Topics in Computational Science and Engineering Software

We investigate ten years of user support emails in the large-scale solve...