Lightweight and configurable semantic-version generator without runtime dependencies (generate version & changelog from git history)
- Configurable to match many different versioning strategies (alpha-beta-game, maven-like, ...)
- Single binary without dependencies (does not need Maven, Gradle, NPM etc.)
Usage: semantic-version [args] <command>
Args:
-build int
(default -1)
-config string
(default "./semanticversion.yaml")
-debug
-git-branch string
-v Print the version info and exit
Commands:
generate-config Generate config file 'semanticversion.yaml'
get-version Get the new release version
get-changelog Get a changelog with all changes since the last release
Download the binary and you are ready to go
You can customize the versioning rules by creating the config file semanticrelease.yaml
in your work directory:
> semantic-release generate-config
Version increment | Prefix | Example |
---|---|---|
Major | break: |
break: Changed API model to v2 |
Minor | feat: |
feat: Added new delete() function |
Patch | fix: |
fix: Fixed add() function |
Build | - | Updated README.md |
Multiple changes can be commited in the same commit message, separated by ;
, e.g.:
break: Changed API model to v2; feat: Added new delete() function;
> semantic-release get-version
Output:
v1.0.3-feat_apimodel.0
> semantic-release get-version
Output:
# BREAKING CHANGES
* Changed API model to v2
# Features
* Added new delete() function
# Fixes
* Fixed add() function
$> make --always-make
$> BUILD_VERSION=1.0.0 make --always-make