Semantic Versioning
Posted by jpluimers on 2011/03/02
It seems so simple that everyone would understand it.
Practice shows this theory is very wrong. So here are the most important rules about Semantic Versioning:
- … (see Semantic Versioning)
- … (see Semantic Versioning)
- … (see Semantic Versioning)
- … (see Semantic Versioning)
- … (see Semantic Versioning)
- Version 1.0.0 defines the public API. The way in which the version number is incremented is now dependent on this public API and how it changes.
- Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior.
- Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API. It MAY be incremented if substantial new functionality or improvements are introduced within the private code. It MAY include patch level changes.
- Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. It MAY include minor and patch level changes.
–jeroen
via Semantic Versioning.
Steven Kamradt said
It is unfortunate that at times version numbers appear to be managed by product managers, not developers, and are more driven by “new features”, even when such features do not break the existing API but build upon it. It is also unfortunate that there is no way to tell a semantic version from a non-semantic version scheme.