[[TOC]] = !SahanaPy Version Numbering = == General Schema == Version numbering follows the following schema: {{{ [major].[minor].[version]-[branch]-[branch-version] }}} ||major|| Major Release Number, starting with 0 || ||minor|| Minor Release Number, starting with 1 || ||version|| Version number of ''main trunk'', even numbers = stable version, odd numbers = development version, starting with 0|| ||branch|| Name of the branch, omitted for main trunk || ||branch-version|| Version number in ''branches'', even numbers = stable version, odd numbers = development version, starting with 1|| '''Stable versions of the trunk must have their release and version numbers in the bzr commit log.''' - Bzr commits without release/version number in the commit log are always considered being unstable. - Bzr commits with a release and (an even) version number on top of their commit log indicate a stable version. == Version Numbers in Main Trunk == Each new minor release starts with version number 0 in the stable, and 1 in the development version, i.e.: - 0.3.0 is the initial stable version of the 0.3 release - 0.3.1 is the initial development version of the 0.3 release For each update of the stable version, both version numbers are increased by 2, that is, when 0.3.1 is tested and ready for release, so: - 0.3.1 gets renumbered as 0.3.2 for release (stable 0.3.0=>0.3.2) - new development version will be 0.3.3 (development 0.3.1=>0.3.3) == Version Numbers in Branches == The release/version number of a branch follows the main trunk, i.e. it indicates the trunk version it is synchronised with: - 0.3.6.1-vita uses the code from the 0.3.6 trunk version. * 0.3.6-vita-1 (VITA branch, version 1, code from trunk version 0.3.6) => next version: 0.3.6-vita-2 Whenever a branch gets synchronised with the main trunk, the release and trunk version number gets updated: * 0.3.6-vita-1 => Merge with trunk version 0.3.7 => 0.3.7-vita-1 Even branch version numbers indicate a "ready for merge": * 0.3.6-vita-6 => ready for merge * 0.3.2-haiti-13 => not ready for merge '''Merge-ready versions of a branch must have their release and version numbers in the bzr commit log.''' == Examples == E.g.: {{{ 0.3.3-haiti-56 }}} - Major Release: 0 - Minor Release: 3 ("Banwell") - Version: 3 (development version of the trunk) - Branch: haiti (Haiti Earthquake 2010 Deployment Branch) - Branch version 56 (stable) {{{ 0.3.4-vita-13 }}} - Major Release: 0 - Minor Release: 3 - Version: 4 (stable version of trunk) - Branch: vita (VITA development branch) - Branch version 13 (unstable, not ready for merge into trunk) {{{ 0.3.6 }}} - Major Release: 0 - Minor Release: 3 (Codename "Banwell") - Version: 6 (stable version, main trunk)