This project uses release-please to automate version management and releases.
Release-please follows the Conventional Commits specification to automatically determine version bumps and generate changelogs.
Use the following format for your commit messages:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
- feat: A new feature (triggers MINOR version bump)
- fix: A bug fix (triggers PATCH version bump)
- perf: Performance improvement (triggers PATCH version bump)
- docs: Documentation changes (no version bump)
- style: Code style changes (no version bump)
- refactor: Code refactoring (no version bump)
- test: Adding or updating tests (no version bump)
- build: Build system changes (no version bump)
- ci: CI configuration changes (no version bump)
- chore: Other changes (no version bump)
To trigger a MAJOR version bump, include BREAKING CHANGE: in the footer or add ! after the type:
feat!: remove support for legacy API
or
feat: add new authentication system
BREAKING CHANGE: old authentication tokens are no longer supported
feat: add group filtering endpoint
Adds a new /v1/groups/filter endpoint that allows filtering
groups by various criteria.
fix: correct artifact version sorting
Previously, artifact versions were sorted lexicographically
instead of semantically. This fix uses proper semver sorting.
docs: update installation instructions in README
- Make changes following conventional commit format
- Push to main branch (or merge PR)
- Release-please bot creates/updates a release PR with:
- Updated version number
- Generated CHANGELOG.md
- Version tag preparation
- Review the release PR to ensure changelog is accurate
- Merge the release PR to trigger:
- Git tag creation
- GitHub Release creation
- Binary builds for multiple platforms
- Asset uploads to the release
The release process automatically builds binaries for:
- Server (
server) - Web API server - Worker (
worker) - Background worker
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64)
Binaries are packaged as:
.tar.gzfor Linux and macOS.zipfor Windows
If you need to create a release manually:
# Tag the release
git tag v1.2.3
git push origin v1.2.3
# The GitHub Actions workflow will handle building and uploading binariesThe current version is tracked in .release-please-manifest.json. This file is automatically updated by release-please when a release is created.
.release-please-config.json- Release-please configuration.release-please-manifest.json- Current version tracking.github/workflows/release-please.yml- GitHub Actions workflow
For the first release, simply merge a PR with conventional commits. Release-please will:
- Create a release PR bumping from
0.0.0to the appropriate first version - Generate an initial CHANGELOG.md
- Once merged, create the first tagged release with binaries