{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,18]],"date-time":"2025-12-18T14:16:44Z","timestamp":1766067404934,"version":"3.44.0"},"reference-count":53,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-017"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-037"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-012"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-029"},{"start":{"date-parts":[[2021,12,1]],"date-time":"2021-12-01T00:00:00Z","timestamp":1638316800000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-004"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2021,12]]},"DOI":"10.1016\/j.jss.2021.111059","type":"journal-article","created":{"date-parts":[[2021,8,19]],"date-time":"2021-08-19T23:58:20Z","timestamp":1629417500000},"page":"111059","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":15,"special_numbering":"C","title":["On the practice of semantic versioning for Ansible galaxy roles: An empirical study and a change classification model"],"prefix":"10.1016","volume":"182","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0938-4843","authenticated-orcid":false,"given":"Ruben","family":"Opdebeeck","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2676-3730","authenticated-orcid":false,"given":"Ahmed","family":"Zerouali","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8360-1519","authenticated-orcid":false,"given":"Camilo","family":"Vel\u00e1zquez-Rodr\u00edguez","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1710-1268","authenticated-orcid":false,"given":"Coen","family":"De Roover","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"year":"2019","series-title":"elastic.elasticsearch changelog","author":"Anon","key":"10.1016\/j.jss.2021.111059_b1"},{"year":"2020","series-title":"Ansible collections overview","author":"Anon","key":"10.1016\/j.jss.2021.111059_b2"},{"year":"2016","series-title":"Comment on \u201cAdd \u2018update\u2019 option to ansible-galaxy\u201d","author":"Appnel","key":"10.1016\/j.jss.2021.111059_b3"},{"year":"2021","series-title":"Ansible Community Galaxy next steps (help needed)","author":"Barker","key":"10.1016\/j.jss.2021.111059_b4"},{"key":"10.1016\/j.jss.2021.111059_b5","series-title":"Proceedings of the 25th IEEE International Conference on Software Analysis, Evolution and Reengineering","first-page":"164","article-title":"How good is your Puppet? An empirically defined and validated quality model for Puppet","author":"Van\u00a0der Bent","year":"2018"},{"year":"2017","series-title":"Survey of ecosystem values","author":"Bogart","key":"10.1016\/j.jss.2021.111059_b6"},{"key":"10.1016\/j.jss.2021.111059_b7","series-title":"Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering","first-page":"109","article-title":"How to break an API: Cost negotiation and community values in three software ecosystems","author":"Bogart","year":"2016"},{"year":"2016","series-title":"role versioning","author":"Coca","key":"10.1016\/j.jss.2021.111059_b8"},{"key":"10.1016\/j.jss.2021.111059_b9","doi-asserted-by":"crossref","DOI":"10.1016\/j.jss.2020.110726","article-title":"Toward a catalog of software quality metrics for infrastructure code","volume":"170","author":"Dalla Palma","year":"2020","journal-title":"J. Syst. Softw."},{"key":"10.1016\/j.jss.2021.111059_b10","first-page":"1","article-title":"Within-project defect prediction of infrastructure-as-code using product and process metrics","author":"Dalla Palma","year":"2021","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"6","key":"10.1016\/j.jss.2021.111059_b11","doi-asserted-by":"crossref","first-page":"1226","DOI":"10.1109\/TSE.2019.2918315","article-title":"What do package dependencies tell us about semantic versioning?","volume":"47","author":"Decan","year":"2019","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/j.jss.2021.111059_b12","series-title":"2019 IEEE\/ACM 16th International Conference on Mining Software Repositories","first-page":"349","article-title":"Dependency versioning in the wild","author":"Dietrich","year":"2019"},{"year":"2021","series-title":"Comment on \u201cFeature request: make \u201cversion\u201d a valid role metadata attribute\u201d","author":"Doran","key":"10.1016\/j.jss.2021.111059_b13"},{"key":"10.1016\/j.jss.2021.111059_b14","series-title":"Proceedings of the 29th ACM\/IEEE International Conference on Automated Software Engineering","first-page":"313","article-title":"Fine-grained and accurate source code differencing","author":"Falleri","year":"2014"},{"year":"2021","series-title":"OndrejHome.ha-cluster-pacemaker version history","author":"Fam\u011bra","key":"10.1016\/j.jss.2021.111059_b15"},{"issue":"11","key":"10.1016\/j.jss.2021.111059_b16","doi-asserted-by":"crossref","first-page":"725","DOI":"10.1109\/TSE.2007.70731","article-title":"Change distilling: Tree differencing for fine-grained source code change extraction","volume":"33","author":"Fluri","year":"2007","journal-title":"IEEE Trans. Softw. Eng."},{"year":"2020","series-title":"Inclusion of cyberark.conjur in Ansible 2.10","author":"Fontein","key":"10.1016\/j.jss.2021.111059_b17"},{"year":"2021","series-title":"Including dellemc.openmanage collections into Ansible 3.0.0","author":"Fontein","key":"10.1016\/j.jss.2021.111059_b18"},{"year":"2014","series-title":"Add \u2018update\u2019 option to ansible-galaxy","author":"Geerling","key":"10.1016\/j.jss.2021.111059_b19"},{"year":"2020","series-title":"Comment on \u201cAnsible is stressing me out more than doing anything manually (and I eventually do something manually)\u201d","author":"Geerling","key":"10.1016\/j.jss.2021.111059_b20"},{"key":"10.1016\/j.jss.2021.111059_b21","series-title":"Proceedings of the 35th IEEE International Conference on Software Maintenance and Evolution (ICSME19), Industrial Track","first-page":"580","article-title":"Adoption, support, and challenges of infrastructure-as-code: Insights from industry","author":"Guerriero","year":"2019"},{"year":"2016","series-title":"Documenation or fix when using ansible-role-postfix v1.1.0","author":"Guldmyr","key":"10.1016\/j.jss.2021.111059_b22"},{"key":"10.1016\/j.jss.2021.111059_b23","doi-asserted-by":"crossref","first-page":"389","DOI":"10.1023\/A:1012487302797","article-title":"Gene selection for cancer classification using support vector machines","volume":"46","author":"Guyon","year":"2002","journal-title":"Mach. Learn."},{"key":"10.1016\/j.jss.2021.111059_b24","series-title":"Encyclopaedia of Mathematics","article-title":"Correlation in statistics","author":"Hazewinkel","year":"2001"},{"key":"10.1016\/j.jss.2021.111059_b25","series-title":"Proceedings of the 3rd International Conference on Document Analysis and Recognition","first-page":"278","article-title":"Random decision forests","author":"Ho","year":"1995"},{"issue":"8","key":"10.1016\/j.jss.2021.111059_b26","doi-asserted-by":"crossref","first-page":"832","DOI":"10.1109\/34.709601","article-title":"The random subspace method for constructing decision forests","volume":"20","author":"Ho","year":"1998","journal-title":"IEEE Trans. Pattern Anal. Mach. Intell."},{"key":"10.1016\/j.jss.2021.111059_b27","series-title":"Proceedings of the 14th International Middleware Conference (Middleware13)","first-page":"368","article-title":"Testing idempotence for infrastructure as code","author":"Hummer","year":"2013"},{"key":"10.1016\/j.jss.2021.111059_b28","series-title":"Proceedings of the 11th International Conference on Tests and Proofs","first-page":"98","article-title":"Test suite reduction in idempotence testing of infrastructure as code","author":"Ikeshita","year":"2017"},{"key":"10.1016\/j.jss.2021.111059_b29","series-title":"Conference on Artificial Intelligence in Medicine in Europe","first-page":"63","article-title":"Improving identification of difficult small classes by balancing class distribution","author":"Laurikkala","year":"2001"},{"key":"10.1016\/j.jss.2021.111059_b30","series-title":"Advances in Neural Information Processing Systems 30","first-page":"4765","article-title":"A unified approach to interpreting model predictions","author":"Lundberg","year":"2017"},{"key":"10.1016\/j.jss.2021.111059_b31","unstructured":"Mani, I., Zhang, I., 2003. kNN approach to unbalanced data distributions: A case study involving information extraction. In: Proceedings of the ICML\u20192003 Workshop on Learning from Imbalanced Datasets."},{"year":"2020","series-title":"PyratLabs.k3s changelog","author":"Manning","key":"10.1016\/j.jss.2021.111059_b32"},{"key":"10.1016\/j.jss.2021.111059_b33","series-title":"Infrastructure as Code: Managing Servers in the Cloud","first-page":"133","author":"Morris","year":"2016"},{"key":"10.1016\/j.jss.2021.111059_b34","doi-asserted-by":"crossref","unstructured":"Opdebeeck, R., Zerouali, A., De\u00a0Roover, C., 2021. Andromeda: A dataset of Ansible galaxy roles and their evolution. In: Proceedings of the 2021 International Conference on Mining Software Repositories. MSR21. pp. 580\u2013584.","DOI":"10.1109\/MSR52588.2021.00078"},{"key":"10.1016\/j.jss.2021.111059_b35","series-title":"2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation","first-page":"238","article-title":"Does infrastructure as code adhere to semantic versioning? An analysis of Ansible role evolution","author":"Opdebeeck","year":"2020"},{"year":"2020","author":"Preston","key":"10.1016\/j.jss.2021.111059_b36"},{"key":"10.1016\/j.jss.2021.111059_b37","doi-asserted-by":"crossref","first-page":"140","DOI":"10.1016\/j.jss.2016.04.008","article-title":"Semantic versioning and impact of breaking changes in the Maven repository","volume":"129","author":"Raemaekers","year":"2017","journal-title":"J. Syst. Softw."},{"key":"10.1016\/j.jss.2021.111059_b38","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1016\/j.infsof.2018.12.004","article-title":"A systematic mapping study of infrastructure as code research","volume":"108","author":"Rahman","year":"2019","journal-title":"Inf. Softw. Technol."},{"key":"10.1016\/j.jss.2021.111059_b39","series-title":"Proceedings of the 41st International Conference on Software Engineering","first-page":"164","article-title":"The seven sins: Security smells in infrastructure as code scripts","author":"Rahman","year":"2019"},{"key":"10.1016\/j.jss.2021.111059_b40","doi-asserted-by":"crossref","first-page":"148","DOI":"10.1016\/j.infsof.2019.04.013","article-title":"Source code properties of defective infrastructure as code scripts","volume":"112","author":"Rahman","year":"2019","journal-title":"Inf. Softw. Technol."},{"key":"10.1016\/j.jss.2021.111059_b41","unstructured":"Romano, J., Kromrey, J.D., Coraggio, J., Skowronek, J., Devine, L., 2006. Exploring methods for evaluating group differences on the NSSE and other surveys: Are the t-test and Cohen\u2019s d indices the most appropriate choices? In: Annual Meeting of the Southern Association for Institutional Research."},{"year":"2021","series-title":"Are standalone Ansible roles a dead-end?","author":"Sbarnea","key":"10.1016\/j.jss.2021.111059_b42"},{"key":"10.1016\/j.jss.2021.111059_b43","first-page":"145","article-title":"On the stratification of multi-label data","author":"Sechidis","year":"2011","journal-title":"Mach. Learn. Knowl. Discov. Databases"},{"key":"10.1016\/j.jss.2021.111059_b44","series-title":"Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation","first-page":"416","article-title":"Rehearsal: A configuration verification tool for Puppet","author":"Shambaugh","year":"2016"},{"key":"10.1016\/j.jss.2021.111059_b45","series-title":"Proceedings of the 13th International Conference on Mining Software Repositories","first-page":"189","article-title":"Does your configuration code smell?","author":"Sharma","year":"2016"},{"key":"10.1016\/j.jss.2021.111059_b46","series-title":"Proceedings of the 24th International Conference on Software Analysis, Evolution and Reengineering","first-page":"171","article-title":"Extracting executable transformations from distilled code changes","author":"Stevens","year":"2017"},{"issue":"11","key":"10.1016\/j.jss.2021.111059_b47","doi-asserted-by":"crossref","first-page":"769","DOI":"10.1109\/TSMC.1976.4309452","article-title":"Two modifications of CNN","volume":"SMC-6","author":"Tomek","year":"1976","journal-title":"IEEE Trans. Syst. Man Cybern."},{"key":"10.1016\/j.jss.2021.111059_b48","unstructured":"van\u00a0der Waa, J., Robeer, M., van Diggelen, J., Brinkhuis, M., Neerincx, M., 2018. Contrastive explanations with local foil trees. In: 2018 Workshop on Human Interpretability in Machine Learning. WHI18."},{"year":"2017","series-title":"githubixx.kubectl readme: Versions","author":"Wimmer","key":"10.1016\/j.jss.2021.111059_b49"},{"year":"2000","series-title":"Experimentation in Software Engineering - An Introduction","author":"Wohlin","key":"10.1016\/j.jss.2021.111059_b50"},{"issue":"4","key":"10.1016\/j.jss.2021.111059_b51","doi-asserted-by":"crossref","first-page":"2171","DOI":"10.1007\/s10664-019-09688-8","article-title":"Characterizing and identifying reverted commits","volume":"24","author":"Yan","year":"2019","journal-title":"Empir. Softw. Eng."},{"issue":"8","key":"10.1016\/j.jss.2021.111059_b52","article-title":"A formal framework for measuring technical lag in component repositories\u2014and its application to npm","volume":"31","author":"Zerouali","year":"2019","journal-title":"J. Softw.: Evol. Process"},{"year":"2018","series-title":"Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists","author":"Zheng","key":"10.1016\/j.jss.2021.111059_b53"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121221001564?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121221001564?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2025,9,27]],"date-time":"2025-09-27T23:25:48Z","timestamp":1759015548000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0164121221001564"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,12]]},"references-count":53,"alternative-id":["S0164121221001564"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2021.111059","relation":{},"ISSN":["0164-1212"],"issn-type":[{"type":"print","value":"0164-1212"}],"subject":[],"published":{"date-parts":[[2021,12]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"On the practice of semantic versioning for Ansible galaxy roles: An empirical study and a change classification model","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2021.111059","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2021 Elsevier Inc. All rights reserved.","name":"copyright","label":"Copyright"}],"article-number":"111059"}}