[[TOC]] = !SahanaPy Version Numbering = == General Schema == Version numbering follows the following schema: {{{ [major].[minor].[version]-[branch]-[commit] }}} ||major|| Major Release Number, starting with 0 || ||minor|| Minor Release Number, starting with 1 || ||version|| Release Version, even numbers = stable version, odd numbers = development version || ||branch|| Name of the branch, omit for main trunk || ||commit|| Branch commit number, omit for stable versions || '''Stable versions 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 ("not ready for merge" in branches). - Bzr commits with a release and (an even) version number on top of their commit log indicate a stable version ("ready for merge" in branches). == Version Numbers in Branches == The release number of a branch follows the main trunk, i.e. it indicates the trunk version it is contributing to: - 0.3.6-vita is contributing (and synchronises regularly with) trunk version of the 0.3 release. Once the main trunk turned into 0.4, no code from branches with 0.3.x release numbers will be merged into trunk anymore. Version numbers in branches in turn do not have to correlate with the main trunk version, i.e. - 0.3.24-vita can contribute to 0.3.3 in the main trunk. However, odd version numbers of branches indicate a "not ready for merge", while even numbers indicate "can be merged", i.e. - 0.3.24-vita can be merged into 0.3.3 trunk, whilst - 0.3.25-vita is not ready to be merged To indicate a "ready for merge", write the release and version numbers of the branch on the top of the bzr commit log. Commits without release numbers are generally considered unstable. == Version Numbers == 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) == Examples == E.g.: {{{ 0.3.3-haiti-567 }}} - Major Release: 0 - Minor Release: 3 ("Banwell") - Version: 3 (development version) - Branch: haiti (Haiti Earthquake 2010 Deployment Branch) - Commit No.: 567 {{{ 0.3.4-haiti }}} - Major Release: 0 - Minor Release: 3 - Version: 4 (stable version, no commit number!) - Branch: haiti (Haiti Earthquake 2010 Deployment Branch) {{{ 0.3.6 }}} - Major Release: 0 - Minor Release: 3 (Codename "Banwell") - Version: 6 (stable version, main trunk)