Skip to content

caarlos0/svu

Repository files navigation

svu Logo

semantic version utility


Release Software License Build status Go Doc GoReportCard Conventional Commits

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.

usage

Check svu --help for the list of sub-commands and flags.

next, n

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 xyz

BREAKING 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)'

configuration

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: true

Names are the same as the flags themselves.

install

Packaging status

macOS
brew install caarlos0/tap/svu
linux/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 svu
linux/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 svu
docker
docker run --rm -v $PWD:/tmp --workdir /tmp ghcr.io/caarlos0/svu --help
go install
go install github.com/caarlos0/svu/v3@latest
manually

Or download one from the releases tab and install manually.

stargazers over time

Stargazers over time


Logo art and concept by @carinebecker.