论文标题

回馈:软件生态系统中图书馆依赖性更改一致的贡献

Giving Back: Contributions Congruent to Library Dependency Changes in a Software Ecosystem

论文作者

Wattanakriengkrai, Supatsara, Wang, Dong, Kula, Raula Gaikovina, Treude, Christoph, Thongtanunam, Patanamon, Ishio, Takashi, Matsumoto, Kenichi

论文摘要

大众采用第三方图书馆对当代软件开发的开发已导致建立大型相互依赖性网络,在该网络中,单个图书馆的可持续性问题可能具有广泛的网络效果。这些图书馆的维护者通常依靠志愿者维持这些图书馆的贡献过度劳累。在这项工作中,我们衡量与依赖性变化保持一致的贡献,以了解它们来自何处(即非改善者,客户维护者,图书馆维护者,图书馆和客户维护者),分析它们是否有助于图书馆的休眠(即缺乏活动),并研究这些贡献和开发商之间的相似之处。因此,我们利用社会技术技术来衡量依赖关系一致性(DC一致性),即贡献与依赖关系的程度。我们进行了一项大规模的实证研究,以使用170万期,97万拉请求(PR)和超过530万个属于107,242 NPM的NPM套件来衡量NPM生态系统的DC一致性。在生态系统级别,我们指出了与依赖关系变化一致的时间峰(即16%的DC一致性得分)。令人惊讶的是,这些贡献来自生态系统本身(即客户和图书馆的非改善者)。在项目级别上,我们发现DC一致性与软件包变得处于休眠状态的可能性具有统计学意义的关系。最后,通过比较源代码代码,我们发现一致的贡献在统计学上与典型贡献有所不同。我们的工作对鼓励和维持贡献有影响,特别是支持需要依赖性变化的图书馆维护者。

Popular adoption of third-party libraries for contemporary software development has led to the creation of large inter-dependency networks, where sustainability issues of a single library can have widespread network effects. Maintainers of these libraries are often overworked, relying on the contributions of volunteers to sustain these libraries. In this work, we measure contributions that are aligned with dependency changes, to understand where they come from (i.e., non-maintainer, client maintainer, library maintainer, and library and client maintainer), analyze whether they contribute to library dormancy (i.e., a lack of activity), and investigate the similarities between these contributions and developers' typical contributions. Hence, we leverage socio-technical techniques to measure the dependency-contribution congruence (DC congruence), i.e., the degree to which contributions align with dependencies. We conduct a large-scale empirical study to measure the DC congruence for the NPM ecosystem using 1.7 million issues, 970 thousand pull requests (PR), and over 5.3 million commits belonging to 107,242 NPM packages. At the ecosystem level, we pinpoint in time peaks of congruence with dependency changes (i.e., 16% DC congruence score). Surprisingly, these contributions came from the ecosystem itself (i.e., non-maintainers of either client and library). At the project level, we find that DC congruence shares a statistically significant relationship with the likelihood of a package becoming dormant. Finally, by comparing source code of contributions, we find that congruent contributions are statistically different to typical contributions. Our work has implications to encourage and sustain contributions, especially to support library maintainers that require dependency changes.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源