A Conventional commit cli.
Documentation: https://convco.github.io.
convco
gives tools to work with Conventional Commits.
It provides the following commands:
convco changelog
: Create a changelog file.convco check
: Checks if a range of commits is following the convention.convco commit
: Helps to make conventional commits.convco version
: Finds out the current or next version.
cargo install convco
This build depends on git2
with the zlib-ng-compat
feature. It requires cmake
.
convco
uses follows the conventional-changelog-config-spec.
The configuration file is loaded in the following order
- Load the internal defaults
- specified in src/conventional/config.rs,
- see these defaults as YAML in ./versionrc-default.yaml.
- Then override with values from the command line,
convco -c|--config path/to/.versionrc
- Or, if not specified via
-c|--config
, load${PWD}/.versionrc
if it exists.
To get the final derived configuration run convco config
.
The host: ...
, owner: ...
and repository: ...
when not supplied via custom or the .versionrc
are loaded
from the git remote origin
value.
# build the convco image
docker build -t convco .
# run it on any codebase
docker run -v "$PWD:/tmp" --workdir /tmp --rm convco
or use it from the Docker Hub:
docker run -v "$PWD:/tmp" --workdir /tmp --rm convco/convco
If you've created an image and pushed it into your private registry
convco:check:
stage: test
image:
name: convco/convco:latest
script:
- check
A changelog can be generated using the conventional commits. It is inspired by conventional changelog and the configuration file allows changes to the generated the output.
convco changelog > CHANGELOG.md
Check a range of revisions for compliance.
It returns a non zero exit code if some commits are not conventional. This is useful in a pre-push hook.
convco check $remote_sha..$local_sha
Helps to make conventional commits. A scope, description, body, breaking change and issues will be prompted.
# commit a new feature and then run git commit with the interactive patch switch
convco commit --feat -- --patch
When no options are given it will return the current version.
When --bump
is provided, the next version will be printed out.
Conventional commits are used to calculate the next major, minor or patch.
If needed one can provide --major
, --minor
or --patch
to overrule the convention.
convco version --bump
It is useful to use it with release tools, such as cargo-release
:
cargo release $(convco version --bump)