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.0-py3-none-win_amd64.whl (42.5 MB view details)

Uploaded Python 3Windows x86-64

changesets-1.0.0-py3-none-musllinux_1_2_x86_64.whl (37.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

changesets-1.0.0-py3-none-musllinux_1_2_aarch64.whl (37.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

changesets-1.0.0-py3-none-manylinux_2_17_x86_64.whl (40.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

changesets-1.0.0-py3-none-manylinux_2_17_aarch64.whl (40.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

changesets-1.0.0-py3-none-macosx_10_9_x86_64.whl (25.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 42.5 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.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9e3f023c0e0fe5448bfc58a8d2c4e2fb0d109b13bb54cca9ae699096d0d075cc
MD5 4f5c866c0bd419cb0873d1c444825ec1
BLAKE2b-256 ec1167ff491797147cc53d3cfbd282b348dcc3b4c9926e11fe11ae9173e548bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 37.6 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.0.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a57736839354055f5c2173956543cd14d09032af93635e99786e41c656ac7e89
MD5 4e7923959e95e04ec534e5232b122fae
BLAKE2b-256 ee15ef37e3818e0779adca923c1a8c4f3ab233df886b8c57ba78c539ea284de7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 37.6 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.0.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 78726df597fbe3a90fc05b8de0e80d94cd45734e2b6eedf77c2de040b4572c3a
MD5 f45da333a520781d9fa6995640a07224
BLAKE2b-256 d4a605418c1f0be40bb8a7796d340669afc11aa936616b0b140633327a88f703

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-manylinux_2_17_x86_64.whl
  • Upload date:
  • Size: 40.0 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.0.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 84772704173e52f69da32ea92c8c9d60d157facc64a7421b081b2ed5258ab810
MD5 80ee413b9583b006bfd26b53b5670699
BLAKE2b-256 4b0453b96ef5b491d15ed422280b46dd35db47bc1c3f0d01f710a7e66006d25a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-manylinux_2_17_aarch64.whl
  • Upload date:
  • Size: 40.0 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.0.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 70077ad588d0d1a2061a18e23bd381c78a41b04a3a9ee965098ff69be84893ef
MD5 12a1f3b1c6325ee5c539d16201e8e3e3
BLAKE2b-256 c7fe2034d88077e2a502e620a7bccabd3a83c67d00acfa02c9223b4e30003282

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-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.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b674c54eb8ecc731ebf3bc6ada05014cb4930e0303085d751d77b894e143b9e
MD5 4ac1fb65d1018508fe5ba2e28397a2b7
BLAKE2b-256 8bbe841925da467e185de1aaedd9cd9b12d041ce81e1d4c59e23a5b97d089215

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.0.0-py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 25.0 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.0.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cd0934c1b5d63d8d9477137ec24ac8d9fe3e21d3626afc04eada7627213c974c
MD5 67d481e7340fb183de220d49ef27a784
BLAKE2b-256 7574df96c8114d807a9ca665afbb78c63e95d7103d1703d195f0bbb74dae9ab4

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