The concept of semantic versioning, or SemVer for short, is simple — developers should be able to tell at a glance whether an update is likely to cause problems or not. We promise to make releases in a manner that is compatible with SemVer. In a nutshell:
- All releases of the form A.*.* will be compatible with each other. Version B.*.* is guaranteed to break everything.
- All releases of the form A.B.* are simple bug-fixes. It should be a no-brainer to update from A.B.C to A.B.D, no matter what C and D are, and we guarantee as much as humanely possible that everything will keep working.
- All updates from A.B.* to A.C.* contain new features, but as much as humanely possible, won’t break any existing functionality.
As a rule of thumb, updates are by definition risky and you should always test them in a staging environment first. But using SemVer, we try our best to offer you bite-sized updates that explain the differences between them at a glance.