What's your versioning scheme?
I always
wondered how other people version their .NET assemblies. What
seems to be obvious at first (Major.Minor.Build.Revision) becomes harder as
you have to deliver support and patches once a product has been installed at
a customer's site and meanwhile development for the next version (be it a minor one)
is well on it's way. How do I create a patch (read bugfix) for the version
that my customer has? This is a problem - and correct me if I'm wrong - I
don't see in opensource projects as one can easily download the code, adapt it,
use it at the customer's site and post a request to include the fix or feature
in a future version. Meanwhile has anybody thought about that little
interim build's version number? Back to my product: I can't just
increase the build number for the patch as it will conflict with the builds of the next
version. We redefined the version scheme of our assemblies to be
Major.Minor.Patch.Build. How does this solve our
build number collision problem? It doesn't. Instead, when making a
Patch, we increase the patch number and the build number, but the buildnumber still collides
with the build number of the next version. But at least we can make
out the difference between a Patch on an earlier version and the build of a newer version,
by means of the Patch number. Why didn't we go for the minor number instead
of the patch number and versioning scheme alteration? Because the next version maybe a minor
one.