A CLI tool that generates Debian changelog entries from git history. Intended to be called as the final step before tagging a release.
- Reads the existing
debian/changelogfor the package name and distribution - Finds the most recent git tag and collects commit messages since then
- Runs
svu nextto determine the next version - Formats a new entry conforming to
deb-changelog(5) - Prints to stdout (default) or prepends to the file with
--write
- Go 1.25+
gitsvu
go install github.com/frostyard/gchlog@latest# Preview the new changelog entry (dry-run, default)
gchlog
# Write the entry to debian/changelog
gchlog --write
# Override the version (skips svu)
gchlog --write --version 2.0.0
# Override the distribution
gchlog --write --distribution bookworm
# Specify a different project root
gchlog --dir /path/to/project| Flag | Short | Default | Description |
|---|---|---|---|
--dir |
-d |
. |
Path to the project root |
--write |
-w |
false |
Write to debian/changelog |
--distribution |
inferred | Override target distribution | |
--urgency |
medium |
Override urgency level | |
--version |
svu next |
Override version |
mypackage (1.2.0) unstable; urgency=medium
* feat: add user authentication
* fix: resolve timeout on slow connections
-- Jane Doe <jane@example.com> Thu, 27 Feb 2026 14:30:00 +0000