Versioning
How I'll name different revisions of my projects
The syntax is major.minor[type]build. Type codes are a for alpha, b for beta, and rc for release candidate. The first version of a build level or type must be identical to the last version of the release below it.
My first internal version will usually be 1.0 and a direct copy of the template. This will make it easy to use version control to revert to the original code.
After that comes 1.1a1, 1.1a2... until it's stable and declared 1.1.
In most cases (themes) I'll go from alpha to a release, without beta or a release candidate.
Any of these intermediate versions can be stored in the trunk. Released versions will be tagged.
From Wikipedia:
.A different approach is to use the major and minor numbers, along with an alphanumeric string denoting the release type, i.e. 'alpha', 'beta' or 'release candidate'. A release train using this approach might look like 0.5, 0.6, 0.7, 0.8, 0.9 == 1.0b1, 1.0b2 (with some fixes), 1.0b3 (with more fixes) == 1.0rc1 (which, if it's stable enough) == 1.0. If 1.0rc1 turns out to have bugs which must be fixed, it turns into 1.0rc2, and so on. The important characteristic of this approach is that the first version of a given level (beta, RC, production) must be identical to the last version of the release below it: you cannot make any changes at all from the last beta to the first RC, or from the last RC to production. If you do, you must roll out another release at that lower level.
This is to permit users (or potential adopters) to evaluate how much real-world testing a given build of code has actually undergone. If changes are made between, say, 1.3rc4 and the production release of 1.3, then that release, which asserts that it has had a production-grade level of testing in the real world, in fact contains changes which have not necessarily been tested in the real world at all. This approach commonly permits the third level of numbering ("change"), but does not apply this level of rigor to changes in that number: 1.3.1, 1.3.2, 1.3.3, 1.3.4... 1.4b1, etc.