devel-proj-branching.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 21 Oct 2011 13:05:51 +0300
changeset 1054 1718aa7d99bc
parent 1049 a1e7d8884936
child 1055 120af6ca4d58
permissions -rw-r--r--
Custom branches.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1032
4decc3e00bb6 Fix coding and contents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1026
diff changeset
     1
.. -*- coding: utf-8 -*-
4decc3e00bb6 Fix coding and contents.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1026
diff changeset
     2
1019
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
===========================
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
 Project branching models.
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
===========================
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
.. contents::
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
Branch types.
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
=============
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
Development branch.
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
-------------------
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
 * For main development activities.
1025
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    15
 * For bug fixes, small enhancements.
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    16
 * For development on initial project stage.
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    17
 * Does not for experimental features!
1019
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
1049
a1e7d8884936 Small fixes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
    19
Names: dev, devel, master, trunk, default
1019
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
1025
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    21
Feature branch.
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    22
---------------
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    23
1049
a1e7d8884936 Small fixes.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1032
diff changeset
    24
 * For experimental features, that can be striped.
1025
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    25
 * For large changes that can break main development.
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    26
 * For incompatable changes that can break main development.
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    27
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    28
Names: feature-xxx
6d7c8cb191cd Feature branch.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1021
diff changeset
    29
1019
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
Release branch.
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
---------------
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    32
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    33
 * Used to support long running major/minor versions (include bug fixes or
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
   features backporting).
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
 * No any new features development.
1020
1ac6ead8a97b Fix spelling.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1019
diff changeset
    36
 * Release branch created from development branch. Decision about branching come
1ac6ead8a97b Fix spelling.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1019
diff changeset
    37
   from release manager after reviewing code quality by QA team.
1019
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
 * From release branch you make tags to product releases for customer.
6b9436fefab8 Branch types.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
1021
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1020
diff changeset
    40
Names: vXX.YY.ZZ, maint
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1020
diff changeset
    41
1054
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    42
Custom branches.
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    43
----------------
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    44
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    45
Custom branches intended to store modification to main release to make custom
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    46
product build.
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    47
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    48
Don't use custom branches at all. Instead redesign project to use customizable
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    49
build. Expected problem:
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    50
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    51
 * You must manually propagate bug fixed to all custom branches.
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    52
 * It is not possible merge custom branches back to development branch.
1718aa7d99bc Custom branches.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1049
diff changeset
    53
1026
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    54
Workflows.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    55
==========
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    56
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    57
Regular development workflow.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    58
-----------------------------
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    59
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    60
Regular development stay in development or feature branches.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    61
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    62
After completing feature set and testing feature branch merged with top of main
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    63
development branch tested again and merged to main development branch.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    64
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    65
After completing feature set and testing main development branch merged to
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    66
release branch.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    67
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    68
Bug fixing workflow.
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    69
--------------------
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    70
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    71
TODO
a6f51fcdb6f2 Regular development workflow.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1025
diff changeset
    72