Automated Dependency Optimization for Artifact-Based Build Systems
Hongxu Xu, Zhenyang Xu, Shane McIntosh, Chengnian Sun
Abstract
As projects grow, the maintenance of intra- and inter-project dependencies becomes increasingly complex. If dependency maintenance is lax, redundant dependencies may accrue, inflating incremental build and test latencies. The heterogeneity of language- and tool-specific dependency expressions and the complexity of the dependency graphs that they specify exacerbate the challenge of identifying and removing redundant dependencies. To address these challenges, this paper introduces DepReduce, an automated approach for optimizing declared dependencies in artifact-based build systems. DepReduce operates directly on the dependency graph managed by the underlying build system, and formalizes the optimization objective as minimizing the cumulative rebuild cost triggered by changes to individual targets. To achieve this, DepReduce performs the dependency lifting and dependency flattening operations on the dependency graph in topological order, which we prove is both correct and optimal under the defined optimization objective. To empirically evaluate the approach, we implemented BazelDepReduce, an automated dependency optimization tool for Bazel. Bazel is an artifact-based build system with native support for multiple programming languages. We evaluated BazelDepReduce on 19 open-source Bazel projects written in seven programming languages. Among them, 16 projects across six languages achieved reductions in rebuild cost. In total, BazelDepReduce identified and removed 430 redundant dependencies, which we used to produce 16 Pull Requests (PRs). Twelve PRs have been merged by the target projects, including Angular and Apache RocketMQ, affecting up to 80.6% of subsequent commits, with a median of 26.3%. We also adapted BazelDepReduce to support Buck and Cargo, providing preliminary evidence that the implementation can be extended to other artifact-based build systems. Overall, these results show that our approach can effectively reduce rebuild cost on selected Bazel projects spanning multiple languages.
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 52a669c5-ae89-497a-9f32-4d7133df1f09Builds on4
- 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
- A model for detecting faults in build specificationsThodoris Sotiropoulos, Stefanos Chaliasos, Dimitris Mitropoulos, Diomidis SpinellisOOPSLA 2020 · 16 citations
- Accelerating Build Dependency Error Detection via Virtual BuildRongxin Wu, Minglei Chen, Chengpeng Wang, Gang Fan et al.ASE 2022 · 6 citations
- Dependency-Induced Waste in Continuous Integration: An Empirical Study of Unused Dependencies in the npm EcosystemNimmi Rashinika Weeraddana, Mahmoud Alfadel, Shane McIntoshFSE 2024 · 6 citations
Related papers
- The Cost of Downgrading Build Systems : A Case Study of KubernetesGareema Ranjan, Mahmoud Alfadel, Gengyi Sun, Shane McIntoshASE 2025
- The Classics Never Go Out of Style: An Empirical Study of Downgrades from the Bazel Build TechnologyMahmoud Alfadel, Shane McIntoshICSE 2024 · 4 citations
- Towards Efficient Build Ordering for Incremental Builds with Multiple ConfigurationsJun Lyu, Shanshan Li, He Zhang, Lanxin Yang et al.FSE 2024 · 4 citations
- Efficient Build Dependency Verification Using eBPF and Incremental AnalysisYuta Saito, Kazunori Sakamoto, Hironori WashizakiICSE 2026
- Detecting Build Dependency Errors in Incremental BuildsJun Lyu, Shanshan Li, He Zhang, Yang Zhang et al.ISSTA 2024 · 3 citations
