Automatic Changelog generator using Jinja2 templates. From git logs to change logs.
-
Jinja2 templates! You get full control over the rendering. Built-in Keep a Changelog and Angular templates (also see Conventional Changelog).
-
Commit styles/conventions parsing. Built-in Angular, Conventional Commit, Atom and basic styles.
-
Git service/provider agnostic, plus references parsing (issues, commits, etc.). Built-in GitHub and Gitlab support.
-
Understands Semantic Versioning: major/minor/patch for versions and commits. Guesses next version based on last commits.
-
Todo:
- Plugin architecture, to support more commit styles and git services.
- Template context injection, to furthermore customize how your changelog will be rendered.
- Easy access to "Breaking Changes" in the templates.
- Update changelog in-place, paired with commits/dates/versions range limitation ability.
With pip
:
pip install git-changelog
With pipx
:
python3.7 -m pip install --user pipx
pipx install git-changelog
usage: git-changelog [-h] [-o OUTPUT] [-s {angular,atom,basic}]
[-t {angular,keepachangelog}] [-v]
REPOSITORY
Command line tool for git-changelog Python package.
positional arguments:
REPOSITORY The repository path, relative or absolute.
optional arguments:
-h, --help Show this help message and exit.
-o OUTPUT, --output OUTPUT
Output to given file. Default: stdout.
-s {angular,atom,basic}, --style {angular,atom,basic}
The commit style to match against.
-t {angular,keepachangelog}, --template {angular,keepachangelog}
The Jinja2 template to use. Prefix with "path:" to
specify the path to a directory containing a file
named "changelog.md".
-v, --version Show the current version of the program and exit.