very_good_cli icon indicating copy to clipboard operation
very_good_cli copied to clipboard

feat: very_good changelog

Open orestesgaolin opened this issue 3 years ago • 0 comments

Description

As part of the CLI it would be super convenient to have changelog action that would generate a simple changelog, similar to conventional-changelog.

Below you'll find some examples of how I imagine this to work. There would be ways to:

  • set start and end commit, start-at would be either a required parameter to not handle this logic, or by default would grab the whole history
  • set format (plain-text, markdown, json?)
  • include types of commits
  • group entries by type
  • scope the changelog using conv-commits scope

Nice to have:

  • grouping the entires by tags e.g. if there are 0.0.1, 0.0.2, 1.0.0, 2.0.0 then this would be 4 sections in the changelog

Usage

very_good changelog --start-at bfed91f6 --end-at f8a987b3 --scope my_package --format plain-text

Expected output

feat(my_package): add some cool feature (2022-05-11)
fix(my_package): don't cause this super annoying crash (2022-05-10)
refactor(my_package): improve doing this small thing (2022-05-01)

note: this is similar to command: git log --pretty="%s (%as)" $PREVIOUS_COMMIT...HEAD


very_good changelog --include feat,fix,refactor,chore,ci --start-at bfed91f6 --format markdown

Expected output

- chore: fix formatting [(2022-05-12)](https://github.com...)
- feat(my_package): add some cool feature [(2022-05-11)](https://github.com...)
- ci: improve the build process [(2022-05-11)](https://github.com...)
- fix(my_package): don't cause this super annoying crash  [(2022-05-11)](https://github.com...)
- fix(other_package): change  [(2022-05-11)](https://github.com...)
- refactor(my_package): improve doing this small thing  [(2022-05-11)](https://github.com...)

very_good changelog --start-at bfed91f6 --format markdown --group true

Expected output

## Features

- add some cool feature to the app [(2022-05-11)](https://github.com...)
- **my_package**: add some cool feature [(2022-05-11)](https://github.com...)

## Bug fixes

- **my_package**: don't cause this super annoying crash  [(2022-05-11)](https://github.com...)
- **other_package**: change how something is handled [(2022-05-11)](https://github.com...)

# Refactorings

- **my_package**: improve doing this small thing  [(2022-05-11)](https://github.com...)

orestesgaolin avatar May 10 '22 09:05 orestesgaolin