gitchangelog
gitchangelog generates a changelog thanks to git log.
What it is and what it does
gitchangelog reads your git commit history and generates a formatted changelog by parsing commit messages according to rules you define in a configuration file. It classifies commits into sections (New, Fix, Changes, etc.), filters by regex patterns, and renders output using your choice of template engine or built-in formats. The tool supports both incremental and full changelog generation, handles merge/rebase workflows, and can extract structured data from commit trailers like Co-Authored-By.
The package installs as a command-line tool with no runtime dependencies, making it lightweight to deploy. It comes with example templates and a reference configuration file to get started quickly. You can also use it as a standalone executable without installing the full package, though the standalone mode requires you to provide all configuration values explicitly.
Use it for:
- Generate release notes automatically from git commits for each version tag
- Classify and organize commits into semantic sections for better changelog readability
- Create changelogs in multiple formats (ReStructuredText, HTML, Markdown) from the same commit history
- Filter out internal or development commits from user-facing changelogs using regex rules
- Maintain incremental changelogs for continuous integration workflows without regenerating the entire history
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates a formatted changelog from git commit history, filtering and classifying commits according to configurable rules and templates.
Yes, if you need a lightweight, zero-dependency changelog generator and can tolerate that the project is no longer maintained. The tool is stable and works for straightforward use cases, but do not expect fixes for edge cases or compatibility issues with very recent git or Python versions. Consider it suitable for established projects with stable workflows, not for bleeding-edge setups.
Install
gitchangelog on PyPI
pip
pip install gitchangeloguv
uv add gitchangelogpoetry
poetry add gitchangelogInstalling gitchangelog
Before you install
Low install friction with no runtime dependencies. However, the project is abandoned as of 2022 with no updates for nearly 3 years, so expect no bug fixes or maintenance.
License in practice
BSD 3-Clause License is permissive and poses no restrictions on use, modification, or redistribution in proprietary or open-source contexts.
Quickstart
pip install gitchangelog
# In your git repository root, create .gitchangelog.rc with your config,
# then run:
gitchangelog > CHANGELOG.rst
Requires git to be installed and accessible in PATH; the repository must have at least one commit and ideally git tags for version markers.
Verify before relying
- Whether the tool still works reliably with modern git versions and Python 3.7+
- Current state of Windows compatibility mentioned as incomplete in the description
- Whether template engines (mako, mustache) are optional or required
Package facts
| License | BSD 3-Clause License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,793 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 92,773/month — #13,427 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gitchangelog-3.0.4-py2.py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
git-cliffgit-cliff generates changelog files from Git…
unclear · top 15,000 on PyPI
git-changelogGenerates changelogs automatically from git…
permissive · top 15,000 on PyPI
hatch-regex-commitA Hatch plugin that automatically creates Git…
permissive · top 15,000 on PyPI
changelogA Sphinx extension that generates formatted…
permissive · top 15,000 on PyPI
ghstackghstack submits stacks of local Git commits to…
permissive · top 15,000 on PyPI
bump2versionA command-line tool that automates version…
permissive · top 5,000 on PyPI
shyamlCommand-line tool for querying and extracting…
permissive · top 5,000 on PyPI
commitlintLints commit messages against the Conventional…
copyleft · top 15,000 on PyPI
pystachePystache renders Mustache templates—a…
permissive · top 5,000 on PyPI
commit-checkValidates Git commit messages, branch names,…
permissive · top 15,000 on PyPI