Parallel Maintenance and Development Lines

Synopsis::Allows maintenance work on previous releases to continue even as the next release is being developed.

Intent
Allows the maintenance of previous release to continue even as the next release is being developed.

Motivation
It is often necessary to release updates (timely defect corrections, for example) to previous releases of systems while simultaneously developing the next release of that system.

Applicability
Almost universally applicable to all but the most trivial system.

Also known as
also known as::Parallel Fix and Feature Lines

Structure
Maintenance codelines are established for releases. These maintenance codelines are used for developing bug-fixes and minor enhancements appropriate to the release. Changes released from the maintenance codeline is integrated back into the main development codeline (to prevent regression in future releases).



Consequences

 * Changes in each branch can proceed at a pace suitable to the branch.
 * Maintenance changes (fixes) can be delivered without delaying future development.

Known uses
This pattern is widely used by projects that need to maintain a system independent of future development.

Related patterns
The following patterns are variants of the pattern.
 * variant pattern::Parallel Releasing and Development Lines

The following patterns are related to the pattern.
 * related pattern::Codeline Owner
 * related pattern::Codeline Policy
 * related pattern::Policy Branch
 * related pattern::Merge Early and Often
 * related pattern::Propagate Early and Often
 * related pattern::Change Propagation Queues