There and back again: Can you compile that snapshot?

  • Michele Tufano ,
  • Fabio Palomba ,
  • Gabriele Bavota ,
  • Massimiliano Di Penta ,
  • Rocco Oliveto ,
  • Andrea De Lucia ,
  • Denys Poshyvanyk

Journal of Software: Evolution and Process | , Vol 29(4)

Publication | Publication | Publication

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.