Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/fabienjuif/gitmoji-changelog-rust

Do you use gitmoji? Then generate your changelog with this app!
https://github.com/fabienjuif/gitmoji-changelog-rust

changelog emoji git gitmoji gitmoji-changelog nantes rust

Last synced: about 3 hours ago
JSON representation

Do you use gitmoji? Then generate your changelog with this app!

Awesome Lists containing this project

README

        

# gitmoji-changelog-rust
> Do you use gitmoji? Then generate your changelog with this app!

This is a Rust version of [gitmoji-changelog](https://github.com/frinyvonnick/gitmoji-changelog).
















[documentation]
[repository]



## Why
I was sad about the space it takes in a Docker container with the NodeJS version and I am learning Rust: so I was curious and it helps me have a little Rust CLI project to play with.

## Try it
### With Docker 🐳!
```sh
## try it
docker run --rm -v ${PWD}:/repo fabienjuif/gitmoji-changelog

## to see which options you can use:
docker run --rm -v ${PWD}:/repo fabienjuif/gitmoji-changelog --help
```

### With cargo
```sh
## install it
cargo install gitmoji-changelog

# maybe you should reset your env here (relaunch your terminal or type `zsh` (or `bash`))

## try it
gitmoji-changelog .

## to see which options you can use:
gitmoji-changelog --help
```

## Roadmap
For now, this project is just a test I do.
But if I (or you) want to push this further:
- [x] List commits betweens 2 hashes
- [x] Group commits by "code"
- [x] Group commits by version
- [x] Create a markdown
- [x] Create an incremental markdown
- [x] Detect which tags to start from
- [x] Add author
- [ ] Group similar commits
- [ ] Links to github

This is a lot of work and I this is surely not worh it!

## Commands
This project use a `Makefile`, here are the main targets:
- `package`: build the docker image
- `ci`: build the project (dev mode) and check clippy and rustfmt

You can still use cargo if you want to, eg building the release version with: `cargo build --release`