This project uses conventional commits for automatic changelog generation.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
- feat: A new feature (MINOR version bump)
- fix: A bug fix (PATCH version bump)
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing tests or correcting existing tests
- chore: Changes to the build process or auxiliary tools
# New feature
git commit -m "feat: add webhook endpoint for GitHub events"
# Bug fix
git commit -m "fix: resolve timeout issue in Slack API calls"
# Documentation
git commit -m "docs: update installation instructions"
# Chore
git commit -m "chore: update Ruby to 3.3"
# Breaking change (MAJOR version bump)
git commit -m "feat!: change API response format
BREAKING CHANGE: The /api/threads endpoint now returns an array instead of an object"| Commit Type | Changelog Section |
|---|---|
feat |
Added |
fix |
Fixed |
docs, style, refactor, perf, test, chore |
Changed |
| Breaking changes | Changed (with note) |
- Make commits following conventional format
- Go to Actions → "Create Release PR" → "Run workflow"
- Choose release type (or use
autofor smart suggestions) - Review and merge the created PR
- Release is automatically published!
- Make commits following conventional format
- Preview changes:
rake release:preview - Create release by type:
rake release:major(or./scripts/release.sh major)rake release:minor(or./scripts/release.sh minor)rake release:patch(or./scripts/release.sh patch)
- Push:
git push origin main && git push origin v<version>
| Commit Type | Version Bump | Example |
|---|---|---|
feat!: or BREAKING CHANGE: |
MAJOR | 1.0.0 → 2.0.0 |
feat: |
MINOR | 1.0.0 → 1.1.0 |
fix: |
PATCH | 1.0.0 → 1.0.1 |
chore:, docs:, etc. |
PATCH | 1.0.0 → 1.0.1 |
The system analyzes all unreleased commits and suggests the appropriate version bump automatically!