An open API service indexing awesome lists of open source software.

https://github.com/jsnjack/monova

Automatically calculates version of the application based on the commit messages
https://github.com/jsnjack/monova

go golang hacktoberfest versioning

Last synced: 12 months ago
JSON representation

Automatically calculates version of the application based on the commit messages

Awesome Lists containing this project

README

          

monova
=====

### What is it?
monova automatically calculates version of the application based on the commit messages

### How to use?
monova uses format `Major.Minor.Patch` (f.e. `1.11.3`) to calculate the version.
To automatically increase the version of the application, add one of the reserved
words to the commit message.

Check [Makefile](https://github.com/jsnjack/monova/blob/master/Makefile) to see how it could be integrated into the build process

#### Reserved words
##### Major version
- `:M:`
- `:major:`
- `M`

##### Minor version
- `:m:`
- `:minor:`
- `m`

##### Patch version
- `:p:`
- `:patch:`
- `p`

#### Example of the commit message
```bash
$ git commit -m ":m: Add progress bar"
$ git commit -m ":major: Add history flag"
$ git commit -m "p Update help command"
```

#### Overview
```
./monova -h
calculate new version and print it

Usage:
monova [flags]
monova [command]

Available Commands:
checkpoint manually set the version
completion Generate the autocompletion script for the specified shell
help Help about any command
history print the history of versions
reset remove history file

Flags:
-d, --debug enable debug mode
-h, --help help for monova
-v, --version print version and exit
```

#### Using checkpoints
You can force any version by creating a checkpoint. Checkpoint is an empty commit
with specially formatted message:
```bash
$ monova checkpoint 1.0.0
$ git log
01de65a Version:1.0.0 generated by monova
010a56a :m: Add progress bar
73b6a72 :m: Add history flag
270f422 :p: Update help command
```

### How to install

- Using [grm](https://github.com/jsnjack/grm)
```bash
grm install jsnjack/monova
```