Semantic Versioning – A recommendation for numbering releases of a software

Semantic Versioning is a recommendation for numbering different releases of a software package. It is widely being used by the open source software projects. From the day one about 4 years ago when I first started getting interest in the open source software development and communities surrounding such projects till today, I was developing an intuition about how these projects number their different versions. But I never searched for it seriously, thinking that I am far away from a stage where I will have to apply this scheme to one of my own projects because I am still a noob 🙂

But, a few days ago, I started working on a plugin for the MyBB forum creation software and hosted its source code on GitHub. Today, I was reading GitHub’s help page about releases. It linked to this official spec of Semantic Versioning. I read it and was amazed by the clarity with which it was written and explained. Plus, I was happy to find that much of the intuition that I developed during this time about the versioning scheme of most open source software projects was indeed correct 🙂

I highly recommend that you also go through this short specification before releasing any of your own piece of software, how little it may be, to the public. The rationale that it provides to back its recommendations really makes sense.