About Semantic Versioning
Many software projects follow their own versioning scheme. Before you actually use the software, you go ahead and read up how their versioning scheme is working, which versions are compatible to which versions, which are meant for development purposes only, which are safe to use and most importantly which introduce breaking changes. When you upgrade existing software, you find yourself often in the position to ask "Can I safely upgrade this library to that version? Does this break anything?”. Finding an answer here can be very tedious for a big software project using many libraries.
As a software author you always ask yourselves the same question when you release: “What is the version number for the next release?”
Semantic versioning introduces a set of rules which help you as a software author to pick the right number. No need to think about this for hours anymore. For the users of your software it also gets a lot easier. They’re able to define rules for their package managers which updates are safe to perform and which are not. This allows them to update their libraries without problems.