What makes a good Node.js package? Investigating Users, Contributors, and Runnability
This addresses the challenge for Node.js developers in choosing appropriate packages, though it is incremental as it builds on existing feature sets and focuses on a specific domain.
The study investigated what features Node.js developers consider important when selecting npm packages, finding that users and contributors share similar quality assessments and that predicting package 'runnability' (install, build, test execution) is viable based on correlations with other features.
The Node.js Package Manager (i.e., npm) archive repository serves as a critical part of the JavaScript community and helps support one of the largest developer ecosystems in the world. However, as a developer, selecting an appropriate npm package to use or contribute to can be difficult. To understand what features users and contributors consider important when searching for a good npm package, we conduct a survey asking Node.js developers to evaluate the importance of 30 features derived from existing work, including GitHub activity, software usability, and properties of the repository and documentation. We identify that both user and contributor perspectives share similar views on which features they use to assess package quality. We then extract the 30 features from 104,364 npm packages and analyse the correlations between them, including three software features that measure package ``runnability"; ability to install, build, and execute a unit test. We identify which features are negatively correlated with runnability-related features and find that predicting the runnability of packages is viable. Our study lays the groundwork for future work on understanding how users and contributors select appropriate npm packages.