# Semantic Versioning

The concept of [semantic versioning](https://semver.org/), 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.
