Versioning Strategies can range from virtually non-existent (Git) to Complex. As always, you’ll want to [choose the right tool for the job].
SemVer or Semantic Versioning
Semantic Versioning is a methodology for identifying changes over the course of time. Version
x.x.x is the popular recommended format, with each number in the release having a particular meaning.
MAJOR versions by definition imply that this version includes breaking changes when compared to the last Major version.
Semantic versioning is most useful when you are distributing a software package that many people rely on, such as in Open Source Software. The easily identifiable Semantic Versioning can quickly alert developers to potentially breaking changes. This versioning is also widely adopted in the Ruby, Python, and NPM ecosystems. Developers frequently “pin” dependency versions to ensure compatibility. As a default, you should take care when upgrading software dependencies, and SemVer makes it easy to identify breaking changes (assuming that you trust the developers doing the versioning)