Dependency-Induced Waste in Continuous Integration: An Empirical Study of Unused Dependencies in the npm Ecosystem
Nimmi Rashinika Weeraddana, Mahmoud Alfadel, Shane McIntosh
摘要
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%.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper3
- Developer-Applied Accelerations in Continuous Integration: A Detection Approach and Catalog of PatternsMingyang Yin, Yutaro Kashiwa, Keheliya Gallaba, Mahmoud Alfadel 等ASE 2024 · 被引用 5 次
- 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
它引用的顶会 Paper9
- 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 次
- A Qualitative Study of Dependency Management and Its Security ImplicationsIvan Pashchenko, Duc-Ly Vu, Fabio MassacciCCS 2020 · 被引用 84 次
- A longitudinal analysis of bloated Java dependenciesCésar Soto-Valero, Thomas Durieux, Benoit BaudryFSE 2021 · 被引用 47 次
- A cost-efficient approach to building in continuous integrationXianhao Jin, Francisco ServantICSE 2020 · 被引用 34 次
- BUILDFAST: History-Aware Build Outcome Prediction for Fast Feedback and Reduced Cost in Continuous IntegrationBihuan Chen, Linlin Chen, Chen Zhang, Xin PengASE 2020 · 被引用 32 次
相关 Paper
- Not All Dependencies are Equal: An Empirical Study on Production Dependencies in NPMJasmine Latendresse, Suhaib Mujahid, Diego Elias Costa, Emad ShihabASE 2022 · 被引用 17 次
- Optimizing Continuous Development by Detecting and Preventing Unnecessary Content GenerationTalank Baral, Shanto Rahman, Bala Naren Chanumolu, Basak Balci 等ASE 2023 · 被引用 2 次
- Detecting Build Dependency Errors in Incremental BuildsJun Lyu, Shanshan Li, He Zhang, Yang Zhang 等ISSTA 2024 · 被引用 3 次
- Understanding the Response to Open-Source Dependency Abandonment in the npm EcosystemCourtney Miller, Mahmoud Jahanshahi, Audris Mockus, Bogdan Vasilescu 等ICSE 2025 · 被引用 5 次
- Efficiently Trimming the Fat: Streamlining Software Dependencies with Java Reflection and Dependency AnalysisXiaohu Song, Ying Wang, Xiao Cheng, Guangtai Liang 等ICSE 2024 · 被引用 4 次
