{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,19]],"date-time":"2026-02-19T03:31:20Z","timestamp":1771471880930,"version":"3.50.1"},"reference-count":36,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T00:00:00Z","timestamp":1647475200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T00:00:00Z","timestamp":1647475200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/100012818","name":"Comunidad de Madrid","doi-asserted-by":"publisher","award":["P2018\/TCS-4499"],"award-info":[{"award-number":["P2018\/TCS-4499"]}],"id":[{"id":"10.13039\/100012818","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100010198","name":"Ministerio de Econom\u00eda, Industria y Competitividad, Gobierno de Espa\u00f1a","doi-asserted-by":"publisher","award":["RTI2018-101963-B- I00"],"award-info":[{"award-number":["RTI2018-101963-B- I00"]}],"id":[{"id":"10.13039\/501100010198","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100007511","name":"Universidad Rey Juan Carlos","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100007511","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2022,5]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:sec>\n                <jats:title>Context<\/jats:title>\n                <jats:p>Building past source code snapshots of a software product is necessary both for research (analyzing the past state of a program) and industry (increasing trustability by reproducibility of past versions, finding bugs by bisecting, backporting bug fixes, among others). A study by Tufano et al. showed in 2016 that many past snapshots cannot be built.<\/jats:p>\n              <\/jats:sec><jats:sec>\n                <jats:title>Objective<\/jats:title>\n                <jats:p>We replicate Tufano et al.\u2019s study in 2020, to verify its results and to study what has changed during this time in terms of compilability of a project. Also, we extend it by studying a different set of projects, using additional techniques for building past snapshots, with the aim of extending the validity of its results.<\/jats:p>\n              <\/jats:sec><jats:sec>\n                <jats:title>Method<\/jats:title>\n                <jats:p>(i) Replication of the original study, obtaining past snapshots from 79 repositories (with a total of 139,389 commits); and (ii) Reproduction of the original study on a different set of 80 large Java projects, extending the heuristics for building snapshots (300,873 commits).<\/jats:p>\n              <\/jats:sec><jats:sec>\n                <jats:title>Results<\/jats:title>\n                <jats:p>We observed degradation of compilability over time, due to vanishing of dependencies and other external artifacts. We validated that the most influential error causing failures in builds are missing external artifacts, and the less influential is compiling errors. We observed some facts that could lead to the effect of the build tool on past compilability.<\/jats:p>\n              <\/jats:sec><jats:sec>\n                <jats:title>Conclusions<\/jats:title>\n                <jats:p>We provide details on what aspects have a strong and a shallow influence on past compilability, giving ideas of how to improve it. We could extend previous research on the matter, but could not validate some of the previous results. We offer recommendations on how to make this kind of studies more replicable.<\/jats:p>\n              <\/jats:sec>","DOI":"10.1007\/s10664-022-10117-6","type":"journal-article","created":{"date-parts":[[2022,3,17]],"date-time":"2022-03-17T14:06:53Z","timestamp":1647526013000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":13,"title":["Revisiting the building of past snapshots \u2014 a replication and reproduction study"],"prefix":"10.1007","volume":"27","author":[{"given":"Michel","family":"Maes-Bermejo","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Micael","family":"Gallego","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Francisco","family":"Gort\u00e1zar","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1442-6761","authenticated-orcid":false,"given":"Gregorio","family":"Robles","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jesus M.","family":"Gonzalez-Barahona","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,3,17]]},"reference":[{"key":"10117_CR1","doi-asserted-by":"crossref","unstructured":"Asaduzzaman M, Bullock MC, Roy CK, Schneider KA (2012) Bug introducing changes: A case study with Android. In: Proceedings of the 9th IEEE working conference on mining software repositories, MSR \u201912. http:\/\/dl.acm.org\/citation.cfm?id=2664446.2664463. IEEE Press, Piscataway, pp 116\u2013119","DOI":"10.1109\/MSR.2012.6224267"},{"issue":"5","key":"10117_CR2","doi-asserted-by":"publisher","first-page":"1275","DOI":"10.1007\/s10664-014-9325-9","volume":"20","author":"G Bavota","year":"2015","unstructured":"Bavota G, Canfora G, Di Penta M, Oliveto R, Panichella S (2015) How the apache community upgrades dependencies: an evolutionary study. Empir Softw Eng 20(5):1275\u20131317","journal-title":"Empir Softw Eng"},{"issue":"1","key":"10117_CR3","doi-asserted-by":"publisher","first-page":"143","DOI":"10.1215\/00182702-23-1-143","volume":"23","author":"N Cartwright","year":"1991","unstructured":"Cartwright N (1991) Replicability, reproducibility, and robustness: comments on Harry Collins. Hist Polit Econ 23(1):143\u2013155","journal-title":"Hist Polit Econ"},{"key":"10117_CR4","doi-asserted-by":"crossref","unstructured":"Cito J, Schermann G, Wittern JE, Leitner P, Zumberi S, Gall HC (2017) An empirical analysis of the Docker container ecosystem on github. In: 2017 IEEE\/ACM 14Th international conference on mining software repositories (MSR). IEEE, pp 323\u2013333","DOI":"10.1109\/MSR.2017.67"},{"key":"10117_CR5","doi-asserted-by":"publisher","unstructured":"de Carn\u00e9 de Carnavalet X, Mannan M (2014) Challenges and implications of verifiable builds for security-critical open-source software. In: Proceedings of the 30th annual computer security applications conference, ACSAC \u201914. https:\/\/doi.org\/10.1145\/2664243.2664288. ACM, USA, pp 16\u201325","DOI":"10.1145\/2664243.2664288"},{"key":"10117_CR6","unstructured":"Di Cosmo R (2018) Software Heritage: why and how we collect, preserve and share all the software source code. In: 2018 IEEE\/ACM 40Th international conference on software engineering: Software engineering in society (ICSE-SEIS). IEEE, pp 2\u20132"},{"key":"10117_CR7","doi-asserted-by":"crossref","unstructured":"Di Cosmo R, Zacchiroli S (2017) Software Heritage: Why and how to preserve software source code","DOI":"10.1145\/3059009.3059066"},{"key":"10117_CR8","unstructured":"Glukhova M (2017) Tools for Ensuring Reproducible Builds for Open-Source Software. Master\u2019s thesis, Lappeenranta University of Technology. http:\/\/lutpub.lut.fi\/bitstream\/handle\/10024\/135304\/MariaGlukhova_ToolsForEnsuringReproducibleBuildsForOpenSourceSoftware.pdf?sequence=2"},{"key":"10117_CR9","doi-asserted-by":"crossref","unstructured":"Hassan F, Mostafa S, Lam ES, Wang X (2017) Automatic building of Java projects in software repositories: A study on feasibility and challenges. In: 2017 ACM\/IEEE International symposium on empirical software engineering and measurement (ESEM). IEEE, pp 38\u201347","DOI":"10.1109\/ESEM.2017.11"},{"key":"10117_CR10","doi-asserted-by":"crossref","unstructured":"Hassan F, Wang X (2018) Hirebuild: An automatic approach to history-driven repair of build scripts. In: 2018 IEEE\/ACM 40Th international conference on software engineering (ICSE), pp 1078\u20131089","DOI":"10.1145\/3180155.3180181"},{"key":"10117_CR11","doi-asserted-by":"crossref","unstructured":"Juristo N, G\u00f3mez O. S. (2010) Replication of software engineering experiments. In: Empirical software engineering and verification. Springer, pp 60\u201388","DOI":"10.1007\/978-3-642-25231-0_2"},{"key":"10117_CR12","doi-asserted-by":"publisher","unstructured":"Just R, Jalali D, Ernst MD (2014) Defects4j: a database of existing faults to enable controlled testing studies for java programs. In: Proceedings of the 2014 international symposium on software testing and analysis, ISSTA 2014. https:\/\/doi.org\/10.1145\/2610384.2628055. ACM, USA, pp 437\u2013440","DOI":"10.1145\/2610384.2628055"},{"key":"10117_CR13","doi-asserted-by":"publisher","unstructured":"Just R, Jalali D, Inozemtseva L, Ernst MD, Holmes R, Fraser G (2014) Are mutants a valid substitute for real faults in software testing?. In: Proceedings of the 22Nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. https:\/\/doi.org\/10.1145\/2635868.2635929. ACM, USA, pp 654\u2013665","DOI":"10.1145\/2635868.2635929"},{"issue":"5","key":"10117_CR14","doi-asserted-by":"publisher","first-page":"2035","DOI":"10.1007\/s10664-015-9393-5","volume":"21","author":"E Kalliamvakou","year":"2016","unstructured":"Kalliamvakou E, Gousios G, Blincoe K, Singer L, German DM, Damian D (2016) An in-depth study of the promises and perils of mining github. Empir Softw Eng 21(5):2035\u20132071","journal-title":"Empir Softw Eng"},{"key":"10117_CR15","doi-asserted-by":"crossref","unstructured":"Macho C, McIntosh S, Pinzger M (2018) Automatically repairing dependency-related build breakage. In: 2018 IEEE 25Th international conference on software analysis, evolution and reengineering (SANER). IEEE, pp 106\u2013117","DOI":"10.1109\/SANER.2018.8330201"},{"key":"10117_CR16","unstructured":"Manacero A (2011) Using binary code to build execution graph models for performance evaluation of parallel programs graph models"},{"issue":"2","key":"10117_CR17","doi-asserted-by":"publisher","first-page":"32","DOI":"10.1109\/MS.2018.111095025","volume":"35","author":"G Maudoux","year":"2018","unstructured":"Maudoux G, Mens K (2018) Correct, efficient, and tailored: The future of build systems. IEEE Softw 35(2):32\u201337","journal-title":"IEEE Softw"},{"key":"10117_CR18","doi-asserted-by":"crossref","unstructured":"Meneely A, Srinivasan H, Musa A, Tejeda AR, Mokary M, Spates B (2013) When a patch goes bad: Exploring the properties of vulnerability-contributing commits. In: 2013 ACM\/IEEE International symposium on empirical software engineering and measurement. IEEE, pp 65\u201374","DOI":"10.1109\/ESEM.2013.19"},{"key":"10117_CR19","doi-asserted-by":"publisher","unstructured":"Murgia A, Concas G, Marchesi M, Tonelli R (2010) A machine learning approach for text categorization of fixing-issue commits on CVS. In: Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM \u201910. https:\/\/doi.org\/10.1145\/1852786.1852794. ACM, New York, pp 6:1\u20136:10","DOI":"10.1145\/1852786.1852794"},{"key":"10117_CR20","unstructured":"Nikitin K, Kokoris-Kogias E, Jovanovic P, Gailly N, Gasser L, Khoffi I, Cappos J (2017) Ford, B.: {CHAINIAC}: Proactive software-update transparency via collectively signed skipchains and verified builds. In: 26Th {USENIX} security symposium ({USENIX} security 17), pp 1271\u20131287"},{"key":"10117_CR21","unstructured":"Perry M, Schoen S, Steiner H (2014) Reproducible builds. moving beyond single points of failure for software distribution. In: Chaos communication congress"},{"key":"10117_CR22","doi-asserted-by":"publisher","unstructured":"Raemaekers S, van Deursen A, Visser J (2012) Measuring software library stability through historical version analysis. In: 2012 28Th IEEE international conference on software maintenance (ICSM), pp 378\u2013387. https:\/\/doi.org\/10.1109\/ICSM.2012.6405296","DOI":"10.1109\/ICSM.2012.6405296"},{"key":"10117_CR23","doi-asserted-by":"publisher","unstructured":"Rausch T, Hummer W, Leitner P, Schulte S (2017) An empirical analysis of build failures in the continuous integration workflows of Java-based open-source software. In: Proceedings of the 14th International Conference on Mining Software Repositories, MSR \u201917. https:\/\/doi.org\/10.1109\/MSR.2017.54. IEEE Press, Piscataway, pp 345\u2013355","DOI":"10.1109\/MSR.2017.54"},{"key":"10117_CR24","doi-asserted-by":"publisher","unstructured":"Ren Z, Jiang H, Xuan J, Yang Z (2018) Automated localization for unreproducible builds. In: Proceedings of the 40th International Conference on Software Engineering, ICSE \u201918. https:\/\/doi.org\/10.1145\/3180155.3180224. ACM, USA, pp 71\u201381","DOI":"10.1145\/3180155.3180224"},{"key":"10117_CR25","unstructured":"Reproducible builds (2017) https:\/\/reproducible-builds.org\/ (Accessed May 20, 2021)"},{"key":"10117_CR26","unstructured":"Reproducible builds in Debian (2018) https:\/\/wiki.debian.org\/ReproducibleBuilds (Accessed May 20, 2021)"},{"key":"10117_CR27","doi-asserted-by":"publisher","unstructured":"Seo H, Sadowski C, Elbaum S, Aftandilian E, Bowdidge R (2014) Programmers\u2019 build errors: A case study (at Google). In: Proceedings of the 36th International Conference on Software Engineering, ICSE 2014. https:\/\/doi.org\/10.1145\/2568225.2568255. ACM, USA, pp 724\u2013734","DOI":"10.1145\/2568225.2568255"},{"key":"10117_CR28","unstructured":"Skrimstad Y (2018) Improving Trust in Software through Diverse Double-Compiling and Reproducible Builds. Master\u2019s thesis, University of Oslo. http:\/\/urn.nb.no\/URN:NBN:no-68006"},{"key":"10117_CR29","doi-asserted-by":"publisher","unstructured":"\u015aliwerski J., Zimmermann T, Zeller A (2005) When do changes induce fixes?. In: Proceedings of the 2005 International Workshop on Mining Software Repositories, MSR \u201905. https:\/\/doi.org\/10.1145\/1082983.1083147. ACM, USA, pp 1\u20135","DOI":"10.1145\/1082983.1083147"},{"issue":"3","key":"10117_CR30","doi-asserted-by":"publisher","first-page":"100","DOI":"10.1109\/MS.2012.61","volume":"29","author":"D Spinellis","year":"2012","unstructured":"Spinellis D (2012) Git. IEEE software 29(3):100\u2013101","journal-title":"IEEE software"},{"key":"10117_CR31","doi-asserted-by":"publisher","unstructured":"Sul\u00edr M, Porub\u00e4n J (2016) A quantitative study of java software buildability. In: Proceedings of the 7th international workshop on evaluation and usability of programming languages and tools, PLATEAU 2016. https:\/\/doi.org\/10.1145\/3001878.3001882. ACM, USA, pp 17\u201325","DOI":"10.1145\/3001878.3001882"},{"key":"10117_CR32","unstructured":"Tian Y (2017) Mining software repositories for automatic software bug management from bug triaging to patch backporting. Ph.D. thesis, Singapore Management University"},{"issue":"4","key":"10117_CR33","doi-asserted-by":"publisher","first-page":"e1838","DOI":"10.1002\/smr.1838","volume":"29","author":"M Tufano","year":"2017","unstructured":"Tufano M, Palomba F, Bavota G, Di Penta M, Oliveto R, De Lucia A, Poshyvanyk D (2017) There and back again: Can you compile that snapshot? J Softw Evolution Process 29(4):e1838","journal-title":"J Softw Evolution Process"},{"issue":"3","key":"10117_CR34","doi-asserted-by":"publisher","first-page":"2218","DOI":"10.1007\/s10664-019-09765-y","volume":"25","author":"C Vassallo","year":"2020","unstructured":"Vassallo C, Proksch S, Zemp T, Gall HC (2020) Every build you break: Developer-oriented assistance for build failure resolution. Empir Softw Eng 25(3):2218\u20132257","journal-title":"Empir Softw Eng"},{"key":"10117_CR35","doi-asserted-by":"publisher","unstructured":"Zimmermann T, Kim S, Zeller A, Whitehead EJ Jr (2006) Mining version archives for co-changed lines. In: Proceedings of the 2006 International Workshop on Mining Software Repositories, MSR \u201906. https:\/\/doi.org\/10.1145\/1137983.1138001. ACM, USA, pp 72\u201375","DOI":"10.1145\/1137983.1138001"},{"key":"10117_CR36","doi-asserted-by":"publisher","first-page":"69","DOI":"10.1007\/978-3-540-76440-3_4","volume-title":"Predicting Bugs from History","author":"T Zimmermann","year":"2008","unstructured":"Zimmermann T, Nagappan N, Zeller A (2008) Predicting Bugs from History. Springer, Berlin, pp 69\u201388. https:\/\/doi.org\/10.1007\/978-3-540-76440-3_4"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-022-10117-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-022-10117-6\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-022-10117-6.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,4,23]],"date-time":"2022-04-23T10:20:01Z","timestamp":1650709201000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-022-10117-6"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,17]]},"references-count":36,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2022,5]]}},"alternative-id":["10117"],"URL":"https:\/\/doi.org\/10.1007\/s10664-022-10117-6","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,3,17]]},"assertion":[{"value":"6 January 2022","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 March 2022","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"This research has not involved human participants and\/or animals.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"This work has been supported by the Regional Government of Madrid (CM) under project EDGEDATA-CM (P2018\/TCS-4499) cofunded by FSE & FEDER and by the Spanish Government under project BugBirth (RTI2018-101963-B-I00) cofunded by the Ministry of Economy and Competitiveness, FEDER & AEI.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"<!--Emphasis Type='Bold' removed-->Competing interests"}}],"article-number":"65"}}