Conventional Semantic Versions
Blazingly Fast 🚀 CLI tool for determining the next semantic version for a given repository based on conventional commits and git tags.
⚠️ This is in very early development. I would not recommend you integrate this tool into your project.
Usage
USAGE:
conver [OPTIONS] [PATH]
ARGS:
<PATH> Path to target git repository [default: .]
OPTIONS:
-f, --bump-files Bump the version files with the derived version
-h, --help Print help information
-r, --release Generate final release version
-t, --tag Tag the current commit with the release version
-v, --lead-v Add an optional leading v to the generated version i.e. (v2.1.3)
-V, --version Print version information
Configuration
conventional-semver-rs will look in the root of the repositories directory for a conventional_release.toml file. This configuration will be applied when generating versions of updating version files.
If conventional_release.toml is not found, a default configuration will be loaded.
Default Configuration
= false
[]
= "conventional-semver-rs"
= "conventional-semver-rs@github.com"
Configuration Options
= false # Include optional prefix v in generated version
# Customize the commit signature when bumping files and creating tags
[]
= "conventional-semver-rs"
= "conventional-semver-rs@github.com"
# Describes a file containing the application's version to be updated on release
[[]]
= true # Configure option prefix v for version file
= "version.txt" # Relative path to file
= "" # Token to match before the version
= "" # Token to match after the version
# Cargo.toml example
[[]]
= false
= "Cargo.toml"
= "version = \""
= "\"[^,]"
# Preset example
# presets are for common version files,
# so you don't have to write the regex!
[[]]
= "package.json"
# Currently Supported Presets
# - "Cargo.toml"
# - "package.json"
Pre-release Versions
Pre-release versions are generated when the following conditions are true.
- The current commit is not tagged. (See Rebuilding Release Tags below.)
- The
--releaseoption is not specified. - Structure is
{MAJOR}.{MINOR}.{PATCH}-{COMMITS_SINCE_TAG}-{COMMIT_HASH}- Example:
0.3.0-2-g3229751
- Example:
Release Versions
Release versions are generated when the either of the following conditions are true.
- The current commit is already tagged with a release version.
- The
--releaseoption is specified. - Structure is
{MAJOR}.{MINOR}.{PATCH}- Example:
0.3.0
- Example: