Skip to main content

A CLI tool for managing changelogs in your project

Project description

changelog

Changelog is a CLI tool for managing changelogs. Individual changelog entries are stored as files, eliminating merge conflicts and enabling CI enforcement.

Full documentation

Installation

npm

Install globally:

npm install -g @d-dev/changelog

Or as a dev dependency:

npm install -D @d-dev/changelog

Or run with npx

npx @d-dev/changelog

PyPI

Install with pip:

pip install changesets

Install with uv.

uv tool install changesets

Or as a dev dependency

uv add --dev changesets

Or run directly with uvx (no install required):

uvx --from changesets changelog <command>

GitHub Releases

Download pre-built binaries from GitHub Releases.

Available platforms:

Platform Architecture
Linux x64, arm64
Linux (musl) x64, arm64
macOS x64, arm64
Windows x64

Initialize

Run changelog init in your project root to set up the .changelog directory:

changelog init

You'll be prompted for:

? Current version: 0.1.0
? Changelog file path: CHANGELOG.md
? Main git branch: main
Enter post-apply commands (leave blank to finish):
? Post-apply command: npm install
? Post-apply command (1 added):
✓ Initialized .changelog directory

This creates the following structure:

.changelog/
├── config.yaml
├── next/
│   └── .gitkeep
├── releases/
│   └── .gitkeep
└── templates/
    ├── header.md
    ├── body.eta
    └── footer.md

Add an Entry

When you make a notable change, run changelog add:

changelog add

Select a change type and provide a description:

? Change type: Add - Add a new feature. Minor version bump.
? Description: Support for YAML configuration files
✓ Added changelog entry: .changelog/next/1740000000000.yaml
✓ Updated CHANGELOG.md

A YAML file is created in .changelog/next/:

timestamp: 1740000000000
type: Add
description: Support for YAML configuration files

The changelog file is automatically regenerated with an Unreleased section so you can preview changes at any time.

Apply a Release

When you're ready to release, run changelog apply:

changelog apply

This computes the version bump, creates the release, and updates your project:

✓ Updated version in package.json to 0.2.0
✓ Applied version 0.2.0
✓ Updated CHANGELOG.md
Running post-apply command: npm install
? Commit changes and tag the commit? Yes
✓ Committed and tagged version 0.2.0

The version bump is determined by the change types present:

Change Types Bump
Change, Remove Major
Add, Deprecate Minor
Fix Patch
Internal None

After applying, push the commit and tag:

git push origin main --follow-tags

Full 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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

changesets-1.0.2-py3-none-win_amd64.whl (42.6 MB view details)

Uploaded Python 3Windows x86-64

changesets-1.0.2-py3-none-musllinux_1_2_x86_64.whl (37.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

changesets-1.0.2-py3-none-musllinux_1_2_aarch64.whl (37.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

changesets-1.0.2-py3-none-manylinux_2_17_x86_64.whl (40.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

changesets-1.0.2-py3-none-manylinux_2_17_aarch64.whl (40.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

changesets-1.0.2-py3-none-macosx_11_0_arm64.whl (23.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

changesets-1.0.2-py3-none-macosx_10_9_x86_64.whl (25.1 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file changesets-1.0.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 42.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 05b050a02d230f344e59bc0715ad44f48e45f3f20aaeaf1dbd4c8a8492774c14
MD5 35022f58d0409e763ed66504ef9713ba
BLAKE2b-256 06fe9d2aba4f7aea9928e519294dc0767d38ea0831c8064cca5b1d1c73e44684

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 37.7 MB
  • Tags: Python 3, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5be8b10959cfa1b8af00482d0dd695970489ac46bf4b41f1a621b632fc2ab00d
MD5 e94077ffc65df04f909f87b5e87afd22
BLAKE2b-256 3c5cc456afde023f544ab55225d45f96bdfe799548ebe59dd7f2c2cc46a357c5

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 37.7 MB
  • Tags: Python 3, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e16ccddd45ff971fdf041c34ae4b9da94098258d1e5e80b5ee70ed41293516c5
MD5 483fdc7479b1a9dcba82b07ea7805a62
BLAKE2b-256 7e99b20e8bcb6e367bbf438d311b4089db4accb3f4c9c02e4b15f93f3e88c175

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-manylinux_2_17_x86_64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-manylinux_2_17_x86_64.whl
  • Upload date:
  • Size: 40.4 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cf2e9580fa16bf2aeaf3b941c4798309293b023181fad07e3e4273ca20882e3a
MD5 698c2a6b7370605cc6e6b77eaf9f84cc
BLAKE2b-256 44f9809d022780131502b4e93dda87bde7ac7590d7575ef100755ec9ea9bbf65

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-manylinux_2_17_aarch64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-manylinux_2_17_aarch64.whl
  • Upload date:
  • Size: 40.4 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a261ecbe083fb4e89d45065a5c41793cada1c8076aece48bb322e6ff2028b1f2
MD5 b01eea45024c253d9e8ac4a53a5b9acc
BLAKE2b-256 fb98c2ce91ff8d923e0c45cb041830763290ac00e47497b163bf40bdf44caf71

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 23.1 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0cd85e08eb5eb4b2b1bb2287c22a803529ee982bbd9efc0818012db3a5ea347
MD5 285db422f593883f5ee4229a1791a424
BLAKE2b-256 d2df4515ab0ce020f870f2a8d0c01ca3c7f684cb38d9964243c49d89299d4d13

See more details on using hashes here.

File details

Details for the file changesets-1.0.2-py3-none-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: changesets-1.0.2-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 25.1 MB
  • Tags: Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for changesets-1.0.2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e6a998ead2c3da5ca03c7e40b66da34709904509af7fdb5164b149d536992215
MD5 58575a56a7b5da9a3f830695f0156e98
BLAKE2b-256 da2a04c11877642466dc8ebeb9c89487bfa63c1c658b207b69a721faf1b10da1

See more details on using hashes here.

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