Conventional Commits
Use Conventional Commits so history, changelog generation, and release tooling all agree on what changed.
The repository uses Conventional Commits to keep PR titles and commit history predictable. This matters both for human review and for the release automation that turns merged changes into versioned output.
Configure
Commit format
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
Use the same shape for PR titles because the project relies on squash merge and changelog automation.
Reference table
Common commit types
| Type | Use it for | Release effect |
|---|---|---|
feat | new user-visible or contributor-visible functionality | minor |
fix | bug fixes and behavior corrections | patch |
docs | documentation-only changes | patch |
refactor | code changes that do not add a feature or fix a bug | patch |
test | test additions or corrections | patch |
build, ci, chore | build-system, workflow, or maintenance changes | patch |
revert | reversal of a previous change | patch |
Reference table
Common scopes in this repository
| Scope | Area it maps to |
|---|---|
api, controller, infra, config, security, rbac | core controller and platform areas |
backup, restore, upgrade, bluegreen | manager and lifecycle features |
charts, manifests, deps, build, ci, docs, ai | tooling, artifacts, workflows, and docs |
test(unit), test(integration), test(e2e) | test-only changes with explicit layer scoping |
Mark a breaking change with ! after the type or scope, or use a BREAKING CHANGE: footer when the description needs more room.
CI enforcement
The repository validates Conventional Commit format in CI for:
- PR titles, which are required for the squash-merge workflow
- commit-subject checks, which remain informational rather than blocking
Related contributor pages
You are reading the unreleased main docs. Use the version menu for the newest published release, or check the release notes for what is already out.
Was this page helpful?
Use Needs work to open a structured GitHub issue for this page. The Yes button only acknowledges the signal locally.