Conventional Commits Next Version

pipeline status pipeline status License: GPL v3

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/).

Why?

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.

Running

conventionalcommitsnext_version reads all the commit messages from HEAD in the current directory until the commit specified by the argument '--from-commit'.

Consecutive

Batch

CICD

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

```

```

Building

The binary and library can be built via cargo.

cargo build

Unit Testing

There are a number of unit tests in the project, they can be ran via cargo.

cargo test

End-to-End Testing

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