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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

changesets-1.1.0-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.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 440514e12b46bd8e840bff444232e50715dcb114fb92a8bb6d46c7430dacdbf0
MD5 a60ba0a6132a5a4acdd3a25f3c641673
BLAKE2b-256 01fd765c7d3557cac9139ea359ac2ec61908537bdf96979002e08e8b429ef829

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d744f137e4a9329306e66f923042ce68e59ab55a4c1b4f90aff2468e539fe277
MD5 c4bbceb07e452e35c96fd4fe2cadbb03
BLAKE2b-256 efd75181c67568c63c77e5afba6ec77bff379900ff6aaaf9dc961ed34bc5b84a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 25066fd52a2235d37f8d69ee06a30e6298435e5c3e3b1c628e13f23b07d20200
MD5 cff43fdc3f09db13afaa68940ca6358a
BLAKE2b-256 fe3893dd6789cd99e03e5bbddc603adf7e9089329c863aadab99628c626d7789

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f77672649ba3a2893c29a17132b938eafbc6244fcedcbe822f7b358bacd10c4e
MD5 2222f80947e779615dd114c5daffc74d
BLAKE2b-256 07a0cffaf5fc0dcdc9835fcdd398b268e88848a3789a016489d9cd63a938e385

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f77bff650e52550fefbdb9438d90451689021be2a52800d81278be6fa330538b
MD5 df17636bc604fcda91603205ab61eb5c
BLAKE2b-256 c32c1cc515c67c4eee8c24052fdd167f3be719cd92d7f14f67ffd4861d9f892e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.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? 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.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52b984b34079399ae134b2c92fd3cdfd12a537cffb4bf7abbb5e54758a7119ef
MD5 4c303beb774fbb5339a6c329ae2718d7
BLAKE2b-256 ff715d18e3afbb4c96253e52cf1a9cd8ada5e111d5c4dfb08482c62b685cc3c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: changesets-1.1.0-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.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ddbec3f8f7bf09140a0d37d1915f5a6164f7fb8fba5779be942bc8b0534662e7
MD5 4eaeb4fa29045a37216df4d893d1b518
BLAKE2b-256 f84a81ab9a848d7d9e44bef6b5f72a49eddf91815cfeb130e44bc5f291ee2dfe

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