conventionalcommitsnext_version is a utility to calculate the next Semantic Versioning 2.0.0 (https://semver.org/spec/v2.0.0.html) based upon the supplied version and the Git commit history in the Conventional Commits v1.0.0 format (https://www.conventionalcommits.org/en/v1.0.0/).
conventionalcommitsnextversion was created due to a lack of tooling not specific to and integrated with Node/NPM. Following the Unix philosophy of 'Make each program do one thing well.' combined with utilising command line arguments and standard out; conventionalcommitsnextversion is a versatile tool not tied to specific tooling or language.
conventionalcommitsnext_version reads all the commit messages from HEAD in the current directory until the commit specified by the argument '--from-commit'.
conventionalcommitsnextversion was designed to be used in a CICD pipeline. Rust compiles to statically linked binaries, so you can download the latest version for your architecture from https://gitlab.com/DeveloperC/conventionalcommitsnextversion/, without needing to download additional dependencies.
e.g. GitLab CI for Rust
```
```
The binary and library can be built via cargo.
cargo build
There are a number of unit tests in the project, they can be ran via cargo.
cargo test
To ensure correctness as there are a variety of out of process dependencies the project has an End-to-End test suite. The End-to-End suite uses the behave framework (https://github.com/behave/behave). To execute the tests you need to first build the binary, install behave and then execute behave.
cargo build
cd end-to-end-tests/
virtualenv -p python3 .venv
pip install -r requirements.txt
behave