A Conventional Commits analyzer for go-semantic-release.
- By adding
BREAKING CHANGEorBREAKING CHANGESin the commit message footer, e.g.:feat: allow provided config object to extend other configs BREAKING CHANGE: `extends` key in config file is now used for extending other config files - By adding
!at the end of the commit type, e.g.:refactor!: drop support for Node 6
- By using type
feat, e.g.:feat(lang): add polish language
- By using type
fix, e.g.:fix: correct minor typos in code see the issue for details on typos fixed. Reviewed-by: Z Refs #133
It is possible to customize the release rules by providing options to the analyzer. The following options are available:
| Option | Default |
|---|---|
major_release_rules |
*! |
minor_release_rules |
feat |
patch_release_rules |
fix |
BREAKING CHANGE(S) in their body will always result in a major release. This behavior cannot be customized yet.
A rule may match a specific commit type, scope or both. The following syntax is supported: <type>(<scope>)<modifier>
<type>: The commit type, e.g.feat,fix,refactor.<scope>: The commit scope, e.g.lang,config. If left empty, the rule matches all scopes (*).<modifier>: The modifier, e.g.!for breaking changes. If left empty, the rule matches only commits without a modifier.- A
*may be used as a wildcard for a type, scope or modifier.
| Commit | feat (or feat(*) |
*! (or *(*)!) |
chore(deps) |
*🚀 |
|---|---|---|---|---|
feat(ui): add button component |
✅ | ❌ | ❌ | ❌ |
feat!: drop support for Go 1.17 |
❌ | ✅ | ❌ | ❌ |
chore(deps): update dependencies |
❌ | ❌ | ✅ | ❌ |
refactor: remove unused code |
❌ | ❌ | ❌ | ❌ |
fix🚀: correct minor typos |
❌ | ❌ | ❌ | ✅ |
Copyright © 2024 Christoph Witzko