Semantic Versioning is a software versioning system that has been gaining popularity in recent years. With the rapid growth in software development through libraries, applications and web services having a standardised way of versioning software releases has never been as important. In this article I'll cover the basics of Semantic Versioning as well as outlining some common gotchas.