Where to Go Now? Finding Alternatives for Declining Packages in the npm Ecosystem
Suhaib Mujahid, Diego Elias Costa, Rabe Abdalkareem, Emad, Shihab

TL;DR
This paper presents an automated approach to identify declining npm packages and suggest better alternatives, validated by high accuracy and positive developer feedback, to facilitate dependency migration in software ecosystems.
Contribution
The paper introduces a novel automated method for detecting packages in decline and recommending suitable replacements based on ecosystem migration patterns, supported by real-world examples.
Findings
96% accuracy in suggested package alternatives
67% of surveyed developers would use the recommendations
Effective identification and migration of packages in decline
Abstract
Software ecosystems (e.g., npm, PyPI) are the backbone of modern software developments. Developers add new packages to ecosystems every day to solve new problems or provide alternative solutions, causing obsolete packages to decline in their importance to the community. Packages in decline are reused less overtime and may become less frequently maintained. Thus, developers usually migrate their dependencies to better alternatives. Replacing packages in decline with better alternatives requires time and effort by developers to identify packages that need to be replaced, find the alternatives, asset migration benefits, and finally, perform the migration. This paper proposes an approach that automatically identifies packages that need to be replaced and finds their alternatives supported with real-world examples of open source projects performing the suggested migrations. At its core,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsOpen Source Software Innovations · Green IT and Sustainability · Software Engineering Research
