Escaping dependency hell: finding build dependency errors with the unified dependency graph
Gang Fan, Chengpeng Wang, Rongxin Wu, Xiao Xiao, Qingkai Shi, Charles Zhang
Abstract
Modern software projects rely on build systems and build scripts to assemble executable artifacts correctly and efficiently. However, developing build scripts is error-prone. Dependency-related errors in build scripts, mainly including missing dependencies and redundant dependencies, are common in various kinds of software projects. These errors lead to build failures, incorrect build results or poor performance in incremental or parallel builds. To detect such errors, various techniques are proposed and suffer from low efficiency and high false positive problems, due to the deficiency of the underlying dependency graphs. In this work, we design a new dependency graph, the unified dependency graph (UDG), which leverages both static and dynamic information to uniformly encode the declared and actual dependencies between build targets and files. The construction of UDG facilitates the efficient and precise detection of dependency errors via simple graph traversals. We implement the proposed approach as a tool, VeriBuild, and evaluate it on forty-two well-maintained open-source projects. The experimental results show that, without losing precision, VeriBuild incurs 58.2% less overhead than the state-of-the-art approach. By the time of writing, 398 detected dependency issues have been confirmed by the developers.
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.
Cited by top-tier papers14
- Fixing dependency errors for Python build reproducibilitySuchita Mukherjee, Abigail Almanza, Cindy Rubio-GonzálezISSTA 2021 · 55 citations
- smartPip: A Smart Approach to Resolving Python Dependency Conflict IssuesChao Wang, Rongxin Wu, Haohao Song, Jiwu Shu et al.ASE 2022 · 15 citations
- CNEPS: A Precise Approach for Examining Dependencies among Third-Party C/C++ Open-Source ComponentsYoonjong Na, Seunghoon Woo, Joomyeong Lee, Heejo LeeICSE 2024 · 11 citations
- Plankton: Reconciling Binary Code and Debug InformationAnshunkang Zhou, Chengfeng Ye, Heqing Huang, Yuandao Cai et al.ASPLOS 2024 · 11 citations
- Knowledge-Based Version Incompatibility Detection for Deep LearningZhongkai Zhao, Bonan Kou, Mohamed Yilmaz Ibrahim, Muhao Chen et al.FSE 2023 · 7 citations
Related papers
- Accelerating Build Dependency Error Detection via Virtual BuildRongxin Wu, Minglei Chen, Chengpeng Wang, Gang Fan et al.ASE 2022 · 6 citations
- Efficient Build Dependency Verification Using eBPF and Incremental AnalysisYuta Saito, Kazunori Sakamoto, Hironori WashizakiICSE 2026
- Automatic Fixing of Missing Dependency ErrorsJun Lyu, He Zhang, Lanxin Yang, Yue Li et al.ASE 2025
- Detecting Build Dependency Errors in Incremental BuildsJun Lyu, Shanshan Li, He Zhang, Yang Zhang et al.ISSTA 2024 · 3 citations
- Automated Dependency Optimization for Artifact-Based Build SystemsHongxu Xu, Zhenyang Xu, Shane McIntosh, Chengnian SunISSTA 2026
