Semantic Versioning

A versioning convention: declare a public API, then use MAJOR.MINOR.PATCH so that a number change tells dependents whether they should expect a backward-incompatible API change, a compatible addition, or a compatible fix. It is a specification of how to communicate compatibility intent, not a law of compatibility, and not a substitute for defining the API.