by RMD
10. March 2011 22:35
I recently ready Jimmy Bogard’s blog post regarding versioning strategies for the sane. His suggestion, to use what amounts to a timestamp for your assembly versioning, is more or less the approach that Telerik takes.
One thing I don’t like about this strategy is it kind of prevents you from being able to call your release “v2” or “v4” or whatever.
Sure, you can call your release whatever you want to call it, but your assembly version is 2011.1.225, and you’re calling the release “v3”, then that’s bound to cause some confusion.
The approach I take is the best of both words. The major and minor segments are determined by me (usually based on some arbitrary marketing strategy), while the revision and build segments are the time stamp.
For instance: 2.1.2011.0691 = Version 2.1, built on the 69th day of 2011. (March 10th).
The trailing 1 indicates there was a single build that day. If multiple builds took place, that trailing digit would indicate the final build number. So 2.1.2011.0694 would indicate it was the 4th build, etc.
The build number can never go above 9 since that would create ambiguity as to what was the day of year and what was the build number, but if you’re doing more than 9 builds on the day you freeze your release, you’ve got other problems.
This leaves me with some control over my version number, whether that’s for marketing reasons, or simply because that’s the way I want it – damn it. 