Change Management

Steven J Zeil

Last modified: Sep 22, 2020
Contents:

1 Software Configuration Management (SCM)

We’re going to focus on change management and its relation to VC.

1.1 Codelines and Baselines

1.1.1 Codelines and Baselines: Example

 

A baseline merges components that we have written (a version out of our codelines) with versions of 3rd party components that we employ.

1.1.2 Baselines

2 The Strategic Use of Branches

Branches are not just for informal exploration.

2.1 Codelines == Branches

 

You can see a similar branch structure in this course website.

2.2 Change Management

 

2.2.1 Making Decisions

In large organizations, changes are approved by a Change Management Board.

E.g., the team working in an exploratory branch has demonstrated an attractive new feature.

2.2.2 Change Propagation

Even in smaller projects, the issue of change propagation across code lines needs to be kept in mind.

 


 

2.3 Merge Requests

Open source projects often have a structure of

Typically, the main release branches can only be modified by the core developers.

2.3.1 Contributors…

  1. Create their own branch from one of the release branches.
  2. Edit the code to add a feature of fix a bug.
  3. Commit their changes in their branch.
  4. Send a “merge request” to the core developers identifying the branch contianing their work and indicating the issue they were working on.

2.3.2 Core developers…

  1. Accept the merge request.
  2. Chock out their own copy of the relevent release branch.
  3. Merge the changes from the contributor’s branch into that release branch.
  4. Run tests and quality checks.
  5. If the contributor’s contribution is approved, pushes those merged changes into the central repository.