Purpose
Generate or update CHANGELOG.md from Git history using conventional commits. Supports semantic versioning and release automation.
Arguments
- •
--version <v>— Target version (e.g.,1.2.0). If omitted, suggests based on commit types. - •
--from <tag>— Starting point (default: last tag or initial commit) - •
--dry-run— Show changelog without writing
Version inference
Based on commits since last tag:
- •
featwithBREAKING CHANGE→ major bump - •
feat→ minor bump - •
fix,perf→ patch bump
Commit categories
| Type | Changelog section |
|---|---|
feat | ✨ Features |
fix | 🐛 Bug Fixes |
perf | ⚡ Performance |
docs | 📚 Documentation |
refactor | ♻️ Refactoring |
test | 🧪 Tests |
build, ci | 🔧 Build & CI |
chore | Hidden (unless --all) |
Changelog format
markdown
# Changelog ## [1.2.0] - 2025-01-24 ### ✨ Features - **auth:** add biometric login (#42) ### 🐛 Bug Fixes - **api:** handle network timeout (#38) ### ⚠️ Breaking Changes - **config:** rename ENV_VAR to NEW_NAME
Workflow
- •Parse commits since last tag
- •Group by type and scope
- •Infer version (or use provided)
- •Generate changelog entry
- •Prepend to CHANGELOG.md (or create)
- •Optionally create git tag
Output
- •Suggested version
- •Changelog preview
- •File updated (unless --dry-run)
Reference
For templates and customization, see reference/shared-changelog-reference.md