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.1.1-py3-none-win_arm64.whl (40.7 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

changesets-1.1.1-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.1.1-py3-none-win_arm64.whl.

File metadata

  • Download URL: changesets-1.1.1-py3-none-win_arm64.whl
  • Upload date:
  • Size: 40.7 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 80daff032a6dda2d5df5f0738da0f261b566471c9da0944199ce38be7cf4be1d
MD5 4ac393d2277f54dfee1047a942b6c027
BLAKE2b-256 bdc7f214f458b3f3ddc29295470ddf5dfd7b9afff98382264e6787651303cf05

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for changesets-1.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e2db89944ed34ac26c57b22ba705ad04e0562788e3baf2bde770bf5dd9c104af
MD5 792bfb695c6bea6551913526deb88341
BLAKE2b-256 2009b8f0da12d6e8b14ec1a7d4d6299293b5833756c113b6047a715eaf554afe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.1-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? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5655a01a96bda52dd589e771560fd627ce9aaed533f9a7f25ed976ef9128f7d1
MD5 b6e2f3584ce3587155ba7340a0445274
BLAKE2b-256 a5ef5e84570dc059541fe949d16b632767053c3b42a12cfe05623606a2e75b79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.1-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? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9b7fa268496a5cc282cab9cf0b4a435c10960878a9840683556032dcaf6d3171
MD5 42e5fdb5e149427e826af48ac7d27b81
BLAKE2b-256 a45e807be076bcefe183e7ce67f75827b9de5e16840c64f8240db004025710fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.1-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? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e0657723eadca785b42fb02a29df02c241e09ec6c0d53d0695e39498c8baec46
MD5 736233f5dd1ba917c5536f2ddeb6360f
BLAKE2b-256 7e833d7c8b17e1a01b38e87c393e4b83de0cd970e588df38426c8c0fef5514f3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.1-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? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f10a34a26d1a9cbb16074328416feb9ffb4e881119f195b1a885310c5eabdc36
MD5 2ba816cf2f4bc004fddd738f12dbb6ca
BLAKE2b-256 7e782efaf1ddf2adc25e01c31fb4e5360cb321eda9029f10ec187793b9af3f5d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for changesets-1.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6641c7c3df4d203fac09afb7815b56277ea9bb4d207d5b1da86543bd8cd9844e
MD5 ba9132800db1f5b3c3c90c65e78b5d5c
BLAKE2b-256 a65c80a390e7f918c4367f3d45f5e7e982876edf2bf68d53cfcad58d8024aa9b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.1-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? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for changesets-1.1.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8477462994983db3227f5c7d01235085f137a73462e925cdf75cd583edc43a8d
MD5 1e208c2035bc47ec7146acb89b260c4a
BLAKE2b-256 1e9ba6de9e9ab456e90789f59d921bc198fcf01a839f2e076294691306e6b09b

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