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
Rust 1.60 or newer is required.
Building with cargo depends on git2 and cmake due to linking with zlib-ng.
You can optionally disable this by changing the defaults for a build:
$ cargo build --no-default-featuresconvco 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}/.versionrcif 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 convcoor use it from the Docker Hub:
docker run -v "$PWD:/tmp" --workdir /tmp --rm convco/convcoIf you've created an image and pushed it into your private registry
convco:check:
stage: test
image:
name: convco/convco:latest
script:
- checkA 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.mdCheck 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_shaHelps 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 -- --patchWhen 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 --bumpIt is useful to use it with release tools, such as cargo-release:
cargo release $(convco version --bump)