Summary

A program version number has three comma-separated parts: X.Y.Z, where the first two (X.Y) mean the version (or branch) and define the program's feature set. The last one (Z) shows the release number and changes for bug fixes only. Each branch has an associated status that represents its stability for production.


Description

This article describes the versioning scheme to standardize the assignment of program version numbers.


A program version number has three parts: Major(X).Minor(Y).Release(Z)


Major(X) and Minor(X) parts from a program version X.Y (or a branch): The program version defines a particular set of unique features. In most cases, Minor(Y) is limited to a single digit. Changing the major(X) part does not always mean global change. Thus, for example, version 3.0 can be released after version 2.9 and include changes comparable to the changes between 2.8 and 2.9. On the other hand, Major(X) will be increased in the case of extensive program modification, such as a global UI redesign or modification of data format. To determine exact changes, read a release note published for a particular version.


Release(Z) indicates the release number and is increased by issuing bug fixes and patches. Increasing the release number does not add new features to the software.


Each branch has an associated status tag. The status can be one of the following: BETA, RC, STABLE. A freshly released version (for ex. 3.1.0) got a BETA tag. It means new features have passed internal testing but have not been tested enough in the “real world” environment. Please note, program distribution files do not contain any status tag associations. The status tag is only associated through publishing it on the website. For examples see the table below.


Example 1 (Regular Case)

Example 2 (Ideal Case)



April 1: Released 2.4.0

Branch marked as BETA


April 7: Released 2.4.1

Branch marked as RC


April 15: Released 2.4.2

Branch still marked as RC


April 20: same version

Branch marked as STABLE




June 1: Released 2.6.0

Branch marked as BETA


June 17: same version

Branch marked as STABLE