# HG changeset patch # User Oleksandr Gavenko # Date 1319200816 -10800 # Node ID 3d6440915224434a74cbe5eeaf6b94f57001c4c4 # Parent d5b0b9cc4b49d6c38dfc70270bb4a725866504e2 Single development branch with branches for bug fix in major versions. diff -r d5b0b9cc4b49 -r 3d6440915224 devel-proj-branching.rst --- a/devel-proj-branching.rst Fri Oct 21 14:06:03 2011 +0300 +++ b/devel-proj-branching.rst Fri Oct 21 15:40:16 2011 +0300 @@ -70,3 +70,78 @@ TODO +Single line workflow. +--------------------- + + * Only single development branch exist. + * Release means finish developing set of features and bug fixes on branches and + moving product build to release server.. + * After testing and stabilising release was made. This means: + + * VERSION file was updated. + * CHANGE file was filled with feature set, version, data and VCS revision + number. + * Mark release by tag in VCS. + * Invoke build of sources which marked by tag. Copy result to release server. + + * If bug discovered in some version, it fixed at development branch and + released with new minor/fix product version. + * Previous major/minor releases do not supported (just use latest release). + Users always forced to update to latest release. + * Each new release placed in hierarchy:: + + /vendor/product/XX.YY.ZZ/* + + and symlinked to:: + + /vendor/product/latest/ + +Example of release timeline:: + + +--+------+------+------+------+------+------+------+------+----> + dev| | | | | | | | | + v v v v v v v v v + t0.1.0 t1.0.0 t1.0.1 t1.1.0 t1.1.1 t1.1.2 t1.2.0 t2.0.0 t2.1.0 + +Single development branch with branches for bug fix in major versions. +---------------------------------------------------------------------- + + * Each major release have **own** branch. + * Another single branch reserved for development. + * Latest major relase branch is active. All older major branches is passive. + * Passive major branches was used for **only** for minor bug fixes on latest + code from this major version series (no new features). + * Features developed in development branch. Before release in merged to active + major release branch. + * Bug was fixed in oldest major version branch for which it must be provided + and merged to all next major version branches and development branch. + * Release means finish developing set of features and bug fixes on branches and + moving product build to release server.. + * After testing and stabilising release was made. This means: + + * VERSION file was updated. + * CHANGE file was filled with feature set, version, data and VCS revision + number. + * Mark release by tag in VCS. + * Invoke build of sources which marked by tag. Copy result to release server. + + * If bug discovered in some version, it fixed at development branch and + released with new minor/fix product version. + * Previous major/minor releases do not supported (just use latest release). + Users always forced to update to latest release. + +Example of release timeline:: + + +--+-----+--------+------+------+----+------+------+-----> + dev| | | | | | | | + | | | | | v v v + | | | | | +--+------+------+--> + | | | | | b2 | | | + | | | | | v v v + | | | | | t2.0.0 t2.0.1 t2.1.0 + v v v v v + t0.1.0 +---+------+------+------+------+------+------+---> + b1 | | | | | | | + v v v v v v v + t1.0.0 t1.0.1 t1.1.0 t1.2.0 t1.2.1 t1.2.2 t1.2.3 +