Semantic versioning versus breaking changes

A study of the Maven Repository

Report (2014)
Contributor(s)

Copyright
© 2014 The Author(s) . Software Engineering Research Group, Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology
More Info
expand_more
Publication Year
2014
Copyright
© 2014 The Author(s) . Software Engineering Research Group, Department of Software Technology, Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology
Related content
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

For API users, backward compatibility of new releases is important, as it permits safe and fast upgrading when the new release becomes available. To signal safe upgrading, version naming schemes such as semantic versioning provide strict rules on major (breaking changes permitted) versus minor and patch (no breaking changes permitted) releases. In this paper, we analyze seven years of library release history in Maven Central, and contrast version identifiers with actual incompatibilities. We find that around one third of all releases introduce at least one breaking change, and that this figure is the same for minor and major releases. Furthermore, we find that deprecation tags that could signal breaking changes are hardly used. We explore the wider implications of our findings, concerning education, tool support, versioning principles, and repository mining research.

Files

TUD-SERG-2014-016.pdf
(pdf | 0.245 Mb)
License info not available