[QUOTE=friedo]
I think he’s talking about how lots of little trivial pieces of software, especially open-source projects, release with version numbers like 0.92 instead of 1.0.
[/QUOTE]
Well, the thing is that there is a fundamental flaw with the “ideal” versioning system I stated in my previous post.
The developers need the number so that they know what version of the code someone is talking about when they send in a bug, or even just to track progress as they are still developing.
So…when you start development, what version are you at before you’ve typed up any code? The code you are writing is the version 1 code. But by common understanding, version 1.0.0 is supposed to be the first release version. Which means that you have to start at version 0.0.0, and flop it to 1.0.0 only once you are done.
But then that means that in order to create a new version of your software, you would need to start the rewrite as version 2, and the release version would be version 3.
That is to say:
0, 2, 4, 6, etc. would all be non-release, development versions.
1, 3, 5, 7, etc. would be release versions.
But again common understanding necessitates that the second release version of the app be version 2.
So overall, the versioning system doesn’t work as a versioning system. At least not as one that is pretty.
In the end you’re just as well to say that any new *.0.0 indicates the start of a new version, and whatever subversion and build number it is at when it is ready for release is just where it is. This is a lot more logical. And programmers tend to be logical people.