Releases are fully automated. There is no manual tagging, no manual changelog editing, and no manual version bumping.
Every commit merged to main that follows the Conventional Commits format is picked up by release-please. It continuously maintains an open "release PR" that:
- Bumps the version in
package.jsonandsrc-tauri/Cargo.toml - Updates
CHANGELOG.mdwith the new entries grouped by type
When you are ready to ship, merge that PR. That triggers the build workflow, which:
- Runs the full test and validation suite
- Builds
Thuki.app - Creates a GitHub Release with the changelog notes and
Thuki.app.tar.gzas the downloadable asset
release-please reads commit prefixes to decide how to bump the version:
| Commit prefix | Example | Version bump |
|---|---|---|
feat: |
feat: add voice input |
Minor (0.1.0 → 0.2.0) |
fix: |
fix: hotkey not firing |
Patch (0.1.0 → 0.1.1) |
feat!: or BREAKING CHANGE: |
feat!: new IPC protocol |
Major (0.1.0 → 1.0.0) |
docs:, chore:, refactor:, etc. |
docs: update README |
No bump |
- Merge feature and fix PRs to
mainas normal, using conventional commit messages. - release-please automatically opens or updates a release PR titled
chore(main): release X.Y.Z. - Review the PR to confirm the version and changelog look right.
- Merge the release PR.
- Done. The build runs automatically and the GitHub Release is published.
Do not edit these manually:
CHANGELOG.md: written by release-please on every release PRpackage.json"version"field: bumped automaticallysrc-tauri/Cargo.tomlversionfield: bumped automatically.release-please-manifest.json: tracks the current released version; do not edit