changelog-gen is a CHANGELOG generator, to detect semantic versioning changes
from conventional commits, and generate release tags.
See the docs for more details.
changelog init will generate an empty changelog file if you have not been
maintaining changelogs previously. If you already have a changelog file, it
will be detected.
changelog generate will extract all commits matching the conventional format
since the last release, detect the correct semantic version component to
increment, and generate the correct changelog entry. Depending on
configuration, it will also update release tags in files as well as tagging the
release.
$ git log --oneline
a4e1449 feat: Open changes in editor before confirmation, to allow modification.
c314b6b feat: Block generation if local/remote are out of sync.
2e25deb chore: Relax typer version to 0.X
a95fd80 fix: Handle warning message from bump-my-version if setup.cfg exists
b46d2fe fix: Clean up link generation format in MDWriterUsing the above commits, can generate the following example changelog entry.
# Changelog
## v0.9.2 - 2024-03-08
### Features and Improvements
- Open changes in editor before confirmation, to allow modification. [[#1](https://github.com/NRWLDev/changelog-gen/issues/1)] [[a4e1449](https://github.com/NRWLDev/changelog-gen/commit/a4e1449bf44f370c671cc679d4bf9cfd75e68cbf)]
- Block generation if local/remote are out of sync. [[#2](https://github.com/NRWLDev/changelog-gen/issues/2)] [[c314b6b](https://github.com/NRWLDev/changelog-gen/commit/c314b6b8a32f4ce5c05869f0accd24bb4e6097f2)]
### Bug fixes
- Handle warning message from bump-my-version if setup.cfg exists [[a95fd80](https://github.com/NRWLDev/changelog-gen/commit/a95fd80d939985ab4b51a864676dda234e345d47)]
- Clean up link generation format in MDWriter [[b46d2fe](https://github.com/NRWLDev/changelog-gen/commit/b46d2fe6fba5a170f25dffbf8697868d14a4e73e)]
### Miscellaneous
- Relax typer version to 0.X [[2e25deb](https://github.com/NRWLDev/changelog-gen/commit/2e25deb902710343a0f85f40323762752eef4a45)]Check the discussion here for details on how to update usage to maintain legacy functionality or move over to new features.
pip install changelog-genor clone this repo and install with invoke/uv.
invoke install-devThis project uses pre-commit hooks, please run invoke install-dev after
cloning to install dev dependencies and commit hooks.