Search code examples
version-controlversionupgradeupdates

Software Versioning


Platform : Visual Studio 2008 (I know it's old but I have my own reasons).

I am new to the concept of software versioning so I need advice as how to use it.

Currently, here is how I use software versioning:-

  • 1.0.0.0 to 1.0.0.1 (For bugs removal)
  • 1.0.0.0 to 1.0.1.0 (For minor changes in software like performance improvement)
  • 1.0.0.0 to 1.1.0.0 (For addition of certain functionality in software)
  • 1.0.0.0 to 2.0.0.0 (For major updates)

I learned this from here.

Now the problem I can think of is that when the software reaches version 3.5.17.3485 from version 1.0.0.0 then there would be bajillion lines of code. For example:

Update 1.0.0.0 to 1.0.0.1

  1. Used stored procedure instead of a view
  2. Backup feature added

Update 1.0.0.1 to 1.0.0.2

  1. Improved backup feature utility.

Update 1.0.0.2 to 1.0.0.3

  1. Bug fixed in software backup feature.

Now lets assume that updating from version 1.0.0.0 to 1.0.0.1 took 40 lines of code to change the design of database or files stored in the system and for every separate update it will take more and more code depending upon the update. Now after reaching 3.5.17.3485 version think of how many lines of code will be there.

Can anyone tell me how to handle such a situation?


Solution

  • You should look into Semantic Versioning:

    Consider a version format of X.Y.Z (Major.Minor.Patch). Bug fixes not affecting the API increment the patch version, backwards compatible API additions/changes increment the minor version, and backwards incompatible API changes increment the major version.

    Only releases that change the major version actually might require the user of your application to change his/her own code.