Skip to content

Commit 74b4001

Browse files
committed
docs: clarify commit conventions
1 parent c0a3b95 commit 74b4001

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

docs/MAINTAINERS-GUIDE.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,47 @@ migration steps may be needed.
104104

105105
---
106106

107+
## Commit Conventions
108+
109+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) with the
110+
[Angular type extensions](https://github.com/angular/angular/blob/main/contributing-docs/commit-message-format.md).
111+
Each commit message should have the form: `<type>(<scope>): <short summary>`.
112+
The scope is optional but encouraged when it adds clarity.
113+
114+
**Types:**
115+
116+
| Type | Purpose |
117+
|------|---------|
118+
| `feat` | New feature (user-visible) |
119+
| `fix` | Bug fix |
120+
| `docs` | Documentation only |
121+
| `style` | Formatting, whitespace (no logic change) |
122+
| `refactor` | Code restructuring (no feature or fix) |
123+
| `perf` | Performance improvement |
124+
| `test` | Adding or updating tests |
125+
| `build` | Build system or dependencies |
126+
| `ci` | CI/CD configuration |
127+
| `chore` | Maintenance (tooling, config, lint settings) |
128+
129+
Append `!` after the type/scope for breaking changes: `refactor!: ...` or `feat(eval)!: ...`.
130+
(don't forget this requires a semver version bump)
131+
132+
Examples of scopes used in this project:
133+
134+
| Scope | When to use |
135+
|-------|-------------|
136+
| `deps` | Dependency updates (`build(deps)`, `ci(deps)`) |
137+
| `fuzz` | Fuzzing infrastructure |
138+
| `lint` | Clippy / lint configuration |
139+
| `coverage` | Code coverage tooling |
140+
141+
Scopes are free-form — add new ones when they improve clarity (e.g., `feat(eval)`, `fix(scheme)`).
142+
143+
Only `feat` and `fix` are required by the spec; the rest are Angular conventions widely adopted in
144+
practice. Use lowercase types, keep the summary concise and imperative ("add X", not "added X").
145+
146+
---
147+
107148
## Publishing a New Version to crates.io
108149

109150
The crate is published automatically by the [release workflow](../.github/workflows/release.yml)

0 commit comments

Comments
 (0)