
Find the latest version tag, calculate the next version, print to STDOUT - no tagging, no bumping, no changelog, no publishing.
verscout
is a single binary CLI tool. verscout latest
will print the latest version tag of your repository to STDOUT.
verscout next
will calculate the next version tag based on
Conventional Commits, and print it to STDOUT.
If no latest or next version exists, verscout
will print nothing to STDOUT and exit with code 0
by default.
verscout
will not create and push any tags.
It will not bump any versions in any files.
It will not create a changelog.
It will not publish any artifacts.
I wanted to have a lightweight tool that can tell me the latest and next version based on Git tags and Conventional Commits for use in my CI processes. Most other tools known to me did not fulfill my requirements:
- Print the latest version to STDOUT
- Print the next version to STDOUT
- Print no next version to STDOUT if there are no new commits that should cause a version bump
and exit with code
0
brew install erNail/tap/verscout
Check the releases for the available binaries.
Download the correct binary and add it to your $PATH
.
go install github.com/erNail/verscout
docker pull ernail/verscout:<LATEST_GITHUB_RELEASE_VERSION>
Check out this repository and run the following:
go build
Add the resulting binary to your $PATH
.
verscout latest
For verscout to find the latest version, the tags need to be in the format vMAJOR.MINOR.PATCH
or MAJOR.MINOR.PATCH
verscout next
For verscout to calculate the next version,
Conventional Commits
using fix
, feat
or BREAKING CHANGE:
need to exist since the latest version tag.
To get a complete list of the configuration options, please use the --help
or -h
flag.
verscout --help
By default, verscout
will run in the current working directory.
Use the --dir
flag to change this behavior.
verscout --dir ./my-other-repository
By default, verscout latest
will exit with code 0
if no latest version is found due to expected reasons.
The expected reasons are:
- There are no existing tags
- There are no valid version tags
You can change this behavior with the --exit-code
flag
verscout latest --exit-code 4
By default, verscout next
will exit with code 0
if no next version is found due to expected reasons.
The expected reasons are:
- There are no new commit messages since the last tag
- There are no new commit message since the last tag that use any keywords that will cause a version bump
You can change this behavior with the --exit-code
flag
verscout next --exit-code 4
- The format of the version tags is currently not configurable
- Which Conventional Commits should cause a version bump is currently not configurable
- Bumping any prerelease or release candidate versions is not supported
Please check the open GitHub Issues to get an overview of the planned features.
Please check the tasks in the taskfile.yaml
for any tools you might need.
task test
task lint
task run -- --help
task build
task build-image
task test-github-actions
task release-test