Title
Structure and evolution of package dependency networks.
Abstract
Software developers often include available open-source software packages into their projects to minimize redundant effort. However, adding a package to a project can also introduce risks, which can propagate through multiple levels of dependencies. Currently, not much is known about the structure of open-source package ecosystems of popular programming languages and the extent to which transitive bug propagation is possible. This paper analyzes the dependency network structure and evolution of the JavaScript, Ruby, and Rust ecosystems. The reported results reveal significant differences across language ecosystems. The results indicate that the number of transitive dependencies for JavaScript has grown 60% over the last year, suggesting that developers should look more carefully into their dependencies to understand what exactly is included. The study also reveals that vulnerability to a removal of the most popular package is increasing, yet most other packages have a decreasing impact on vulnerability. The findings of this study can inform the development of dependency management tools.
Year
DOI
Venue
2017
10.1109/MSR.2017.55
MSR
Keywords
Field
DocType
software evolution,dependency management,software ecosystems,mining software repositories
Data mining,Software engineering,Package development process,Computer science,Software bug,Dependency network,Transitive dependency,Database,Dependency hell,Transitive relation,Vulnerability,JavaScript
Conference
ISSN
ISBN
Citations 
2160-1852
978-1-5386-1545-4
21
PageRank 
References 
Authors
0.89
20
4
Name
Order
Citations
PageRank
Riivo Kikas1514.19
Georgios Gousios2133367.86
Marlon Dumas35742371.10
Dietmar Pfahl41078106.14