Software (Semantic) Versioning

Software versioning assigns unique version numbers to unique states of computer software.   Semantic versioning is a formal convention for specifying compatibility using a three-part version number: major version, minor version, and patch formatted as (X.Y.Z).   X,Y, and Z are incremented numerically from zero.  

Major Version (X)   Incremented if any backwards incompatible changes are introduced.   May include minor and patch changes.   Patch and minor version numbers set to zero.  

Minor Version (Y)   Incremented if any backwards compatible changes are introduced.   May include patch changes.   Patch version number set to zero.  

Patch Version (Z)   Incremented if only backwards compatible bug fixes are introduced.   A bug fix is defined as an internal change that fixes incorrect behavior.

semver.org