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 bumpfeat→ minor bumpfix,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
# 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