Determining the Intrinsic Structure of Public Software Development History
This work addresses the need to understand the structure of public software development history for researchers and practitioners to optimize analysis methods and avoid pitfalls, but it is exploratory and incremental in nature.
The study tackled the problem of understanding the intrinsic structure of the entire corpus of publicly available version control system data as an interconnected graph, and the result involved analyzing network topology properties such as degree distributions, component sizes, and shortest path lengths using the Software Heritage corpus.
Background. Collaborative software development has produced a wealth of version control system (VCS) data that can now be analyzed in full. Little is known about the intrinsic structure of the entire corpus of publicly available VCS as an interconnected graph. Understanding its structure is needed to determine the best approach to analyze it in full and to avoid methodological pitfalls when doing so. Objective. We intend to determine the most salient network topol-ogy properties of public software development history as captured by VCS. We will explore: degree distributions, determining whether they are scale-free or not; distribution of connect component sizes; distribution of shortest path lengths.Method. We will use Software Heritage-which is the largest corpus of public VCS data-compress it using webgraph compression techniques, and analyze it in-memory using classic graph algorithms. Analyses will be performed both on the full graph and on relevant subgraphs. Limitations. The study is exploratory in nature; as such no hypotheses on the findings is stated at this time. Chosen graph algorithms are expected to scale to the corpus size, but it will need to be confirmed experimentally. External validity will depend on how representative Software Heritage is of the software commons.