一句话:构建近全量可更新的 FLOSS 版本控制数据平台,并通过供应链建模揭示 OSS 生态结构、演化与技术传播因素。
本文针对开源软件生态外围项目之间如何通过技术依赖、代码共享与知识流动相互连接这一问题展开研究,因为已有工作多集中于 Linux 等核心项目。作者构建了几乎完整且可快速更新的 FLOSS 版本控制数据集合,涵盖超过 300TB、15 亿次提交和 120 亿个 git 对象;随后清洗、校正并增强数据,以度量代码、开发者与项目间的多种依赖,并使用高精度身份校正和源码依赖抽取算法。基于这些供应链数据,作者建立模型分析整个 OSS 的结构与动态演化,尤其是技术传播中开发者选择软件组件的隐含因素。该平台有望促进对 OSS 外围与核心项目相互支撑关系的研究,提升 OSS 的韧性与效能。
Open Source Software (OSS) forms an infrastructure on which numerous (often critical) software applications are based. Substantial research was done to investigate central projects such as Linux kernel but we have only a limited understanding of how the periphery of the larger OSS ecosystem is interconnected through technical dependencies, code sharing, and knowledge flows. We aim to close this gap by a) creating a nearly complete and rapidly updateable collection of version control data for FLOSS projects; b) by cleaning, correcting, and augmenting the data to measure several types of dependencies among code, developers, and projects; c) by creating models that rely on the resulting supply chains to investigate structural and dynamic properties of the entire OSS. The current implementation is capable of being updated each month, occupies over 300Tb of disk space with 1.5B commits and 12B git objects. Highly accurate algorithms to correct identity data and extract dependencies from the source code are used to characterize the current structure of OSS and the way it has evolved. In particular, models of technology spread demonstrate the implicit factors developers use when choosing software components. We expect the resulting research platform will both spur investigations on how the huge periphery in OSS both sustains and is sustained by the central OSS projects and, as a result, will increase resiliency and effectiveness of the OSS.