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.
翻译:诺德. js 套件管理器( 即 npm) 归档存储器是 JavaScript 社区的关键部分,有助于支持世界上最大的开发者生态系统之一。 然而, 作为开发者, 选择合适的 npm 套件使用或贡献可能很困难 。 要了解用户和贡献者在搜索良好的 npm 套件时认为哪些特征很重要, 我们进行一次调查, 请诺德. js 开发者评估现有工作产生的30个特征的重要性, 包括 GitHub 活动、 软件可用性以及存储器和文件的属性。 我们发现, 用户和贡献者对于它们用来评估软件包质量的特征有着相似的观点。 我们随后从 104, 364 npm 套件中提取了30个特征, 分析它们之间的相互关系, 包括测量软件包“ 可操作性” 的三个软件特性; 安装、 建立和 执行单位测试的能力。 我们确定哪些特征与可操作性相关特性有负关联, 并发现预测软件可操作性是可行的。 我们的研究为未来工作奠定了基础, 如何理解用户和贡献者选择 npm 。