Dependency-Induced Waste in Continuous Integration: An Empirical Study of Unused Dependencies in the npm Ecosystem
Nimmi Rashinika Weeraddana, Mahmoud Alfadel, Shane McIntosh
Abstract
Modern software systems are increasingly dependent upon code from external packages (i.e., dependencies). Building upon external packages allows software reuse to span across projects seamlessly. Package maintainers regularly release updated versions to provide new features, fix defects, and address security vulnerabilities. Due to the potential for regression, managing dependencies is not just a trivial matter of selecting the latest versions. Since it is perceived to be less risky to retain a dependency than remove it, as projects evolve, they tend to accrue dependencies, exacerbating the difficulty of dependency management. It is not uncommon for a considerable proportion of external packages to be unused by the projects that list them as a dependency. Although such unused dependencies are not required to build and run the project, updates to their dependency specifications will still trigger Continuous Integration (CI) builds. The CI builds that are initiated by updates to unused dependencies are fundamentally wasteful. Considering that CI build time is a finite resource that is directly associated with project development and service operational costs, understanding the consequences of unused dependencies within this CI context is of practical importance. In this paper, we study the CI waste that is generated by updates to unused dependencies. We collect a dataset of 20,743 commits that are solely updating dependency specifications (i.e., the package.json file), spanning 1,487 projects that adopt npm for managing their dependencies. Our findings illustrate that 55.88% of the CI build time that is associated with dependency updates is only triggered by unused dependencies. At the project level, the median project spends 56.09% of its dependency-related CI build time on updates to unused dependencies. For projects that exceed the budget of free build minutes, we find that the median percentage of billable CI build time that is wasted due to unused-dependency commits is 85.50%. Moreover, we find that automated bots are the primary producers of dependency-induced CI waste, contributing 92.93% of the CI build time that is spent on unused dependencies. The popular Dependabot is responsible for updates to unused dependencies that account for 74.52% of that waste. To mitigate the impact of unused dependencies on CI resources, we introduce D ep-s CI mitar , an approach to cut down wasted CI time by identifying and skipping CI builds that are triggered due to unused-dependency commits. A retrospective evaluation of the 20,743 studied commits shows that D ep-s CI mitar reduces wasted CI build time by 68.34% by skipping wasteful builds with a precision of 94%.
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 f5bb616b-50c5-46e1-8c43-4909dded6c19Cited by top-tier papers3
- Developer-Applied Accelerations in Continuous Integration: A Detection Approach and Catalog of PatternsMingyang Yin, Yutaro Kashiwa, Keheliya Gallaba, Mahmoud Alfadel et al.ASE 2024 · 5 citations
- Automated Dependency Optimization for Artifact-Based Build SystemsHongxu Xu, Zhenyang Xu, Shane McIntosh, Chengnian SunISSTA 2026
- Guarding the Lifeline: A First Look and Automated Defect Diagnosis for ROS Central IndexWeijie Sun, Huiyan Wang, Ying Wang, Chang XuISSTA 2026
Builds on9
- Small World with High Risks: A Study of Security Threats in the npm EcosystemMarkus Zimmermann, Cristian-Alexandru Staicu, Cam Tenny, Michael PradelUSENIX Security 2019 · 281 citations
- A Qualitative Study of Dependency Management and Its Security ImplicationsIvan Pashchenko, Duc-Ly Vu, Fabio MassacciCCS 2020 · 84 citations
- A longitudinal analysis of bloated Java dependenciesCésar Soto-Valero, Thomas Durieux, Benoit BaudryFSE 2021 · 47 citations
- A cost-efficient approach to building in continuous integrationXianhao Jin, Francisco ServantICSE 2020 · 34 citations
- BUILDFAST: History-Aware Build Outcome Prediction for Fast Feedback and Reduced Cost in Continuous IntegrationBihuan Chen, Linlin Chen, Chen Zhang, Xin PengASE 2020 · 32 citations
Related papers
- Not All Dependencies are Equal: An Empirical Study on Production Dependencies in NPMJasmine Latendresse, Suhaib Mujahid, Diego Elias Costa, Emad ShihabASE 2022 · 17 citations
- Optimizing Continuous Development by Detecting and Preventing Unnecessary Content GenerationTalank Baral, Shanto Rahman, Bala Naren Chanumolu, Basak Balci et al.ASE 2023 · 2 citations
- Detecting Build Dependency Errors in Incremental BuildsJun Lyu, Shanshan Li, He Zhang, Yang Zhang et al.ISSTA 2024 · 3 citations
- Understanding the Response to Open-Source Dependency Abandonment in the npm EcosystemCourtney Miller, Mahmoud Jahanshahi, Audris Mockus, Bogdan Vasilescu et al.ICSE 2025 · 5 citations
- Efficiently Trimming the Fat: Streamlining Software Dependencies with Java Reflection and Dependency AnalysisXiaohu Song, Ying Wang, Xiao Cheng, Guangtai Liang et al.ICSE 2024 · 4 citations
