| REPOMATIC-LINT-CHANGELOG(1) | REPOMATIC-LINT-CHANGELOG(1) |
repomatic lint-changelog - Check changelog dates against release dates
repomatic lint-changelog [OPTIONS]
Verify that changelog release dates match canonical release dates.
Uses PyPI upload dates as the canonical reference when the project is published to PyPI. Falls back to git tag dates for non-PyPI projects.
PyPI timestamps are immutable and reflect the actual publication date, making them more reliable than git tags which can be recreated.
Also detects orphaned versions: versions that exist as git tags, GitHub releases, or PyPI packages but have no corresponding changelog entry. Orphans cause a non-zero exit code.
Reads pypi-package-history from [tool.repomatic] to fetch releases published under former package names (for renamed projects).
Reads abandoned-versions from [tool.repomatic] to skip "not found on PyPI" warnings for releases that were frozen but never published (skip-and-move-forward releases).
Reads changelog.bullet-word-threshold from [tool.repomatic] to warn, non-fatally, about unreleased changelog bullets longer than that many words. A changelog entry is a release note, not a commit message.
Warns, non-fatally, about a released section holding no entry: a published release heading with nothing under it reads as broken to anyone scanning the notes for that version.
Output symbols:
✓ Dates match
⚠ Version not found on reference source (warning, non-fatal)
✗ Date mismatch (error, fatal)
With --fix, the command also:
- Corrects mismatched dates to match the canonical source.
- Adds a PyPI link admonition under each released version.
- Adds a CAUTION admonition for yanked releases.
- Adds a WARNING admonition for versions not on PyPI.
- Inserts placeholder sections for orphaned versions.
Exit codes:
0 All dates match, or --fix corrected the file.
1 Date mismatch or orphan detected without --fix.
2 Sanity gate refused to rewrite: upstream lookup (PyPI or
GitHub Releases) looks unhealthy and the existing changelog
has substantial coverage that would be silently stripped.
Re-run when the API is reachable.
Check the default changelog.md (auto-detects PyPI package)
repomatic lint\-changelog
Fix dates and add admonitions
repomatic lint\-changelog \-\-fix
Explicit package name
repomatic lint\-changelog \-\-package repomatic
Kevin Deldycke
| 2026-09-14 | 7.15.1.dev0 |