Release management

Release cycle

flowchart LR
    subgraph Dev[Development]
        direction TB
        Plan -->
        Build -->
        Commit -->
        Test1[Test] -->
        Approve1[Approve] --> 
        Merge --> Plan
    end
    subgraph UAT[User acceptance]
        direction TB
        Deploy1[Deploy] -->
        Test2[Test] -->
        Approve2[Approve] -->
        Release
    end
    subgraph Dep[Deployment]
        direction TB
        Deploy2[Deploy] -->
        Test3[Test] -->
        Support -->
        Close
    end
    Dev -.-> UAT -.-> Dep

Before merging branch into trunk

  1. Merge trunk into branch and resolve conflicts
  2. Commit and build package
  3. Transport the package to TEST
  4. Test and approve final branch revision
  5. Merge branch into trunk

Prepare a release candidate

  1. Build the head revision in trunk, incrementing:
    • the patch number for a bugfix release
    • the minor version number for a feature release
    • The major version number for a major release
  2. Transport the package to ACCEPTANCE
  3. Test and approve the release candidate
  4. If approved, transport the package to PRODUCTION
  5. Test and approve the release
  6. Provide support for the new features
  7. Close the release, deleting any branches no longer required