English

CAM: A Collection of Snapshots of GitHub Java Repositories Together with Metrics

Software Engineering 2024-03-14 v1

Abstract

Even though numerous researchers require stable datasets along with source code and basic metrics calculated on them, neither GitHub nor any other code hosting platform provides such a resource. Consequently, each researcher must download their own data, compute the necessary metrics, and then publish the dataset somewhere to ensure it remains accessible indefinitely. Our CAM (stands for ``Classes and Metrics'') project addresses this need. It is an open-source software capable of cloning Java repositories from GitHub, filtering out unnecessary files, parsing Java classes, and computing metrics such as Cyclomatic Complexity, Halstead Effort and Volume, C\&K metrics, Maintainability Metrics, LCOM5 and HND, as well as some Git-based Metrics. At least once a year, we execute the entire script, a process which requires a minimum of ten days on a very powerful server, to generate a new dataset. Subsequently, we publish it on Amazon S3, thereby ensuring its availability as a reference for researchers. The latest archive of 2.2Gb that we published on the 2nd of March, 2024 includes 532K Java classes with 48 metrics for each class.

Keywords

Cite

@article{arxiv.2403.08488,
  title  = {CAM: A Collection of Snapshots of GitHub Java Repositories Together with Metrics},
  author = {Yegor Bugayenko},
  journal= {arXiv preprint arXiv:2403.08488},
  year   = {2024}
}