网络分析以识别即将休眠的开源软件库

导读 日本的研究人员使用社会技术技术来衡量开源编程库的贡献者网络与该库在生态系统中的依赖性之间的一致性。这项工作表明,贡献者网络和依赖关

日本的研究人员使用社会技术技术来衡量开源编程库的贡献者网络与该库在生态系统中的依赖性之间的一致性。这项工作表明,贡献者网络和依赖关系网络之间的匹配程度可以用作图书馆面临停止活动风险的指标。

运行您喜爱的应用程序或网站的现代计算机程序可能非常庞大,通常以数百万行代码来衡量。这显然比任何一个人都能处理的复杂得多。因此,大多数编程语言都依赖称为第三方库的专门模块来完成特定任务。这些库通常是开源的,任何想要下载和使用它们的人都可以免费使用。

例如,JavaScript程序员可以访问超过一百万个库,而Python社区有超过300,000个库。图书馆本身经常相互依赖,典型的图书馆需要使用大约五个其他图书馆。然而,人们对互连库的生态系统及其相互依赖关系知之甚少,这是令人担忧的,因为其中一个故障可能会对整个系统产生连锁反应。

持续的贡献是至关重要的,因为任何一个库对其他库的依赖都必须不断更新以响应变化。然而,这些库的维护者经常过度劳累,并且经常作为无偿志愿者做出贡献。

现在,奈良科学技术研究所(NAIST)的一组研究人员通过定义一个称为“依赖-贡献一致性”(DCcongruence)的指标来研究这些网络,该指标衡量图书馆依赖网络与贡献者变化网络的匹配程度.当同一个贡献者对库及其附属库进行更改时,一致性度量最大。

第一作者SupatsaraWattanakriengkrai说:“我们发现DC一致性与图书馆休眠的可能性呈反比关系。具体来说,如果贡献与升级依赖性一致,则图书馆休眠的可能性较小。”该团队测量了JavaScript库的npm生态系统中的DC一致性,并分析了107,242个不同库中超过530万个更改提交。

“我们生成的指标中的峰值与重要的生态系统事件相关,”资深作者KenichiMatsumoto说。

这项研究可能有助于保持软件运行并识别依赖网络中的脆弱点,并可能最终鼓励支持维护软件开发中使用的相互依赖的第三方库的依赖性贡献。