It seems everyone I meet is struggling with software versioning. Although it should be fairly easy to deliver consistently versioned software, it almost always appears to be ‘nearly perfect’. And just that ‘nearly’ part makes it crappy and unreliable. However, there is light at the end of the tunnel : here is a great post about semantic versioning – the way you should do it: http://semver.org/.