Staged Integration Lines

Synopsis::Provides a series of integration branches that individual changes are propagated through before being merge into the development codeline.

Intent
To provide staging areas to hold and control promotion of changes through an organisation's lifecycle, using the version control tool.

Motivation
An organisation has established a process consisting a series of promotion levels (including, perhaps, different test levels) and wants to stage changes through these promotion levels.

Also known as
also known as::Promotion Branch, also known as::Promotion Lines, also known as::Cascading Integration Lines

Structure
Each promotion level is assigned a branch. Each promotion branch is taken from the preceding promotion level in a similar fashion to the Overlapping Release Lines. Promotion level branches are assigned to Codeline Owners who control entry or exit through their own codeline.



Consequences

 * The maturity of changes is indicated by the integration line to which they have been promoted.
 * Integration lines perform similar functions to quality gates.
 * Integration lines can be used to control the handover of control between codeline owners.
 * Multiple integration lines may become burdensome to smaller developments. Care must be taken to introduce such overheads only with good cause.
 * Each integration (merge or sync) between staged integration line introduces both overhead and the risk of introducing errors.

Related patterns
The following patterns are variants of the pattern.
 * variant pattern::Cyclic Promotion Lines
 * variant pattern::Escalating Promotion Lines

The following patterns are related to the pattern.
 * related pattern::Component Line
 * related pattern::Remote Development Line
 * related pattern::Subproject Line
 * related pattern::Stable Receiving Line
 * related pattern::Virtual Codeline
 * related pattern::Inside and Outside Lines
 * related pattern::Branch per Task
 * related pattern::Docking Line