Understanding the Implications of Changes to Build Systems
Mahtab Nejati, Mahmoud Alfadel, Shane McIntosh
Abstract
The maintenance of build systems imposes a considerable overhead on software development. Since automated quality assurance methods are rarely applied to build specifications, the importance of the role peer code review plays in the maintenance of build systems is amplified. Yet prior work shows that the review process for build systems suffers from a lack of build experts and effective tooling. To support the understanding of changes to build specifications (a key stage in the review process), we propose BCIA-an approach to summarize the impact of changes to build specifications across the build configuration space. BCIA traverses the paths through which data and control flow in the prior and updated versions of the build system to generate an Impact Knowledge Graph (IKG), which describes the impact of the change across the build configuration space. We develop BuiScout-a prototype implementation of BCIA for CMake-based build systems. We use BuiScout to evaluate our approach through an empirical study of 10,000 change sets that we mine from ten large open-source projects that span a total of 28 development years. Our findings indicate that BuiScout can detect an impact that propagates to unmodified parts of the build system in 77.37% of the studied change sets. These changes impact a median of 14 unmodified commands, with a median of 95.55% of the impacted commands per change set appearing in unmodified files. Our study suggests that dedicated approaches, such as BCIA, have the potential to alleviate the challenges developers face when assessing the impact of changes to build systems.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext bfc3a8a6-57e1-4118-8f26-ee843ad94564Cited by top-tier papers2
- The Cost of Downgrading Build Systems : A Case Study of KubernetesGareema Ranjan, Mahmoud Alfadel, Gengyi Sun, Shane McIntoshASE 2025
- EvidenT: An Evidence-Preserving Framework for Iterative System-Level Package RepairChenyu Zhao, Minghua Ma, Shenglin Zhang, Zeshun Huang et al.ISSTA 2026
Builds on3
- Escaping dependency hell: finding build dependency errors with the unified dependency graphGang Fan, Chengpeng Wang, Rongxin Wu, Xiao Xiao et al.ISSTA 2020 · 37 citations
- Rete: Learning Namespace Representation for Program RepairNikhil Parasaram, Earl T. Barr, Sergey MechtaevICSE 2023 · 12 citations
- Code Review of Build System Specifications: Prevalence, Purposes, Patterns, and PerceptionsMahtab Nejati, Mahmoud Alfadel, Shane McIntoshICSE 2023 · 8 citations
Related papers
- Detecting Build Conflicts in Software Merge for Java Programs via Static AnalysisSheikh Shadab Towqir, Bowen Shen, Muhammad Ali Gulzar, Na MengASE 2022 · 7 citations
- Efficient Build Dependency Verification Using eBPF and Incremental AnalysisYuta Saito, Kazunori Sakamoto, Hironori WashizakiICSE 2026
- Enhancing Code Understanding for Impact Analysis by Combining Transformers and Program Dependence GraphsYanfu Yan, Nathan Cooper, Kevin Moran, Gabriele Bavota et al.FSE 2024 · 4 citations
- CMakeSonar: A Static Approach to Detecting CMake Bugs with a Fine-Grained Type SystemHaotian Han, Zihang Zhong, Qingan Li, Jingling Xue et al.OOPSLA 2026
- CPscan: Detecting Bugs Caused by Code Pruning in IoT KernelsLirong Fu, Shouling Ji, Kangjie Lu, Peiyu Liu et al.CCS 2021 · 7 citations
