I can never figure out the naming scheme for version numbers. Is it Major, Minor, Build, Release? Or is it Major, Minor, Release, Build? Borland calls the last field “Build”, Microsoft calls the last field “Release” (except for the times where it doesn’t).

Internally, we always refer to final part of the version number as the build number.

We do development with Borland’s Delphi (5 and 7) and Microsoft’s Visual Studio .Net and while both can increment build numbers, we prefer to do it manually. In our home grown bug tracking app, we track the build number for when that bug was resolved. Borland’s method of bug incrementing is simple. When that feature is enabled, the build number is incremented when you rebuild the project. We prefer to do it manually as part of the build process. One programmer is in charge of the build for any given app, and it’s his responsibility to set the build number.

VS.NET can set the build number, but it’s a little odd. They don’t bump the build number when you rebuild, only when you close and reopen the project. Huh? Their build numbering scheme is also time based. You can VS set just the revision (4th field) or Build, Revision (3rd and 4th field). Build will be equal to the number of days since January 1, 2000 local time and Revision to be equal to the number of seconds since midnight local time, divided by 2.

This means that the final part of the version number is not always increase in value when Microsoft is allowed to set it. So we set it manually before handing over the latest and greatest to QA.