Contributing Back to the Ecosystem: A User Survey of NPM Developers
Supatsara Wattanakriengkrai, Christoph Treude, Raula Gaikovina Kula
TL;DR
This study analyzes Stack Overflow data for Maven, npm, and NuGet to characterize package management (PM) issues and the information end-users need to resolve them. It employs a two-part approach: qualitative coding of 1,131 PM-related questions to identify issue types ($RQ_1$) and underlying causes ($RQ_2$), and a mixed-method analysis including attribute annotation and association-rule mining to examine resolution patterns ($RQ_3$, $RQ_4$). The findings show that How-to and Error questions dominate PM discussions, with tool usage as the main underlying cause across ecosystems; only about 40–49% of PM issues receive accepted answers, indicating limited resolution. External links to official docs or GitHub resources are the most common information in accepted answers, suggesting routes for tooling to surface relevant guidance. Overall, the work highlights opportunities to improve PM tooling, error messaging, and documentation to improve ecosystem sustainability and developer experience.
Abstract
With the rise of the library ecosystem (such as NPM for JavaScript and PyPI for Python), a developer has access to a multitude of library packages that they can adopt as dependencies into their application.Prior work has found that these ecosystems form a complex web of dependencies, where sustainability issues of a single library can have widespread network effects. Due to the Open Source Software (OSS) nature of third party libraries, there are rising concerns with the sustainability of these libraries. In a survey of 49 developers from the NPM ecosystem, we find that developers are more likely to maintain their own packages rather than contribute to the ecosystem. Our results opens up new avenues into tool support and research into how to sustain these ecosystems, especially for developers that depend on these libraries. We have made available the raw results of the survey at \url{https://tinyurl.com/2p8sdmr3}.
