![verscout icon](/erNail/verscout/raw/main/docs/img/verscout-icon.png)
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.
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
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.
- 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