jalbrant.com
AAVOnline Versioning Scheme
In order to standardize how releases and development builds are versioned I came up with a scheme for AAVOnline that I have been using since v1.0.0. The version number can be broken up into four parts, Major, Minor, Revision, and Build. The Visual Studio .NET does a decent job of automatically creating and incrementing these numbers if I allow it to, however, I prefer to do it on my own.
Major
The major version will only be changed whenever I make a large sweeping architectural change to the program. As is the case with most software, this number is rarely changed and in AAVOnline's case will probably remain at 1. At this time I only see a large change when I move to .NET 2.0 or possibly straight Visual C++.
Minor
I use the minor version number to introduce new features to AAVOnline. For example, v1.1 added an online timetable to v1.0 and v1.2 added semi-instant messaging.
Revision
The revision number exists so I can release bug fixes and minor enhancements to an existing version. When automatic flight reporting was having problems, updates to it were released under the same minor version but different revision version.
Build
The build number is use solely for development versions. This is incremented with each intermediate development version that gets sent to beta tester(s).
Release Versioning
Following a similar model as the open source community, stable releases will only be versioned with an even numbered revision. Development versions will have an odd numbered revision and possibly a build number. For example, I am currently working on v1.3 of AAVOnline so my development builds have been given numbers like v1.2.5.4. Once it is ready for primetime, it will be reversioned v1.3.0.0 and sent out. An subsequent stable release will get v1.3.2.0.