How do I differentiate between beta versions and normal versions?

lkessler picture lkessler · Sep 21, 2009 · Viewed 12k times · Source

I generally agree that major versions of a program should be 1.0, 2.0, ... and significant updates should be: 1.1, 1.2, ..., and that bug fixes should be at the third level: 1.0.1, 1.0.2, ... 1.0.156 (if you've been plagued by that many bug-fix releases between versions).


But now I want to release my first Beta that will be one of a series of Betas leading towards the release of version 1.0.

Specifically, it doesn't make sense to me, to number my Beta releases greater than the number I am developing to, e.g. 1.0.1 up to 1.0.15 (if I have 15 beta releases) and then follow it with 1.0.

But using numbers less than 1.0 seems awkward, e.g. 0.9.1 ... 0.9.15 and will cause confusion if I start using 1.9.1 ... 1.9.15 as the Betas for version 2.0.

Related:

How to do version numbers?


Just for information, after your help and great links with more info, this is what I decided on.

I've been going 0.7, 0.8, 0.9, 0.91 ... up to 0.98 for my alpha versions.

I know I can do 1.0 beta 1, which is the "standard" way. But taking everything into account, I'm going to go with: 0.99 beta 1, 0.99 beta 2 ... before I get to my 1.0 release.

If I do a pre-release of my 2.0 version, I'll probably then follow the pattern and call it 1.99 beta 1, 1.99 beta 2, etc.

Hopefully this question and the answers will help you decide on your scheme.

Answer

ctford picture ctford · Sep 21, 2009

I think you should seperate out your version numbering from the status of the release.

Betas should always have "beta" after the version. Users should not have to reverse engineer your numbering scheme to determine the stability of the release.

So leading up to version 1.0 you should have 1.0 beta 1, 1.0 beta 2 etc. That gives users a clearer idea of what major release a beta is leading towards and avoids confusion with any maintainance releases you might put out in the meantime.

The important thing is that you need to distiguish between a bugfix release (which should increase stability) and a beta (which may decrease stability).