16 releases

Uses new Rust 2021

0.3.10 Apr 24, 2022
0.3.9 Mar 2, 2022
0.3.8 Dec 28, 2021
0.3.7 Oct 13, 2021
0.1.1 Dec 29, 2019

#16 in Build Utils

Download history 91/week @ 2022-03-15 65/week @ 2022-03-22 14/week @ 2022-03-29 17/week @ 2022-04-05 12/week @ 2022-04-12 25/week @ 2022-04-19 120/week @ 2022-04-26 119/week @ 2022-05-03 244/week @ 2022-05-10 63/week @ 2022-05-17 95/week @ 2022-05-24 142/week @ 2022-05-31 44/week @ 2022-06-07 12/week @ 2022-06-14 20/week @ 2022-06-21 23/week @ 2022-06-28

119 downloads per month

MIT license



GitHub Workflow Status Crates.io

A Conventional commit cli.

convco gives tools to work with Conventional Commits.

The tool is still in early development. It provides already 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.

Docker usage

# build the convco image
docker build -t convco .
# run it on any codebase
docker run -v "$PWD:/tmp" --workdir /tmp --rm convco

Use it in .gitlab-ci.yml

If you've created an image and pushed it into your private registry

  stage: test
    name: convco/convco:latest
    - check



A changelog can be generated using the conventional commits. It is inspired by conventional changelog. Configuration follows the conventional-changelog-config-spec

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)


  • automatic notes for breaking changes
  • custom template folder
  • use a .versionrc file
  • limit to a range of versions
  • sort sections in changelog
  • issue references
  • better documentation
  • better error handling


~430K SLoC