A Large-Scale Empirical Study on Semantic Versioning in Golang Ecosystem
Wenke Li, Feng Wu, Cai Fu, Fan Zhou

TL;DR
This study provides the first large-scale empirical analysis of semantic versioning compliance in the Go ecosystem, revealing high adherence rates and significant impact of breaking changes on client programs.
Contribution
It introduces GoSVI, a tool to detect breaking changes, and provides a comprehensive dataset and analysis of SemVer compliance and its effects in Go.
Findings
86.3% of library upgrades follow SemVer
28.6% of minor upgrades introduce breaking changes
33.3% of client programs may be affected by breaking changes
Abstract
Third-party libraries (TPLs) have become an essential component of software, accelerating development and reducing maintenance costs. However, breaking changes often occur during the upgrades of TPLs and prevent client programs from moving forward. Semantic versioning (SemVer) has been applied to standardize the versions of releases according to compatibility, but not all releases follow SemVer compliance. Lots of work focuses on SemVer compliance in ecosystems such as Java and JavaScript beyond Golang (Go for short). Due to the lack of tools to detect breaking changes and dataset for Go, developers of TPLs do not know if breaking changes occur and affect client programs, and developers of client programs may hesitate to upgrade dependencies in terms of breaking changes. To bridge this gap, we conduct the first large-scale empirical study in the Go ecosystem to study SemVer compliance…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Cloud Computing and Resource Management
