Versioning

Introduction

Phases

Phases

Development Phase

Alpha Phase

Beta Phase

Release Candidate Phase

Final Phase

Numbering scheme

Version numbers have some sort of structure. A version number is composed of the following elements (ordered from most significant to least significant):

Major version

The major version in a version number indicates the number of major releases of a certain product. A release is a major release when the product has significantly changed.

Minor version

The minor version in a version number indicates the number of minor releases of a certain product, for which the major version number remains the same. A release is a minor release when the product has got new features, but not that many such that it would justify a new major release.

Patchlevel

Patchlevels indicate the number of bug-fix releases. When a new version of a product is released, and the new version contains mostly bug-fixes, then the patchlevel is incremented. The major and minor version remain the same.

Phase

The phase indicates the maturity of the release. The following phases are distinguished:

When a product is still in development, it is in the development phase.

When development is done on a product, it moves to the alpha phase. The alpha phase indicates that product is "feature complete", but that it might be unstable. In this phase, in-house testing is done.

When the product is stable enough, it moves to the beta phase. The beta phase indicates that the product is "feature complete", and tested. In this phase, the product is shipped to a selected group of users who will use the product. This phase is used to "harden" the product, by using it in real-life situations.

When the product is proven to be stable enough for actual usage, it enters the release candidate phase. In this phase, the focus is on packaging the product.

When no problems have been encountered with the packaging, it enters the final phase.

Phase Maturity Main focus
development phase   Development
alpha phase Feature complete In-house testing
beta phase Tested External testing
release candidate phase Hardened Testing packaging
final phase Ready to ship  

 

Phaselevel

When a product is in a certain phase, it goes through one or more iterations. The patchlevel is the iteration number for a certain phase.

 

Phaselevels

Printing

When the phase is "final", the phase is generally not shown. In this case, phaselevels are denoted by a alphabetic character. The first release (phaselevel 1) gets no character, the second release (phaselevel 2) gets an 'a'. The third release (phaselevel 3) gets a 'b', and so on.

Examples

Valid combinations of version 1.0.0-final-1 are:

Common Not so common
1 1-final
  1-final-1
1.0 1.0-final
  1.0-final-1
1.0.0 1.0.0-final
  1.0.0-final-1

Valid combinations of version 1.0.1-final-2 are:

Common Not so common
1.0.1a 1.0.1-final-2

Valid combinations of version 1.1.0-beta-3 are:

Common Not so common
1.1-beta-3  
1.1.0-beta-3