Development Workflow¶
Branching Strategy¶
- Development work should branch from and merge back to the
developmentbranch - Future plans include dedicated
uatandmainbranches for UAT and production environments - Currently, only the
developmentenvironment has an associated deployment
CI/CD Pipeline¶
- GitHub Actions automates testing pipelines
- The workflow configuration is in
.github/workflows/ci.yml - Tests run in a Docker Compose environment to execute unit tests
- CI checks are triggered on pull requests to
development,uat, andmainbranches
Semantic Versioning¶
This repository uses Python Semantic Release to automatically determine and publish version numbers based on commit messages. The workflow runs automatically when changes are merged into main.
How it works¶
- When a pull request is merged into
main, theSemantic ReleaseGitHub Actions workflow runs - It analyzes all commit messages since the last release to determine the next version number
- It updates the version in
pyproject.tomlandasu_apgap/__init__.py, commits the change, creates a git tag, and publishes a GitHub Release
Commit prefix conventions¶
The version bump is determined by the prefix of the commit message:
| Prefix | Example | Version bump |
|---|---|---|
feat: |
feat: add new API endpoint |
Minor (0.1.0 → 0.2.0) |
fix: |
fix: correct pagination bug |
Patch (0.1.0 → 0.1.1) |
perf: |
perf: optimize database query |
Patch (0.1.0 → 0.1.1) |
feat!: or BREAKING CHANGE: |
feat!: redesign auth flow |
Major (0.1.0 → 1.0.0) |
build:, chore:, ci:, docs:, style:, refactor:, test: |
chore: update dependencies |
No version bump |
Breaking changes¶
A breaking change can be indicated in two ways:
- Add
!after the type:feat!: remove deprecated endpoint - Add a
BREAKING CHANGE:footer to any commit:
feat: redesign authentication
BREAKING CHANGE: The /auth/login endpoint now requires a JSON body instead of form data.
Scopes (optional)¶
Scopes can be added in parentheses after the prefix to provide additional context — they do not affect the version bump: