For example, looking at my 17 Firefox add-ons, only 5 of them are >1.0.0.
I have recently released version 1.0 of a project i am working on as i feel that the code is working as designed and there are no half-finished features. There's still a *lot* more i can add, and probably some bugs to fix, but that's what version 1.0.1, 1.1.0, etc are for, right?
I have wondered about this for a while but i only ask now because in the back of my mind i am questioning if making my project 1.0 was the right move to make. Of course, there are no strict rules on versioning, so if i wanted i could call the next version 2.0 then 3.0 and so on. Likewise, i could call each version 0.0.1, 0.0.2, 0.0.3 and on like that, never incrementing the first 2 digits.
There is obviously a sensible way to do it, and although everyone is different, i am doing something like this:
1.2.3[.4] | | | | | | | build number (optional) | | release that includes only bug fixes | release that includes new features (+ bug fixes if any) major release that includes many new features and/or large code re-structuring