Files
compute-blade-agent/CONTRIBUTING.md
2025-06-06 18:28:15 +02:00

53 lines
1.9 KiB
Markdown

# Contributing
## Releases
This project uses [release-please](https://github.com/googleapis/release-please) and [goreleaser](https://goreleaser.com/) to automate releases based on conventional commits.
Releases are **semi-automated** and follow this flow:
### 1. Merge Code to `main`
All new features, fixes, and changes are merged into the `main` branch via pull requests using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
Examples:
- `feat: add new API endpoint`
- `fix: correct off-by-one error`
- `chore: update dependencies`
### 2. Release PR is Auto-Created
Once a commit is merged into `main`, a GitHub Action runs `release-please`, which:
- Calculates the next version (e.g., `v0.9.1`)
- Creates a pull request (e.g., `chore: release v0.9.1`)
- Includes a generated changelog in `CHANGELOG.md`
> 📌 Note:
> This PR should **not be edited manually**. If something is wrong, fix the commit messages instead.
### 3. Merge the Release PR
Once the release PR is approved and merged:
- The changelog and version bump are committed to `main`
- `release-please` pushes a new tag with the version-number the merged commit on `main`
### 4. Tag Triggers `goreleaser`
A GitHub Action watches for `v*` tags and runs `goreleaser`, which:
- Builds all binaries and artifacts
- Publishes them to GitHub Releases
- Optionally signs and pushes container images (if configured)
- Attaches additional files (e.g., firmware, config) as release assets
Once complete, the new GitHub Release is available at: [github.com/compute-blade-community/compute-blade-agent/releases](https://github.com/compute-blade-community/compute-blade-agent/releases)
## Notes
- Never push tags manually.
- Only edit the changelog through conventional commits and `release-please`.
- You can retry failed releases by deleting the failed tag and re-merging the release PR or re-running the workflow.