In the past, many times I have stumbled upon software that was versioned like this: 1.0.1 – 3 numbers, separated by dots. I was always wondering why 3 numbers? For those who still don’t know – it turns out, there’s a specification that standardizes this schema and it’s very popular in the software industry. It’s called Semantic Versioning 2.0.0 (or semver in short).
The idea is actually quite simple:
1. The first number is a Major version. It’s increased when a new release of the software contains any backwards-incompatible changes.
2. The second number is a Minor version. It’s increased when a new release contains only backwards-compatible changes and bug fixes.
3. The third number is a Patch version. As you can guess, it’s increased when a new release contains only backwards-compatible bug fixes.
Having a standardized versioning schema has a few nice advantages. Your users/customers will know right away if they can install the new software version without problems. They can easily subscribe to only compatible releases (1.*).
There are also a few other possibilities like pre-release versions (1.0.2-beta.1) and build metadata (1.0.2+build.2345). The actual specification is not long, so it’s worth having a look by yourself, especially considering the fact that some tools like Helm require the usage of semver.
Have fun!