semantic version utility
semantic version utility (svu) is a small helper for release scripts and workflows.
It provides utility commands and functions to increase specific portions of the version. It can also figure the next version out automatically by looking through the git history.
Tip
Read the spec for more information.
Check svu --help for the list of sub-commands and flags.
This is probably the command you'll use the most.
It checks your git log, and automatically increases and returns the new
version based on this table:
| Commit message | Tag increase |
|---|---|
chore: foo |
Nothing |
fix: fixed something |
Patch |
feat: added new button to do X |
Minor |
fix: fixed thing xyzBREAKING CHANGE: this will break users because of blah |
Major |
fix!: fixed something |
Major |
feat!: added blah |
Major |
Tip
You can create an alias to create tags automatically:
alias gtn='git tag $(svu next)'Every flag option can also be set in a .svu.yml in the current
directory/repository root folder, for example:
tag.prefix: ""
always: true
v0: trueNames are the same as the flags themselves.
macOS
brew install caarlos0/tap/svulinux/apt
echo 'deb [trusted=yes] https://apt.fury.io/caarlos0/ /' | sudo tee /etc/apt/sources.list.d/caarlos0.list
sudo apt update
sudo apt install svulinux/yum
echo '[caarlos0]
name=caarlos0
baseurl=https://yum.fury.io/caarlos0/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/caarlos0.repo
sudo yum install svudocker
docker run --rm -v $PWD:/tmp --workdir /tmp ghcr.io/caarlos0/svu --helpgo install
go install github.com/caarlos0/svu/v3@latestmanually
Or download one from the releases tab and install manually.
Logo art and concept by @carinebecker.