There and back again: Can you compile that snapshot?. Issue 4 (20th December 2016) - Tufano, Michele; Palomba, Fabio; Bavota, Gabriele; Di Penta, Massimiliano; Oliveto, Rocco; De Lucia, Andrea; Poshyvanyk, Denys
Abstract : 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. Abstract : We study broken snapshots (i.e., snapshots that cannot be compiled) in 100 Java projects to investigate (1) how frequently they happen and (2) likely causes behind them. The empirical results indicate that broken snapshots occur in 96% of the projects and that they are mainly due to problems related to the resolution of dependencies. The achieved results can be useful to researchers interested in gaining analytical insights by mining (and compiling) the change history of software projects.