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
Metadata
Release files for changesets 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| changesets-1.2.0-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| changesets-1.2.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| changesets-1.2.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| changesets-1.2.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| changesets-1.2.0-py3-none-manylinux_2_17_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| changesets-1.2.0-py3-none-manylinux_2_17_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| changesets-1.2.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| changesets-1.2.0-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 278.9 MB
Release files / changesets-1.2.0-py3-none-win_arm64.whl
| Download URL | changesets-1.2.0-py3-none-win_arm64.whl |
|---|---|
| Size | 37.6 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
93974d984bfb7bdb7c6b1661f6ed6b077d1c989fd9a257782a23b00c1abd386b
|
|
BLAKE2b-256 checksum How to use checksums |
f2bf8cf23edbd8bfe9f27032412c5b770803736409d7ff1284e1cf47083bea8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-win_amd64.whl
| Download URL | changesets-1.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 40.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
06ae73feb8575edf02b35b18226874b9779ed8371ca028e16472d90da33bdf70
|
|
BLAKE2b-256 checksum How to use checksums |
399987ab160740bcd9297dd4ed777f8135be42b971ffcc58c0740c14d301b878
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | changesets-1.2.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 34.8 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
7161c431081d4bf58cfa00c211489e0767c8e8be70b56faaac76900240da360a
|
|
BLAKE2b-256 checksum How to use checksums |
131aa30514c1527c3ca9464633bc6c2ca8b55d7140d3dc7c7b7f07b45da779e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | changesets-1.2.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 35.1 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
9df68c93379bbe822a9abfa1787b5d566f9d3491b6380eb3148743c6dba6a457
|
|
BLAKE2b-256 checksum How to use checksums |
cd16738af31695cdb0bc5e6eec8594b4e619930434cef0bde3f3630fc76afa1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-manylinux_2_17_x86_64.whl
| Download URL | changesets-1.2.0-py3-none-manylinux_2_17_x86_64.whl |
|---|---|
| Size | 37.3 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
0967b157e5198eb1856da586a97b6100da5c7da508caa0ef36baa25df96a09a8
|
|
BLAKE2b-256 checksum How to use checksums |
46a759cf29489df180d06a53b2a10b53b07a969a4e3898d06b295a0c29404715
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-manylinux_2_17_aarch64.whl
| Download URL | changesets-1.2.0-py3-none-manylinux_2_17_aarch64.whl |
|---|---|
| Size | 37.8 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
8313d10e4150d578671b36253cc35fc531bda5ddda726aab8fab9aa6f532d30b
|
|
BLAKE2b-256 checksum How to use checksums |
492b261a53fc74b3ca932acb17de1837eab566023bb68ba8fef23bc7c2c5112a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | changesets-1.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 26.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9cb36330d09af246f9434777c5bce1742853df3863b82db2f8e1f6b700f585db
|
|
BLAKE2b-256 checksum How to use checksums |
ed6ded7c5401557acdcd2fb8bf486c79f6433f0250353437b5051e9850b2a2f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|
Release files / changesets-1.2.0-py3-none-macosx_10_9_x86_64.whl
| Download URL | changesets-1.2.0-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 29.0 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
f7159a60eeea2ab26e4c9789f80e250f548cdd1d70812689e98955e40cb66569
|
|
BLAKE2b-256 checksum How to use checksums |
f590c5395f6c160c246458b53409d96bf43da149168943b7e28d868de3d649f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","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}
|