2019-11-17 15:42:31 +00:00
|
|
|
# sv4git
|
2019-11-17 16:37:41 +00:00
|
|
|
|
2019-11-17 15:42:31 +00:00
|
|
|
Semantic version for git
|
2019-11-17 16:37:41 +00:00
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
|
|
### Installing
|
|
|
|
|
2019-12-05 00:10:16 +00:00
|
|
|
download the latest release and add the binary on your path
|
2019-11-17 16:37:41 +00:00
|
|
|
|
2019-12-05 00:10:16 +00:00
|
|
|
### Config
|
|
|
|
|
|
|
|
you can config using the environment variables
|
|
|
|
|
2020-08-28 02:04:33 +00:00
|
|
|
| Variable | description | default |
|
|
|
|
| ------------------------------ | ---------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
|
|
| MAJOR_VERSION_TYPES | types used to bump major version | |
|
|
|
|
| MINOR_VERSION_TYPES | types used to bump minor version | feat |
|
|
|
|
| PATCH_VERSION_TYPES | types used to bump patch version | build,ci,docs,fix,perf,refactor,style,test |
|
|
|
|
| INCLUDE_UNKNOWN_TYPE_AS_PATCH | force patch bump on unknown type | true |
|
|
|
|
| BRAKING_CHANGE_PREFIXES | list of prefixes that will be used to identify a breaking change | BREAKING CHANGE:,BREAKING CHANGES: |
|
|
|
|
| ISSUEID_PREFIXES | list of prefixes that will be used to identify an issue id | jira:,JIRA:,Jira: |
|
|
|
|
| TAG_PATTERN | tag version pattern | %d.%d.%d |
|
|
|
|
| RELEASE_NOTES_TAGS | release notes headers for each visible type | fix:Bug Fixes,feat:Features |
|
|
|
|
| VALIDATE_MESSAGE_SKIP_BRANCHES | ignore branches from this list on validate commit message | master,develop |
|
|
|
|
| COMMIT_MESSAGE_TYPES | list of valid commit types for commit message | build,ci,chore,docs,feat,fix,perf,refactor,revert,style,test |
|
2019-12-05 00:10:16 +00:00
|
|
|
|
|
|
|
### Running
|
2019-11-17 16:37:41 +00:00
|
|
|
|
|
|
|
run `git-sv` to get the list of available parameters
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git-sv
|
|
|
|
```
|
|
|
|
|
2019-12-05 00:10:16 +00:00
|
|
|
#### Run as git command
|
2019-11-17 16:37:41 +00:00
|
|
|
|
|
|
|
if `git-sv` is configured on your path, you can use it like a git command
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git sv
|
|
|
|
git sv current-version
|
|
|
|
git sv next-version
|
|
|
|
```
|
|
|
|
|
2019-12-05 00:10:16 +00:00
|
|
|
#### Usage
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2020-02-01 22:02:03 +00:00
|
|
|
use `--help` or `-h` to get usage information, dont forget that some commands have unique options too
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2020-02-01 22:02:03 +00:00
|
|
|
```bash
|
|
|
|
# sv help
|
|
|
|
git-sv -h
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2020-02-01 22:02:03 +00:00
|
|
|
# sv release-notes command help
|
|
|
|
git-sv rn -h
|
|
|
|
```
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2020-02-01 22:02:03 +00:00
|
|
|
##### Available commands
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2020-08-28 02:12:22 +00:00
|
|
|
| Variable | description | has options |
|
|
|
|
| ---------------------------- | ------------------------------------------------------------- | :----------------: |
|
|
|
|
| current-version, cv | get last released version from git | :x: |
|
|
|
|
| next-version, nv | generate the next version based on git commit messages | :x: |
|
|
|
|
| commit-log, cl | list all commit logs since last version as jsons | :heavy_check_mark: |
|
|
|
|
| release-notes, rn | generate release notes | :heavy_check_mark: |
|
|
|
|
| changelog, cgl | generate changelog | :heavy_check_mark: |
|
|
|
|
| tag, tg | generate tag with version based on git commit messages | :x: |
|
|
|
|
| validate-commit-message, vcm | use as prepare-commit-message hook to validate commit message | :heavy_check_mark: |
|
|
|
|
| help, h | Shows a list of commands or help for one command | :x: |
|
2019-12-04 23:57:05 +00:00
|
|
|
|
2019-11-17 16:37:41 +00:00
|
|
|
## Development
|
|
|
|
|
|
|
|
### Makefile
|
|
|
|
|
|
|
|
run `make` to get the list of available actions
|
|
|
|
|
|
|
|
```bash
|
|
|
|
make
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Make configs
|
|
|
|
|
2020-08-28 02:04:33 +00:00
|
|
|
| Variable | description |
|
|
|
|
| ---------- | ---------------------- |
|
|
|
|
| BUILDOS | build OS |
|
|
|
|
| BUILDARCH | build arch |
|
|
|
|
| ECHOFLAGS | flags used on echo |
|
|
|
|
| BUILDENVS | var envs used on build |
|
|
|
|
| BUILDFLAGS | flags used on build |
|
|
|
|
|
|
|
|
| Parameters | description |
|
|
|
|
| ---------- | ----------------------------------- |
|
|
|
|
| args | parameters that will be used on run |
|
2019-11-17 16:37:41 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
#variables
|
|
|
|
BUILDOS="linux" BUILDARCH="amd64" make build
|
|
|
|
|
|
|
|
#parameters
|
|
|
|
make run args="-h"
|
|
|
|
```
|
|
|
|
|
|
|
|
### Build
|
|
|
|
|
|
|
|
```bash
|
|
|
|
make build
|
|
|
|
```
|
|
|
|
|
|
|
|
the binary will be created on `bin/$BUILDOS_$BUILDARCH/git-sv`
|
|
|
|
|
|
|
|
### Tests
|
|
|
|
|
|
|
|
```bash
|
|
|
|
make test
|
|
|
|
```
|
|
|
|
|
|
|
|
### Run
|
|
|
|
|
|
|
|
```bash
|
|
|
|
#without args
|
|
|
|
make run
|
|
|
|
|
|
|
|
#with args
|
|
|
|
make run args="-h"
|
|
|
|
```
|