This project uses Conventional Commits for automatic changelog generation. Follow these guidelines to ensure your commits are properly captured in the changelog.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Description | Changelog Section |
|---|---|---|
feat |
New features | ✅ Features |
fix |
Bug fixes | ✅ Bug Fixes |
docs |
Documentation changes | ✅ Documentation |
style |
Code style changes (formatting, etc.) | ❌ Not included |
refactor |
Code refactoring | ❌ Not included |
test |
Test changes | ❌ Not included |
chore |
Maintenance tasks | ❌ Not included |
perf |
Performance improvements | ✅ Performance |
ci |
CI/CD changes | ❌ Not included |
build |
Build system changes | ❌ Not included |
# New feature
git commit -m "feat: add new utility function for data validation"
# Feature with scope
git commit -m "feat(validation): add email validation utility"
# Bug fix
git commit -m "fix: resolve issue with array deduplication"
# Documentation
git commit -m "docs: update README with new examples"
# Performance improvement
git commit -m "perf: optimize object merge function"# Missing type
git commit -m "new updates"
# Extra parentheses
git commit -m "(fix): update something"
# Wrong format
git commit -m "fix - update something"
# No description
git commit -m "feat:"The following commits are NOT being captured in the changelog due to malformed conventional commits:
# These commits are MISSING from changelog:
6ef0048 (fix): update publish github action to point at start-publish script
76eee64 (fix): update publish github action to point at start-publish script
1c05a58 (fix): use default theme for docs
38da2df (fix): update github test github actiion
# This commit is MISSING from changelog:
bbfeb0c new updates# Fix the most recent commit
git commit --amend -m "chore: new updates"
# Fix previous commits (interactive rebase)
git rebase -i HEAD~5
# Then change commit messages to proper format# Create new commits with proper conventional format
git commit -m "fix: update publish github action to point at start-publish script"
git commit -m "fix: use default theme for docs"
git commit -m "fix: update github test github action"
git commit -m "chore: new updates"This project has Commitizen configured. Use it for consistent commits:
# Instead of git commit, use:
yarn commit
# This will prompt you for:
# 1. Type of change
# 2. Scope (optional)
# 3. Description
# 4. Body (optional)
# 5. Breaking changes (optional)
# 6. Issues affected (optional)To see what would be captured in the changelog:
# Generate changelog preview
yarn changelog
# Or dry run
npx conventional-changelog --dry-run --preset conventionalcommits- Always use conventional commit format
- Use Commitizen for consistency
- Be descriptive in commit messages
- Use scopes for related changes
- Test changelog generation before releases
- ✅ Working: Proper conventional commits are captured
- ❌ Missing: Malformed commits are ignored
- ✅ Automatic: Changelog generates on release
- ✅ Complete: All commit types are supported