Semantic versioning is a formal convention for specifying compatibility. It uses a three-part version number: major version; minor version; and patch. Version numbers convey meaning about the underlying code and what has been modified. For example, versioning could be handled as follows
Code status | Stage | Rule | Example version |
---|---|---|---|
First release | New product | Start with 1.0.0 | 1.0.0 |
Backward compatible fix | Patch release | Increment the third digit | 1.0.1 |
Backward compatible new feature | Minor release | Increment the middle digit and reset the last digit to zero | 1.1.0 |
Breaking updates | Major release | Increment the first digit and reset the middle and last digits to zero | 2.0.0 |
Credits: https://lab.github.com/githubtraining/create-a-release-based-workflow