very_good_cli
very_good_cli copied to clipboard
feat: very_good changelog
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-atwould 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...)