Commit Conventions¶
We follow Conventional Commits to keep the git history readable and to enable automated changelog generation.
Format¶
Types¶
| Type | When to use | Example |
|---|---|---|
feat |
New feature | feat(chunking): add hierarchical chunker support |
fix |
Bug fix | fix(upload): handle empty PDF gracefully |
docs |
Documentation only | docs: update architecture diagram |
style |
Formatting, no logic change | style(api): fix ruff formatting warnings |
refactor |
Code restructuring, no behavior change | refactor(persistence): extract repository base class |
test |
Adding or updating tests | test(analysis): add rechunk edge case tests |
chore |
Tooling, CI, dependencies | chore: bump docling to 2.31 |
perf |
Performance improvement | perf(bbox): batch coordinate normalization |
ci |
CI/CD pipeline changes | ci: add multi-arch Docker build |
Scopes (optional)¶
Use the feature or component name:
| Scope | Maps to |
|---|---|
api |
document-parser/api/ |
domain |
document-parser/domain/ |
persistence |
document-parser/persistence/ |
infra |
document-parser/infra/ |
upload |
Upload feature (front + back) |
analysis |
Analysis feature (front + back) |
chunking |
Chunking feature (front + back) |
bbox |
Bounding box pipeline |
e2e |
e2e/ tests |
docker |
Dockerfile, docker-compose |
ci |
.github/workflows/ |
Rules¶
- Subject line — imperative mood, lowercase, no period, max 72 characters
- Body — explain why, not what (the diff shows what)
- Breaking changes — add
BREAKING CHANGE:in the footer or!after the type:feat(api)!: rename /analyses to /jobs - Issue references — use
Closes #123orFixes #456in the footer