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.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80daff032a6dda2d5df5f0738da0f261b566471c9da0944199ce38be7cf4be1d
|
|
| MD5 |
4ac393d2277f54dfee1047a942b6c027
|
|
| BLAKE2b-256 |
bdc7f214f458b3f3ddc29295470ddf5dfd7b9afff98382264e6787651303cf05
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2db89944ed34ac26c57b22ba705ad04e0562788e3baf2bde770bf5dd9c104af
|
|
| MD5 |
792bfb695c6bea6551913526deb88341
|
|
| BLAKE2b-256 |
2009b8f0da12d6e8b14ec1a7d4d6299293b5833756c113b6047a715eaf554afe
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5655a01a96bda52dd589e771560fd627ce9aaed533f9a7f25ed976ef9128f7d1
|
|
| MD5 |
b6e2f3584ce3587155ba7340a0445274
|
|
| BLAKE2b-256 |
a5ef5e84570dc059541fe949d16b632767053c3b42a12cfe05623606a2e75b79
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b7fa268496a5cc282cab9cf0b4a435c10960878a9840683556032dcaf6d3171
|
|
| MD5 |
42e5fdb5e149427e826af48ac7d27b81
|
|
| BLAKE2b-256 |
a45e807be076bcefe183e7ce67f75827b9de5e16840c64f8240db004025710fd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0657723eadca785b42fb02a29df02c241e09ec6c0d53d0695e39498c8baec46
|
|
| MD5 |
736233f5dd1ba917c5536f2ddeb6360f
|
|
| BLAKE2b-256 |
7e833d7c8b17e1a01b38e87c393e4b83de0cd970e588df38426c8c0fef5514f3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f10a34a26d1a9cbb16074328416feb9ffb4e881119f195b1a885310c5eabdc36
|
|
| MD5 |
2ba816cf2f4bc004fddd738f12dbb6ca
|
|
| BLAKE2b-256 |
7e782efaf1ddf2adc25e01c31fb4e5360cb321eda9029f10ec187793b9af3f5d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6641c7c3df4d203fac09afb7815b56277ea9bb4d207d5b1da86543bd8cd9844e
|
|
| MD5 |
ba9132800db1f5b3c3c90c65e78b5d5c
|
|
| BLAKE2b-256 |
a65c80a390e7f918c4367f3d45f5e7e982876edf2bf68d53cfcad58d8024aa9b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8477462994983db3227f5c7d01235085f137a73462e925cdf75cd583edc43a8d
|
|
| MD5 |
1e208c2035bc47ec7146acb89b260c4a
|
|
| BLAKE2b-256 |
1e9ba6de9e9ab456e90789f59d921bc198fcf01a839f2e076294691306e6b09b
|