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.)