Towards Using Package Centrality Trend to Identify Packages in Decline
arXiv:2107.10168 · doi:10.1109/TEM.2021.3122012
Abstract
Due to their increasing complexity, today's software systems are frequently built by leveraging reusable code in the form of libraries and packages. Software ecosystems (e.g., npm) are the primary enablers of this code reuse, providing developers with a platform to share their own and use others' code. These ecosystems evolve rapidly: developers add new packages every day to solve new problems or provide alternative solutions, causing obsolete packages to decline in their importance to the community. Developers should avoid depending on packages in decline, as these packages are reused less over time and may become less frequently maintained. However, current popularity metrics (e.g., Stars, and Downloads) are not fit to provide this information to developers because their semantics do not aptly capture shifts in the community interest. In this paper, we propose a scalable approach that uses the package's centrality in the ecosystem to identify packages in decline. We evaluate our approach with the npm ecosystem and show that the trends of centrality over time can correctly distinguish packages in decline with an ROC-AUC of 0.9. The approach can capture 87% of the packages in decline, on average 18 months before the trend is shown in currently used package popularity metrics. We implement this approach in a tool that can be used to augment the npms metrics and help developers avoid packages in decline when reusing packages from npm.
arXiv commentAccepted in the Special Issue on Collaboration and Innovation Dynamics in Software Ecosystems
References in corpus (5)
- Do Developers Update Their Library Dependencies? An Empirical Study on the Impact of Security Advisories on Library Migration
- Understanding the Factors that Impact the Popularity of GitHub Repositories
- What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform
- Is this GitHub Project Maintained? Measuring the Level of Maintenance Activity of Open-Source Projects
- Identifying Unmaintained Projects in GitHub
Cited by in corpus (4)
- Analyzing Maintenance Activities of Software Libraries
- Trusting code in the wild: Exploring contributor reputation measures to review dependencies in the Rust ecosystem
- Analyzing the Accessibility of GitHub Repositories for PyPI and NPM Libraries
- How Reliable Are FOSS Popularity Metrics? Analyzing the Effort Required for Spoofing Common Software Popularity Metrics