Breaking changes
Key takeaways
- Why SemVer is not a technical tool, but a tool for signalling intent and setting expectations
- How following SemVer can accidentally break people's apps and how to avoid it
Semantic Versioning or SemVer has become a de-facto standard in the last few years, with several language ecosystems now relying on it to manage software upgrades. However, it is frequently misunderstood as a technical tool for making cold hard guarantees about code, rather than as a human tool for signalling intent and setting expectations. Never is this more apparent than when we consider what a “breaking change” means. It’s highly contextual: it depends on which language you’re using, what your public interface is, what guarantees you’ve explicitly or implicitly made to users, how much software sits downstream of you, and so on. In this talk I’ll explore several ways you can accidentally break other people’s JavaScript apps, how to avoid them, and what to do when you can’t.