https://semver.org/, Semantic Versioning 2.0.0
Version number MAJOR.MINOR.PATCH
== Incompatible_changes . New_functions . Bug_fixings
with everything assumed to be backwardly compatible.
This is a very useful knowledge when choosing packages:
0.x.y
because API is not stable yet.>=2.x.y
because at least it appears rolling forward. Why Use Semantic Versioning? (Probably one should ask why not use it. Because anyway you need to have a rule for versioning. Unless you have a better choice and reason, just adopting the so far the best rule is a wise choice.)