Goal

Design Constraints

Design

Top Level Directory

Repository Structure

In all cases:

Top-Level Repository

Developers rarely update the Top-Level repository directly. The integration process should manage commits to this repository.

A Project Repository

Third-Party Project

No constraints on repository format.

First-Party Project

Integration Processes

Develop in Projects

In the standard case the developer is in the "dev" branch of the Top-Level repository.

For a given development task:

  1. state project of interest. system processes assure:
  2. modify project of interest.
  3. test changes if desired
  4. commit modified projects.
  5. push changes

Integration

Performed on branch being integrated into:

  1. sync system graph
  2. propose merge into master:
    1. for each modified project topologically sorted:
      1. merge to proposed master
      2. perform project verification
  3. on all pass:
    1. commit merge of each project
    2. commit merge of system

Continuous

system of actors:

Example Implementation

a single git repository "projects". Containing: