svu

command module
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2021 License: MIT Imports: 7 Imported by: 0

README

svu

Build Status

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!

Example usage:

svu

Based on the log between the latest tag and HEAD, prints the next tag.

aliases: svu next and svu n

$ svu
v1.3.0
Commit messages vs what they do:
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
svu current

Prints the latest tag.

alias: svu c

$ svu current
v1.2.3
svu major

Increases the major of the latest tag and prints it.

$ svu major
v2.0.0
svu minor

Increases the minor of the latest tag and prints it.

alias: svu m

$ svu minor
v1.3.0
svu patch

Increases the patch of the latest tag and prints it.

alias: svu p

$ svu patch
v1.2.4

Tag mode

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)

Discarding pre-release and build metadata

To discard pre-release and/or build metadata information you can run your command of 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

Force patch version increment

Setting the --force-patch-increment flag forces a patch version increment regardless of the commit message content.

Pattern matching

By default svu will get the latest tag, but if you are using more than just version tags you might want svu to just look at tags matching a specific pattern. To do that you can set the --pattern flag.

$ svu
svu: error: tag "latest" is not semantic: Invalid Semantic Version
$ svu --pattern="v*"
v1.4.0

Creating tags

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.

Install

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.

Stargazers over time

Stargazers over time

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
git

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL