Prof. Dr. Cesare Pautasso

How Many Web APIs Evolve Following Semantic Versioning?

Souhaila Serbout, Cesare Pautasso

24th International Conference on Web Engineering (ICWE), Tampere, Finland, pp. 344 - 359

June 2024

Abstract

More and more Web APIs use semantic versioning to represent the impact of changes on clients depending on previous versions. Our goal is to provide insights about the extent to which evolving Web APIs align with semantic versioning rules. In this paper we present the results of an empirical study on the descriptions of 3 075 Web APIs, which released at least one new version throughout their history. The APIs descriptions were mined by retrieving 132 909 commits from 2 028 different open source GitHub repositories. We systematically collected and examined 506 273 changes of 195 different types released within 16 053 new API versions. We classified whether each change is likely to break clients or not, and checked whether the corresponding version identifier has been updated following semantic versioning rules. The results indicate that in the best case, only 517 APIs consistently release major upgrades when introducing breaking changes, while 1 970 APIs will not always correctly inform their clients about breaking changes released as part of minor or patch-level upgrades. We also detected 927 APIs which use a backwards-compatible evolution strategy, as they never introduce any breaking change throughout their history.

Download

URL: https://link.springer.com/chapter/10.1007/978-3-031-62362-2_25

DOI: 10.1007/978-3-031-62362-2_25

PDF: ▼apiace-icwe2024.pdf (912KB)

Citation

Bibtex

@inproceedings{apiace:2024:icwe,
	author = {Souhaila Serbout and Cesare Pautasso},
	title = {How Many Web APIs Evolve Following Semantic Versioning?},
	booktitle = {24th International Conference on Web Engineering (ICWE)},
	year = {2024},
	month = {June},
	publisher = {Springer},
	pages = {344 - 359},
	address = {Tampere, Finland},
	abstract = {More and more Web APIs use semantic versioning to represent the impact of changes on clients depending on previous versions. Our goal is to provide insights about the extent to which evolving Web APIs align with semantic versioning rules. In this paper we present the results of an empirical study on the descriptions of 3 075 Web APIs, which released at least one new version throughout their history. The APIs descriptions were mined by retrieving 132 909 commits from 2 028 different open source GitHub repositories. We systematically collected and examined 506 273 changes of 195 different types released within 16 053 new API versions. We classified whether each change is likely to break clients or not, and checked whether the corresponding version identifier has been updated following semantic versioning rules. The results indicate that in the best case, only 517 APIs consistently release major upgrades when introducing breaking changes, while 1 970 APIs will not always correctly inform their clients about breaking changes released as part of minor or patch-level upgrades. We also detected 927 APIs which use a backwards-compatible evolution strategy, as they never introduce any breaking change throughout their history.},
	keywords = {API Analytics, API Evolution, Semantic Versioning, Web API},
	doi = {10.1007/978-3-031-62362-2_25},
	url = {https://link.springer.com/chapter/10.1007/978-3-031-62362-2_25}
}