Automatic Versioning (Semver)
The project uses automatic versioning based on Semantic Versioning principles using Conventional Commits.
How it works
- On push to
maintheRelease (Semver)workflow is triggered - semantic-release analyzes commits since the last tag
- The next version is determined by commit types:
fix:orfix(scope):→ patch (1.0.0 → 1.0.1)feat:orfeat(scope):→ minor (1.0.0 → 1.1.0)BREAKING CHANGE:in footer or!after type → major (1.0.0 → 2.0.0)Chart.yaml,package.jsonare updated,CHANGELOG.mdis created- A git tag
vX.Y.Zand GitHub Release are created - Build workflows build images with the new version
Commit format
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
- feat — new functionality (minor)
- fix — bug fix (patch)
- docs — documentation (no release)
- style — formatting (no release)
- refactor — refactoring (no release)
- test — tests (no release)
- chore — maintenance changes (no release)
Examples:
feat(api): add new endpoint for health check
fix(processor): resolve memory leak in Kafka consumer
docs: update installation guide
Breaking change:
feat(api)!: remove deprecated endpoint
BREAKING CHANGE: /v1/legacy endpoint has been removed
Configuration files
.github/workflows/release.yml— main release workflow.releaserc.json— semantic-release configuration (plugins, Chart.yaml and package.json updates)
Manual release
To manually create a release, create a tag:
git tag v1.2.3
git push origin v1.2.3
Build workflows will build artifacts for this tag. For automatic Chart.yaml and package.json updates, use conventional commits and merge into main.