Panzerfaust uses Release Please and Conventional Commits to automate versioning and publishing. All releases — RC and stable — are driven from develop. No manual version bumping, no develop → main merge dance.
| Branch | Purpose |
|---|---|
develop |
Default branch. All development, all releases. |
main |
Read-only mirror of the last stable release. Updated manually after each stable if desired. |
Open PRs against develop. Use Conventional Commits in your PR title:
feat(scope): add something new → minor bump
fix(scope): correct a bug → patch bump
feat!: breaking change → major bump
ci/docs/chore: housekeeping → no bump
The pre-release pipeline runs automatically on every push to develop. No action needed — if the push contains releasable commits, a new vX.Y.Z-rc.N tag is created and a GitHub Pre-release is published with build artifacts.
- Review the open Release Please PR on
develop(titledchore: release X.Y.Z). - Check the changelog looks correct.
- Merge the PR.
Release Please then:
- Bumps
VERSION.txtandPanzerfaust.csprojtoX.Y.Z - Updates
CHANGELOG.md - Creates tag
vX.Y.Zondevelop - Publishes a GitHub Release with artifacts for Windows, macOS arm64, and Linux
That's it. No other steps required.
For urgent fixes that cannot wait for the next RC cycle:
- Branch off
develop:git checkout -b fix/<description> develop - Apply the fix with a
fix:commit. - Open a PR against
develop. - Merge — Release Please updates the pending release PR with the fix.
- Merge the Release Please PR to ship the patch release.
| Commit type | Bump |
|---|---|
feat |
minor |
fix, perf, refactor, revert |
patch |
feat! or BREAKING CHANGE: footer |
major |
docs, style, test, build, ci, chore |
none |
The following must be enabled in Settings → Actions → General for Release Please to work:
- Workflow permissions: Read and write
- Allow GitHub Actions to create and approve pull requests: enabled