qualitylab

the station

Breaking Bad? Semantic Versioning and Impact of Breaking Changes in Maven Central

tier II/2022/Empirical Software Engineering 27

https://arxiv.org/abs/2110.07889

Method

"We conduct an external and differentiated replication study of their work. We identify and address some limitations of the original protocol and expand the analysis to a new corpus spanning seven more years of the MCR."

Population

"the analysis of 119,879 library upgrades and 293,817 clients"

What it does not show

Static bytecode detection misses behavioural breaking changes with unchanged signatures. Java and Maven only; npm shows proportionally higher minor and patch violations. Does not attribute the improving trend to any specific practice.

Lina Ochoa, Thomas Degueule, Jean-Rémy Falleri, Jurgen Vinju

83.4% of upgrades comply with semantic versioning, and compliance has increased over time. Critically for blast radius: “most BCs affect code that is not used by any client, and… only 7.9% of all clients are affected by BCs” — breaking changes are common in API surfaces and their realised reach is far smaller than raw counts suggest.

Tier II: Large-scale observational replication using an improved static bytecode-diffing tool across a much larger and more recent corpus than the original. No control group.

Cited by