How Many Web APIs Evolve Following Semantic Versioning?

被引:0
作者
Serbout, Souhaila [1 ]
Pautasso, Cesare [1 ]
机构
[1] Software Inst USI, Lugano, Switzerland
来源
WEB ENGINEERING, ICWE 2024 | 2024年 / 14629卷
关键词
Web APIs; Semantic Versioning; API Evolution; Breaking Changes; OpenAPI;
D O I
10.1007/978-3-031-62362-2_25
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
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 075Web 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.
引用
收藏
页码:344 / 359
页数:16
相关论文
共 23 条
[1]   When and How to Make Breaking Changes: Policies and Practices in 18 Open Source Software Ecosystems [J].
Bogart, Chris ;
Kastner, Christian ;
Herbsleb, James ;
Thung, Ferdian .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2021, 30 (04)
[2]  
Daigneau R., 2012, SERVICE DESIGN PATTE, DOI [10.1145/2237796.2237821, DOI 10.1145/2237796.2237821]
[3]  
Dietrich Jens, 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), P349, DOI 10.1109/MSR.2019.00061
[4]  
Giretti Anthony, 2022, Beginning gRPC with ASP.NET Core 6, P223
[5]  
github, About us
[6]  
Henning M., 2007, ACM Queue, V5, P25, DOI 10.1145/1255421.1255422
[7]   Putting the Semantics into Semantic Versioning [J].
Lam, Patrick ;
Dietrich, Jens ;
Pearce, David J. .
PROCEEDINGS OF THE 2020 ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON NEW IDEAS, NEW PARADIGMS, AND REFLECTIONS ON PROGRAMMING AND SOFTWARE (ONWARD! '20), 2020, :157-179
[8]   A Systematic Review of API Evolution Literature [J].
Lamothe, Maxime ;
Gueheneuc, Yann-Gael ;
Shang, Weiyi .
ACM COMPUTING SURVEYS, 2021, 54 (08)
[9]   A Large-Scale Empirical Study on Semantic Versioning in Golang Ecosystem [J].
Li, Wenke ;
Wu, Feng ;
Fu, Cai ;
Zhou, Fan .
2023 38TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE, 2023, :1604-1614
[10]  
Medjaoui M., 2021, Continuous API Management, V2nd