Greytower Versions
Admittedly, this one may be a bit on the special–interest side :), but since I know there are those who are curious about it … here’s a brief introduction to the version numbers we use at Greytower.
If you’ve followed our siteSifter release tweets you’ll have spotted version numbering looking like this:
2.10p22
It’s a somewhat deceptively simple format. First, and very important to us, it can be matched precisely by a regexp which, implemented in Perl, looks like this:
/(\d{1,})\.(\d{1,})(a|b|p|\.)(\d{1,})/ ) {
or: one, or more, digits followed by a dot (.). Then one, or more, digits followed by one of the qualifiers ‘a’ , ‘b’ and ‘p’ or a single dot (.). Finally one, or more, digits.
Here are some more examples:
1.0a0 1.0b0 1.0 1.0p0
The above is also the workflow — any piece of software start with a “one–dot–oh–alpha–oh” release; or a very early draft of the program. We always start with 1.0, and always with an alpha–series. Each release see the final number incremented; 1.0a0 becomes 1.0a1, then 1.0a2 and so forth.
When the program is considered feature complete, we move onto a beta–release cycle — 1.0b0 is the first of these. The same cycle is applied here; 1.0b0 becomes 1.0b1 etc.
At the point where we judge the software ready for production level use, we promote it to 1.0 — and release. At this juncture several things can happen:
- We can start a new branch — 1.1a0
- We can patch the current branch — 1.0p0
- We can start a new version — 2.0a0
At time of writing siteSifter’s version is 2.10p22. This means we have had 10 branches off the 2.0 release, and 22 patches to the 10th branch.
Works for us :)