<p>My question is, which version-naming scheme should be used for what type of project.</p>

<p>Very common is major.minor.fix, but even this can lead to 4 number (i.e. Firefox 2.0.0.16). Some have a model that odd numbers indicate developer-versions and even numbers stable releases. And all sorts of additions can enter the mix, like -dev3, -rc1, SP2 etc.</p>

<p>Exists reasons to prefer one scheme over another and should different type of projects (i.e. Open Source vs. Closed Source) have different version naming schemes?</p>

I personally prefer MAJOR.MINOR.BUGFIX-SUFFIX where SUFFIX is
```
dev
```
for development versions (version control checkouts),
```
rc1
```
/
```
rc2
```
for release candidates and no suffix for release versions.
If you have suffixes for development checkouts, maybe even with the revision number, there is no need to make them even/odd to keep them apart.