Development Workflow

Creating Branches Canonical PD05110

If the change you need to create depends on something in the staging branch you should create your new branch from the earliest commit in the staging branch that provides the required functionality.

Examples

Git

git switch <staging-branch>                  # Switch to the staging branch
git log --oneline | grep -i "<search-term>"  # Find the commit you need to branch from and note the commit hash for it
git branch <new-branch-name> <commit-hash>   # Create the new branch from that commit
git switch <new-branch-name>                 # Switch to the new branch

Minion

Pending Development

If the change you need to create depends on something in another WIP/Feature branch that hasn’t been merged in to the staging branch you should create your branch at the HEAD of that branch. Once that other WIP/Feature branch is merged into the staging branch, your dependent branch should be rebased onto the squashed commit of the other WIP/Feature branch.

Examples

Git

Initial creation

git switch <other-branch>                    # Switch to the WIP/Feature branch
git branch <new-branch-name>                 # Create the new branch
git switch <new-branch-name>                 # Switch to the new branch

After merge rebase

git switch <staging-branch>                  # Switch to the staging branch
git log --oneline | grep -i "<search-term>"  # Find the commit you need to rebase onto and note the commit hash for it
git switch <you-wip-branch>                  # Switch to your WIP/Feature branch
git rebase <commit-hash>                     # Rebase onto the commit

Minion

Initial creation

Pending Development

After merge rebase

Pending Development

Otherwise you should create your branch from the HEAD of the production branch.

Examples

Git

git switch <production-branch>               # Switch to the production branch
git branch <new-branch-name>                 # Create the new branch
git switch <new-branch-name>                 # Switch to the new branch

Minion

minion git branch <ticket-id> main

Atomic Commits Canonical PD05210

Pull Requests Canonical PD05310

Peer Review Canonical PD05320

Tagging for Testing Canonical PD05430

Releasing to Testing Canonical PD05440

Developer Tests in Testing Canonical PD05450

Merging for Staging Canonical PD05520

Tagging for Staging Canonical PD05530

Releasing to Staging Canonical PD05540

User Acceptance Tests in Staging Canonical PD05550

Merging for Production Canonical PD05620

Tagging for Production Canonical PD05630

Pre-Release - CAB Announcements Canonical PD05636

Releasing to Production Canonical PD05640

Production Verification Tests in Production Canonical PD05650

Post-Release - Production Changelogs Canonical PD05690