This project follows Conventional Commits specification for automated changelog generation and semantic versioning.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
| Type | Description | Version Bump |
|---|---|---|
feat |
New feature | Minor |
fix |
Bug fix | Patch |
perf |
Performance improvement | Patch |
refactor |
Code refactoring | Patch |
docs |
Documentation changes | Patch |
style |
Code style changes | Patch |
test |
Adding or updating tests | Patch |
build |
Build system changes | Patch |
ci |
CI/CD changes | Patch |
chore |
Maintenance tasks | No bump |
Add BREAKING CHANGE: in the footer or ! after type to indicate breaking changes:
feat!: remove deprecated API endpoints
BREAKING CHANGE: The old API endpoints have been removed. Use the new v2 endpoints instead.feat: add GitHub auto-fill integration
feat(ui): implement dark mode toggle
feat!: migrate to Next.js 15 App Routerfix: resolve skill selection persistence issue
fix(mobile): correct responsive navigation layout
fix(a11y): improve keyboard navigation for formsperf: optimize image loading with next/image
perf(build): reduce bundle size by 30%docs: update installation instructions
docs(api): add TypeScript examples
docs(readme): fix broken demo linksrefactor: convert components to TypeScript
refactor(store): migrate to Zustand state managementUse scopes to indicate the area of change:
ui- User interface componentsapi- API related changesbuild- Build systemci- Continuous integrationdocs- Documentationtest- Testinga11y- Accessibilityperf- Performancemobile- Mobile-specific changes
Install commitizen for interactive commit messages:
npm install -g commitizen cz-conventional-changelog
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrcUse git cz instead of git commit:
git add .
git czInstall "Conventional Commits" extension for VS Code to get commit message templates.
- Commit using conventional format
- Push to master branch
- Release Please analyzes commits
- Creates PR with changelog and version bump
- Merge PR to trigger release and deployment
# Adding new feature
git commit -m "feat(ui): add accessibility menu with font size controls"
# Fixing bug
git commit -m "fix(mobile): resolve navigation menu overflow on small screens"
# Breaking change
git commit -m "feat!: migrate to Next.js 15 App Router
BREAKING CHANGE: Pages directory structure has changed.
See migration guide for updating custom pages."
# Performance improvement
git commit -m "perf(build): implement code splitting for 50% bundle reduction"
# Documentation update
git commit -m "docs(contributing): add TypeScript coding standards"- ✅ Automated changelogs - No manual changelog maintenance
- ✅ Semantic versioning - Automatic version bumps based on commit types
- ✅ Release notes - Rich, categorized release notes
- ✅ Consistency - Standardized commit history
- ✅ Tooling integration - Works with Release Please, semantic-release, etc.