Software Versioning

Software-Versioning

If we look at the readme file of a software, it has the information about the software – It’s Name, Company’s Name and among other things, a peculiar 4 decimal Version number. Ever wondered, why softwares generally have a four decimal identification number in their About dialogs. What do these four decimal digits signify? Lets have a look, closely.

Generally, the Version number is a 4 decimal number something like 3.0.123.345. Within a given version number category (major, minor), these numbers are generally assigned in increasing order and correspond to new developments in the software. These numbers signify :

  • – Major
  • – Minor
  • – Build
  • – Revision

Number of the software. Lets explore these one by one.

Major : The first part of the 4 decimal number of the version, represents the number of Major releases a software has gone through. The first ever release of any software to the world will have the Major number 1 (no candies for guessing). This will only be incremented in case of a Major overhaul to the product like:

a) Total change in the architecture (probably to support newer technology/standards etc.)
b) Addition of a major functionality (may be addition of newer and better APIs, deprecation of several functions, addition of newer Maps/Graphs etc.)
c) Changes to the Use Cases/Business flows or major revamp in the UI
d) And probably resolution of a hundred thousand bugs.

Major number is generally incremented in case of either one or more of the above points.

Minor : The second part of the version number represents the minor release of the software which generally occurs in cases of :
– Release of a service pack (To err is software). Like Humans, no software is perfect. In case of a major glitch, or to support a specific functionality, sometimes software companies release an add on to the existing software. This add on is generally installed/deployed as a part or on top of the existing software and does not affect any existing functionality of the software.

There are very few cases, where you’ll see such a service pack released for a software and thus, majority of the softwares will have their Minor number as 0.

Build : The third decimal place signifies the number of iterations used in the SDLC to reach the point where software is currently in. A good software team always follow one of the SDLC methodologies like Waterfall, Spiral or most likely Agile to divide the work and finish the modules in iterations. Whenever one iteration is completed and released for User Acceptance or QA, the third decimal place is incremented.

Revision : The fourth decimal place tells the number of revisions for the Build Numbers. No Software development team is perfect enough to have their build accepted in the very first attempt. Each build will have a set of bugs and those bugs will be resolved and the build will be released again and so forth. Consider a team releasing the revisions of a build every night, the revision number will be incremented each night.

Although, mostly followed, this versioning system is not a de facto standard that is followed by every company in the world. Some companies opt to use just Major and Minor numbers or sometimes Major, Minor and Build.
Release Date

Some projects use a date based versioning called Calendar Versioning. Ubuntu Linux is a example of a project using calendar versioning; Ubuntu 20.04, for example, was released April 2020. This has the advantage of being easily relatable to development schedules.

Author

Sandeep Kapil