2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER) (2018)
March 20, 2018 to March 23, 2018
Christian Macho , Software Engineering Research Group, University of Klagenfurt, Klagenfurt, Austria
Shane McIntosh , Dept. of Electrical and Computer Eng., McGill University, Montreal, Canada
Martin Pinzger , Software Engineering Research Group, University of Klagenfurt, Klagenfurt, Austria
Build systems are widely used in today's software projects to automate integration and build processes. Similar to source code, build specifications need to be maintained to avoid outdated specifications, and build breakage as a consequence. Recent work indicates that neglected build maintenance is one of the most frequently occurring reasons why open source and proprietary builds break. In this paper, we propose BuildMedic, an approach to automatically repair Maven builds that break due to dependency-related issues. Based on a manual investigation of 37 broken Maven builds in 23 open source Java projects, we derive three repair strategies to automatically repair the build, namely Version Update, Delete Dependency, and Add Repository. We evaluate the three strategies on 84 additional broken builds from the 23 studied projects in order to demonstrate the applicability of our approach. The evaluation shows that BuildMedic can automatically repair 45 of these broken builds (54%). Furthermore, in 36% of the successfully repaired build breakages, BuildMedic outputs at least one repair candidate that is considered a correct repair. Moreover, 76% of them could be repaired with only a single dependency correction.
Maintenance engineering, Java, Tools, Computer bugs, Encoding, Software engineering, Software
C. Macho, S. McIntosh and M. Pinzger, "Automatically repairing dependency-related build breakage," 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), Campobasso, Italy, 2018, pp. 106-117.