Standard

Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution. / Opdebeeck, Ruben; Zerouali, Ahmed; Velazquez Rodriguez, Camilo Ernesto; De Roover, Coen.

Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020). IEEE, 2020.

Research output: Chapter in Book/Report/Conference proceedingConference paper

Harvard

Opdebeeck, R, Zerouali, A, Velazquez Rodriguez, CE & De Roover, C 2020, Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution. in Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020). IEEE, 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM2020), Adelaide, Australia, 27/09/20.

APA

Opdebeeck, R., Zerouali, A., Velazquez Rodriguez, C. E., & De Roover, C. (2020). Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution. In Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020) IEEE.

Vancouver

Opdebeeck R, Zerouali A, Velazquez Rodriguez CE, De Roover C. Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution. In Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020). IEEE. 2020

Author

Opdebeeck, Ruben ; Zerouali, Ahmed ; Velazquez Rodriguez, Camilo Ernesto ; De Roover, Coen. / Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution. Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020). IEEE, 2020.

BibTeX

@inproceedings{8fe08f4b4f544734a52ce4a19dacac93,
title = "Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution",
abstract = "Ansible, a popular Infrastructure-as-Code platform, provides reusable collections of tasks called roles. Roles are often contributed by third parties, and like general-purpose libraries, they evolve. As such, new releases of roles need to be tagged with version numbers, for which Ansible recommends adhering to the semantic versioning format. However, roles significantly differ from general-purpose libraries, and it is not yet known what constitutes a breaking change or the addition of a feature to a role. Consequently, this can cause confusion for clients of a role and new role contributors. To alleviate this issue, we perform an empirical study on semantic versioning in Ansible roles to uncover the types of changes that trigger certain types of version bumps. We collect a dataset of over 70 000 version increments spanning upwards of 7 800 Ansible roles. Moreover, we design a novel structural model for these roles, and implement a domain-specific structural change extraction algorithm to calculate structural difference metrics. Afterwards, we quantitatively investigate the state of semantic versioning in Ansible roles and identify the most commonly changed components. Then, using the structural difference metrics, we train a Random Forest classifier to predict applicable version bumps for Ansible role releases. Lastly, we confirm our empirical findings with a developer survey. Our observations show that although most Ansible role developers follow the semantic versioning format, it appears that they do not always consistently follow the same rules when selecting the version bump to apply.",
keywords = "Ansible, Infrastructure as Code, Semantic Versioning, empirical study, mining software repositories",
author = "Ruben Opdebeeck and Ahmed Zerouali and {Velazquez Rodriguez}, {Camilo Ernesto} and {De Roover}, Coen",
year = "2020",
month = "9",
day = "27",
language = "English",
isbn = "978-1-7281-9248-2",
booktitle = "Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020)",
publisher = "IEEE",

}

RIS

TY - GEN

T1 - Does Infrastructure as Code Adhere to Semantic Versioning? An Analysis of Ansible Role Evolution

AU - Opdebeeck, Ruben

AU - Zerouali, Ahmed

AU - Velazquez Rodriguez, Camilo Ernesto

AU - De Roover, Coen

PY - 2020/9/27

Y1 - 2020/9/27

N2 - Ansible, a popular Infrastructure-as-Code platform, provides reusable collections of tasks called roles. Roles are often contributed by third parties, and like general-purpose libraries, they evolve. As such, new releases of roles need to be tagged with version numbers, for which Ansible recommends adhering to the semantic versioning format. However, roles significantly differ from general-purpose libraries, and it is not yet known what constitutes a breaking change or the addition of a feature to a role. Consequently, this can cause confusion for clients of a role and new role contributors. To alleviate this issue, we perform an empirical study on semantic versioning in Ansible roles to uncover the types of changes that trigger certain types of version bumps. We collect a dataset of over 70 000 version increments spanning upwards of 7 800 Ansible roles. Moreover, we design a novel structural model for these roles, and implement a domain-specific structural change extraction algorithm to calculate structural difference metrics. Afterwards, we quantitatively investigate the state of semantic versioning in Ansible roles and identify the most commonly changed components. Then, using the structural difference metrics, we train a Random Forest classifier to predict applicable version bumps for Ansible role releases. Lastly, we confirm our empirical findings with a developer survey. Our observations show that although most Ansible role developers follow the semantic versioning format, it appears that they do not always consistently follow the same rules when selecting the version bump to apply.

AB - Ansible, a popular Infrastructure-as-Code platform, provides reusable collections of tasks called roles. Roles are often contributed by third parties, and like general-purpose libraries, they evolve. As such, new releases of roles need to be tagged with version numbers, for which Ansible recommends adhering to the semantic versioning format. However, roles significantly differ from general-purpose libraries, and it is not yet known what constitutes a breaking change or the addition of a feature to a role. Consequently, this can cause confusion for clients of a role and new role contributors. To alleviate this issue, we perform an empirical study on semantic versioning in Ansible roles to uncover the types of changes that trigger certain types of version bumps. We collect a dataset of over 70 000 version increments spanning upwards of 7 800 Ansible roles. Moreover, we design a novel structural model for these roles, and implement a domain-specific structural change extraction algorithm to calculate structural difference metrics. Afterwards, we quantitatively investigate the state of semantic versioning in Ansible roles and identify the most commonly changed components. Then, using the structural difference metrics, we train a Random Forest classifier to predict applicable version bumps for Ansible role releases. Lastly, we confirm our empirical findings with a developer survey. Our observations show that although most Ansible role developers follow the semantic versioning format, it appears that they do not always consistently follow the same rules when selecting the version bump to apply.

KW - Ansible

KW - Infrastructure as Code

KW - Semantic Versioning

KW - empirical study

KW - mining software repositories

M3 - Conference paper

SN - 978-1-7281-9248-2

BT - Proceedings of the 20th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2020)

PB - IEEE

ER -

ID: 53890231