none
Talk about versioning RRS feed

  • General discussion

  • Ok, let's talk about assembly versions.

    Currently, Microsoft (and a Microsoft-stack developers) using four number version: Major.Minor.Build.Revision. The vast majority of questions are about Build or Revision components. If a Build is more or less clear, the implementation of a Revision differs from developer to developer. Usually, we say that Revision is a unique ID of version of our product, which will changes at each build, even if it's fix or used for debugging reason. But what if we're partially wrong?..

    Ok. Why we need to four-number formatting? Because it's about hierarchy: we use Major number for big changes and Minor for small and when we change the Major number, we zero out the Minor number, we increase Build number at every build and zero out it when Minor number changes. Of course, we can always increase the Build number (as Microsoft does in Windows) and/or increase (or use the date or compute hash for) the Revision. But then why we need a hierarchy? We can simple use Release.Build scheme and have giant version numbers like 37.17365 (hello to Google and Mozilla!). If we use four-number formatting, we must use hierarchy rule for all parts of version. For example: we use Major number for big changes and Minor for small, we increase Build number at every build with the same [internal and external] functionality and zero out it when the Minor number changes, and we increase Revision number at every successful build and zero out it when Build number changes (=we use Revision when we need release fix and zero out it in all other reasons). In pseudo-graphical it looks like Major → Minor → Build → Revision hierarchy. As the result, we have cute version like 1.2.345.6 where full version is a unique ID of version of our product. Good job, guys.

    And what scheme you are using?

    Sunday, September 21, 2014 6:51 PM

All replies

  • Hello Aleksandr,

    >>And what scheme you are using?

    I use scheme described here:

    http://msdn.microsoft.com/en-us/library/51ket42z(v=vs.110).aspx

    Fred.


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Monday, September 22, 2014 6:51 AM
    Moderator
  • But there was nothing about what these numbers mean...
    Monday, September 22, 2014 5:50 PM
  • Hello,

    For these number meaning, actually I followed the recommended scheme which is described in CLR Via C# Second chapter which describes:

    For the version number 2.5.719.2: the first two numbers(Major and minor) make up the public perception of the version. The public will think of this example as version 2.5 of the assembly.

    The third number(bulid), 719, indicates the build of the assembly. If your company builds its assembly every

    day, you should increment the build number each day as well. The last number, 2, indicates the revision

    of the build. If for some reason your company has to build an assembly twice in one day, maybe to

    resolve a hot bug that is halting other work, the revision number should be incremented.

    Regards.



    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    Tuesday, September 23, 2014 7:20 AM
    Moderator