Glossary · Automation software engineering and architecture
Semantic versioning
Also known as: SemVer
German: Semantische Versionierung
In software engineering, semantic versioning is a versioning convention with identifiers in the form MAJOR.MINOR.PATCH, where the major number changes for incompatible changes, the minor number for backward-compatible features and the patch number for backward-compatible fixes.
- Software engineering
- Standards
In one sentence
Semantic versioning uses MAJOR.MINOR.PATCH numbers to signal incompatible changes, compatible features and compatible fixes.
Example
Integrators allow automatic updates of the communication library within 2.x, because semantic versioning promises that 2.5.0 stays compatible with 2.3.1.
Explained in context
Context cards connect this term with others to answer one question. Also in British English and German.
How it applies
- Engineering: SemVer requires a defined public interface; the version then communicates compatibility. Pre-release labels (1.0.0-rc.1) and build metadata extend the scheme.
- Integration: Package managers use SemVer ranges to select compatible dependency versions. The approach only works if the publisher applies the rules consistently.
- Documentation: Documentation can be versioned by major and minor version, with patch releases sharing the same manual. State the versioning policy in the documentation so readers can interpret numbers. The same idea can be applied to data models and interfaces.
Semantic versioning vs. other schemes
Many industrial products use their own numbering, such as firmware V2.9 SP1 or date-based versions. These can carry compatibility information too, but only SemVer defines it by convention.