Forum Moderators: phranque
mainversion.subversion.build.revision
while mainversion is a real major update, subversion is a minor update, build and revision are internal development numbers. I am using it, cause it makes sense and feels common sense when reading version numbers.
When I see my-app 0.94 I think of a piece of really good shareware that is just on the jump to being a regular commercial product with growing support.
When I see my-app 1.3 this must be the first coming-out of a product that has been updated enough to probably run stable and include some user feedback.
(Personal opinion ^^^^)
You should create a scope for each new version like 2.0 3.0. That way you have a target during development.
No strict rules; versioning goes from the sublime to the ridiculous, as you've discovered!
If you are planning on selling or licensing your software then you might want to say that "free" upgrades would be available through minor increments; (i.e you can upgrade to 1.1, 1.2, 1.3 etc.) whereas a new major release - perhaps incorporating a new feature would require a new purchase, and be numbered 2.0.
I recollected some fond college memories when you brought up this subject. We released version 1.0 and then for every compile in VB selected an autoincrement version counter. ;)
Didn't take long to get a very professional looking Version number :)