Version control¶
Branching model¶
We follow the GitHub flow branching model.
- Features are developed in a branch off of
main(e.g.feature/EDEV-123-some-new-changes) - Pull requests are created to merge the changes from the feature branch back into
main - Pull requests are squashed and merged into
main - Branches are deleted after being merged
- Releases are created via GitHub Actions/GitHub Releases
mainshould always be a clean, working version of the project - ready to release at any time
See below for merging guidance
Naming branches¶
- Use only alphanumeric characters and hyphens where possible and avoid special characters.
- Branch names for ticketed new features should follow:
feature/JIRA-TICKET-NUMBER-with-short-description - Branch names for ticketed bug fixes should follow:
fix/JIRA-TICKET-NUMBER-with-short-description - For example:
feature/EDEV-123-extra-squigglesfix/ABC-999-image-viewer-error
Naming pull requests¶
- Pull requests for features and bug fixes should be titled:
JIRA-TICKET-NUMBER: short-description - Pull requests for housekeeping tasks or other unticketed work should be titled:
CHORE: short-description - For example:
UN-123: Add extra squigglesDF-999: Fix image viewer errorCHORE: Update documentation
Merging branches¶
NOTE: Where possible, a feature branch should be kept up-to-date with main by regularly merging main into the feature branch. This will help to prevent conflicts when merging the feature branch back into main, and ensure there are no inconsistencies.
Ensure that you are using Squash and Merge when merging pull requests into main.
This keeps the commit history clean and easy to track.