git-semver
A simple CLI that will bump semantic versions based on git tags and
conventional commits.
Install
go install github.com/srbry/git-semver
Usage
note: At present, git-semver
will not actually add the new git tag to
your repository, it will simply output the next version/ rule for you to use
as you wish.
Show the next semantic version
cd <my-git-repo>
git-semver
Show the bump rule that will be used
cd <my-git-repo>
git-semver --rule
Note: This is particularly powerful when combinded with a tool like poetry which
includes its own version bumping tool
cd <my_poetry_repo>
poetry version $(git-semver --rule)
Release rules
At present, git-semver
is slightly opinionated but aligs with how conventional commits intend to use semver:
https://www.conventionalcommits.org/en/v1.0.0/#summary
The supported types are taken from:
https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional
Any commits that are either not conventional, or do not have an associated rule are not treated as releases.
As well as the rules below. Any type (e.g ci!
) that appends a !
is treated as a breaking change and therefore a MAJOR
release. Additionally any commit that contains the string BREAKING CHANGE
is treated as a breaking change and MAJOR
release.
Commit type |
Release |
feat |
MINOR |
fix |
PATCH |
perf |
PATCH |
refactor |
PATCH |
build |
N/A |
chore |
N/A |
ci |
N/A |
docs |
N/A |
revert |
N/A |
style |
N/A |
test |
N/A |
Please raise an issue if you disagree with any of our release rules, we would like to encourage conversation.