Semantic Versioning (SemVer), created by Tom Preston-Werner, is a specification for assigning version numbers to software.
It solves the problem of meaningless version numbers by providing a clear definition and communication of software intentions. This leads to better dependency management, where software can easily be upgraded without having to roll new versions of dependent packages.
To use Semantic Versioning, follow the version number format, MAJOR.MINOR.PATCH, where:
MAJOR is incremented for incompatible API changes,
MINOR for added functionality in a backwards compatible manner, and
PATCH for backwards compatible bug fixes. Additional labels can also be added for pre-release and build metadata.
For example: 1.2.12