Towards Predicting the Impact of Software Changes on Building Activities

01/22/2019
by   Michele Tufano, et al.
0

The pervasive adoption of Continuous Integration practices -- both in industry and open source projects -- has led software building to become a daily activity for thousands of developers around the world. Companies such as Microsoft have invested in in-house infrastructures with the goal of optimizing the build process. CloudBuild, a distributed and caching build service developed internally by Microsoft, runs the build process in parallel in the cloud and relies on caching to accelerate builds. This allows for agile development and rapid delivery of software even several times a day. However, moving towards faster builds requires not only improvements on the infrastructure side, but also attention to developers' changes in the software. Surely, architectural decisions and software changes, such as addition of dependencies, can lead to significant build time increase. Yet, estimating the impact of such changes on build time can be challenging when dealing with complex, distributed, and cached build systems. In this paper, we envision a predictive model able to preemptively alert developers on the extent to which their software changes may impact future building activities. In particular, we describe an approach that analyzes the developer's change and predicts (i) whether it impacts (any of) the Longest Critical Path; (ii) may lead to build time increase and its delta; and (iii) the percentage of future builds that might be affected by such change.

READ FULL TEXT
research
08/19/2023

Repeated Builds During Code Review: An Empirical Study of the OpenStack Community

Code review is a popular practice where developers critique each others'...
research
12/19/2017

Built to Last or Built Too Fast? Evaluating Prediction Models for Build Times

Automated builds are integral to the Continuous Integration (CI) softwar...
research
05/14/2020

Identifying Bugs in Make and JVM-Oriented Builds

Incremental and parallel builds are crucial features of modern build sys...
research
02/18/2021

Smart Build Targets Batching Service at Google

Google has a monolithic codebase with tens of millions build targets. Ea...
research
03/26/2020

Empirical Study of Restarted and Flaky Builds on Travis CI

Continuous Integration (CI) is a development practice where developers f...
research
08/27/2021

LaForge: Always-Correct and Fast Incremental Builds from Simple Specifications

Developers rely on build systems to generate software from code. At a mi...
research
07/02/2019

Continuous Integration Theater

Background: Continuous Integration (CI) systems are now the bedrock of s...

Please sign up or login with your details

Forgot password? Click here to reset