Docking Line

Synopsis::Provide a stabilising branch for integrating individual changes before merging them into the development codeline.

Intent
Mitigate difficulties over responsibility for correctly integrating individual changes into the main development codeline.

Motivation
When code changes are created by individual owners but to be integrated back into a common development codeline, there arises an issue of who is responsible for that integration back to the development codeline. The provision of a docking line mitigates this contention somewhat by providing a common stabilisation codeline to which everyone can contribute prior to a controlled merge from the docking line to the development codeline.

Also known as
also known as::Holding Line, also known as::Staging Line, also known as::Lay-Away Line, also known as::Shared Integration Line

Structure
A common integration docking line is created from the main development line. Individual changes are created and merged or synchronised into the docking line by the change originator. The docking line is provided as an area that may be temporarily destabilised during these sync/merge operations. Importantly, individual changes are always sourced from the development codeline, not the docking line.

As the docking line is stabilised it is merged back to the development codeline and made available to developers for future change.



Consequences

 * The docking line acts as 'neutral ground' among the various change owners.
 * The docking line adds a level of integration, and consequently increases integration effort.

Related patterns
There are no known variants of the Docking Line pattern.

The following patterns are related to the pattern.
 * related pattern::Merge Early and Often
 * related pattern::Multi-Merge Early and Often
 * related pattern::Staged Integration Lines
 * related pattern::Merge Your Own Code
 * related pattern::Component Line