Standard

Semantic versioning and impact of breaking changes in the Maven repository. / Raemaekers, Steven; van Deursen, Arie; Visser, Joost.

In: Journal of Systems and Software, Vol. 129, No. July, 2017, p. 140-158.

Research output: Scientific - peer-reviewArticle

Harvard

Raemaekers, S, van Deursen, A & Visser, J 2017, 'Semantic versioning and impact of breaking changes in the Maven repository' Journal of Systems and Software, vol 129, no. July, pp. 140-158. DOI: 10.1016/j.jss.2016.04.008

APA

Vancouver

Raemaekers S, van Deursen A, Visser J. Semantic versioning and impact of breaking changes in the Maven repository. Journal of Systems and Software. 2017;129(July):140-158. Available from, DOI: 10.1016/j.jss.2016.04.008

Author

Raemaekers, Steven; van Deursen, Arie; Visser, Joost / Semantic versioning and impact of breaking changes in the Maven repository.

In: Journal of Systems and Software, Vol. 129, No. July, 2017, p. 140-158.

Research output: Scientific - peer-reviewArticle

BibTeX

@article{7c30551ca00a49c6809a48cc28a1b386,
title = "Semantic versioning and impact of breaking changes in the Maven repository",
keywords = "Semantic versioning, Breaking changes, Software libraries",
author = "Steven Raemaekers and {van Deursen}, Arie and Joost Visser",
year = "2017",
doi = "10.1016/j.jss.2016.04.008",
volume = "129",
pages = "140--158",
journal = "Journal of Systems and Software",
issn = "0164-1212",
publisher = "Elsevier Bedrijfsinformatie",
number = "July",

}

RIS

TY - JOUR

T1 - Semantic versioning and impact of breaking changes in the Maven repository

AU - Raemaekers,Steven

AU - van Deursen,Arie

AU - Visser,Joost

PY - 2017

Y1 - 2017

N2 - Systems that depend on third-party libraries may have to be updated when updates to these libraries become available in order to benefit from new functionality, security patches, bug fixes, or API improvements. However, often such changes come with changes to the existing interfaces of these libraries, possibly causing rework on the client system. In this paper, we investigate versioning practices in a set of more than 100,000 jar files from Maven Central, spanning over 7 years of history of more than 22,000 different libraries. We investigate to what degree versioning conventions are followed in this repository. Semantic versioning provides strict rules regarding major (breaking changes allowed), minor (no breaking changes allowed), and patch releases (only backward-compatible bug fixes allowed). We find that around one third of all releases introduce at least one breaking change. We perform an empirical study on potential rework caused by breaking changes in library releases and find that breaking changes have a significant impact on client libraries using the changed functionality. We find out that minor releases generally have larger release intervals than major releases. We also investigate the use of deprecation tags and find out that these tags are applied improperly in our dataset.

AB - Systems that depend on third-party libraries may have to be updated when updates to these libraries become available in order to benefit from new functionality, security patches, bug fixes, or API improvements. However, often such changes come with changes to the existing interfaces of these libraries, possibly causing rework on the client system. In this paper, we investigate versioning practices in a set of more than 100,000 jar files from Maven Central, spanning over 7 years of history of more than 22,000 different libraries. We investigate to what degree versioning conventions are followed in this repository. Semantic versioning provides strict rules regarding major (breaking changes allowed), minor (no breaking changes allowed), and patch releases (only backward-compatible bug fixes allowed). We find that around one third of all releases introduce at least one breaking change. We perform an empirical study on potential rework caused by breaking changes in library releases and find that breaking changes have a significant impact on client libraries using the changed functionality. We find out that minor releases generally have larger release intervals than major releases. We also investigate the use of deprecation tags and find out that these tags are applied improperly in our dataset.

KW - Semantic versioning

KW - Breaking changes

KW - Software libraries

U2 - 10.1016/j.jss.2016.04.008

DO - 10.1016/j.jss.2016.04.008

M3 - Article

VL - 129

SP - 140

EP - 158

JO - Journal of Systems and Software

T2 - Journal of Systems and Software

JF - Journal of Systems and Software

SN - 0164-1212

IS - July

ER -

ID: 9302513