Semantic Versioning (SemVer) is a versioning scheme for software that conveys meaning about the underlying changes with each new release. It uses a three-part number system: MAJOR.MINOR.PATCH.
Semantic Versioning helps in maintaining and communicating the changes in a software project by specifying version numbers in the format X.Y.Z where:
- MAJOR version (X) increases when there are incompatible API changes.
- MINOR version (Y) increases when functionality is added in a backward-compatible manner.
- PATCH version (Z) increases when backward-compatible bug fixes are made.
For example, if a project is currently at version 2.3.4:
- If an incompatible API change is made, the new version would be 3.0.0.
- If new features are added in a backward-compatible way, the new version would be 2.4.0.
- If a backward-compatible bug fix is made, the new version would be 2.3.5.