Semantic Version Util is a tool to manage semantic versions at ease!
You can print the current version, increase patch/minor/major manually or just get the next tag based on your git log!
Based on the log between the latest tag and HEAD
, prints the next tag.
aliases:
svu next
andsvu n
$ svu
v1.3.0
Commit message | Tag increase |
---|---|
fix: fixed something |
Patch |
feat: added new button to do X |
Minor |
fix: fixed thing xyz BREAKING CHANGE: this will break users because of blah |
Major |
fix!: fixed something |
Major |
feat!: added blah |
Major |
chore: foo |
Nothing |
Prints the latest tag.
alias:
svu c
$ svu current
v1.2.3
Increases the major of the latest tag and prints it.
$ svu major
v2.0.0
Increases the minor of the latest tag and prints it.
alias:
svu m
$ svu minor
v1.3.0
Increases the patch of the latest tag and prints it.
alias:
svu p
$ svu patch
v1.2.4
By default svu
will get the latest tag from the current branch. Using the --tag-mode
flag this behaviour can be altered:
Flag | Description | Git command used under the hood |
---|---|---|
--tag-mode current-branch |
Get latest tag from current branch. | git describe --tags --abbrev=0 |
--tag-mode all-branches |
Get latest tag accross all branches. | git describe --tags $(git rev-list --tags --max-count=1) |
To discard pre-release and/or build metadata information you can run your comman dof choice with the following flags:
Flag | Description | Example |
---|---|---|
--no-metadata |
Discards pre-release and build metadata. | v1.0.0-alpha+build.f902daf -> v1.0.0 |
--no-pre-release |
Discards pre-release metadata. | v1.0.0-alpha -> v1.0.0 |
--no-build |
Discards build metadata. | v1.0.0+build.f902daf -> v1.0.0 |
The idea is that svu
will just print things, so its safe to run at any time.
You can create tags by wrapping it in an alias. For example, I have one like this:
alias gtn='git tag $(svu next)'
So, whenever I want to create a tag, I just run gtn
.
go get github.com/caarlos0/svu
or
brew install caarlos0/tap/svu
or
curl -sfL https://install.goreleaser.com/github.com/caarlos0/svu.sh | bash -s -- -b /usr/local/bin
Or download one from the releases tab and install manually.