Skip to main content

Python package allowing you to manage your CHANGELOG.md files

Project description

(Keep a) Changelog Manager

CLI and Python library for managing CHANGELOG.md files that follow the Keep a Changelog format.

Fork of keepachangelog-manager, originally mostly written by KevinDeJong at TomTom International.

gif

Install

uv tool install keepachangelog-manager-fork

The package name on PyPI is keepachangelog-manager-fork. The installed commands is changelogmanager with legacy alias of keepachangelog-manager.

Supports precommit, cli, and GitHub actions workflows.

What it does

keepachangelog-manager helps you:

  • create and validate changelogs
  • add, edit, list, and remove [Unreleased] entries
  • infer the next SemVer release from change types
  • release [Unreleased] with an optional confirmation guard
  • seed [Unreleased] from git history using Conventional Commit subjects
  • export changelogs as JSON, YAML, or HTML
  • export a bundled CLI skill for Copilot or Claude
  • create or update GitHub releases
  • work with multi-component repositories via config files
  • script the CLI with --dry-run, --quiet, --json, --info, and --verbose
  • use an optional Tkinter GUI for common workflows

Commands

create
version
validate
release
to-json
to-yaml
to-html
add
remove
edit
github-release
from-commits
skill export
gui

Quick examples

Add an entry:

changelogmanager add --change-type added --message "Document the new release flow"

Edit or remove an existing [Unreleased] entry:

changelogmanager remove --list
changelogmanager edit --change-type added --index 0 --message "Document the guarded release flow"
changelogmanager remove --change-type added --index 0

Seed [Unreleased] from commit history:

changelogmanager from-commits

Validate and autofix common issues:

changelogmanager validate --fix

Release non-interactively:

changelogmanager release --yes

Export structured output:

changelogmanager to-json
changelogmanager to-yaml
changelogmanager to-html

Export the bundled CLI skill:

changelogmanager skill export

Machine-readable mode for scripts:

changelogmanager --json version --reference future
changelogmanager --quiet validate
changelogmanager --info validate
changelogmanager --verbose from-commits --dry-run

--info and --verbose enable stdlib runtime logging on stderr for diagnostics. --verbose is the more detailed level and implies --info. Existing validation diagnostics still use the configured LLVM or GitHub Actions annotation format.

Configuration

Use --config and --component for multi-component repositories:

project:
  components:
    - name: Service
      changelog: service/CHANGELOG.md
    - name: Client
      changelog: client/CHANGELOG.md
  commits:
    style: conventional
  versioning:
    scheme: semver
  validation:
    enforce_preamble: false
changelogmanager --config .changelogmanager.yml --component Service validate
changelogmanager config
changelogmanager config init
changelogmanager skill export

If --config is omitted, the CLI auto-detects .changelogmanager.yml, .changelogmanager.yaml, changelogmanager.yml, changelogmanager.yaml, or [tool.changelogmanager] in pyproject.toml from the current directory.

changelogmanager config init is the quickest way to bootstrap config. It defaults to pyproject.toml, Conventional Commits, and semver, and re-running it updates the active config instead of starting from scratch.

Optional desktop GUI

changelogmanager gui

The GUI currently wraps the common commands create, version, validate, release, to-json, add, and github-release.

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keepachangelog_manager_fork-5.0.0.tar.gz (580.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keepachangelog_manager_fork-5.0.0-py3-none-any.whl (52.0 kB view details)

Uploaded Python 3

File details

Details for the file keepachangelog_manager_fork-5.0.0.tar.gz.

File metadata

File hashes

Hashes for keepachangelog_manager_fork-5.0.0.tar.gz
Algorithm Hash digest
SHA256 f0107f23ceae3f0dc60a627e4e7381e468c84faf092f3fafa9c1e437600d2c4c
MD5 7d1a64478b38ac26b21c1a457492efe8
BLAKE2b-256 e875cc35960dad934781e727c447c3a3adf48479bc955470c3cb1a33d8cf6e6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepachangelog_manager_fork-5.0.0.tar.gz:

Publisher: release.yml on matthewdeanmartin/keepachangelog-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file keepachangelog_manager_fork-5.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for keepachangelog_manager_fork-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f4eafb4e4d8966a4f3e3ee190094b75a64590ebe8dc1b7de0d60550369dd18e
MD5 61e1ef2246a4072249660a8c9e0074ff
BLAKE2b-256 8ed5d59d67a267b73639f847ebf71d8d88e42efabbd41bc6372972dbc908134c

See more details on using hashes here.

Provenance

The following attestation bundles were made for keepachangelog_manager_fork-5.0.0-py3-none-any.whl:

Publisher: release.yml on matthewdeanmartin/keepachangelog-manager

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page