Greytower Versions

by Tina Holmboe 25th of February 2011 archive

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:

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 :)