A broken snapshot represents a snapshot from a project's change history that cannot be compiled.Broken snapshots can have significant implications for researchers, as they could hinder any analysis of the past project history that requires code to be compiled. Noticeably, while some broken snapshots may be observable in change history repositories (e.g., no longer available dependencies), some of them may not necessarily happen during the actual development. In this paper, we systematically study the compilability of broken snapshots in 219 395 snapshots belonging to 100 Java projects from the Apache Software Foundation, all relying on Maven as an automated build tool. We investigated broken snapshots from 2 different perspectives: (1) how frequently they happen and (2) likely causes behind them. The empirical results indicate that broken snapshots occur in most (96%) of the projects we studied and that they are mainly due to problems related to the resolution of dependencies. On average, only 38% of the change history of the analyzed systems is currently successfully compilable.
KEYWORDSbroken snapshots, empirical studies, mining software repositories, software quality 1 the build script is unable to solve library dependencies, either because they refer to local files, or because the libraries are no longer available in the Maven central repository. He is able to solve the problem for 80 of them, by manually searching for the needed library version. However, †