Generate Beautiful Changelogs using Conventional Commits
Project description
Table of Contents
About
usechange is a Python CLI for generating changelogs and release notes from Conventional Commits. It reads git history between refs, groups commits by type, renders Markdown release notes, and can update version numbers based on semantic versioning rules.
It gives you:
- Changelog generation - Render release notes and optionally write to CHANGELOG.md.
- Semver bumping - Determine version bumps from commit types and breaking changes.
- Release workflows - Tag and publish using uv and gh.
- GitHub sync - Sync release notes to GitHub releases.
- Repo metadata - Create commit and compare links automatically.
Quick Start
Install usechange with uv (recommended)
uv add usechange
Install with pip (alternative)
pip install usechange
Generate a changelog
usechange changelog --write
Sync the latest release to GitHub
usechange github release
Usage
Generate changelog
usechange changelog --from v0.1.0 --to HEAD --output CHANGELOG.md
Version bumping
usechange changelog --bump --write
usechange changelog --major --write
Release workflow
usechange release --yes
GitHub release sync
usechange github release 0.2.0
usechange github release all
Configuration
usechange reads configuration from one of the following:
- changelog.config.json
- .changelogrc
- changelog.config.toml
- pyproject.toml under [tool.changelog]
Development
Common tasks:
uv run poe test
uv run poe lint
uv run poe format
uv run poe typecheck
uv run poe clean-full
Contributing
Quick workflow:
- Fork and branch:
git checkout -b feature/name - Make changes
- Run checks:
uv run poe clean-full - Commit and push
- Open a Pull Request
License
License not yet specified in this repository.
Built by thememium
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 Distribution
Built Distribution
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 usechange-0.1.11.tar.gz.
File metadata
- Download URL: usechange-0.1.11.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68b51d3c7fe82a4f3fe548dab4717cd57e82d127126e6c3cca96b94a9af65f5
|
|
| MD5 |
0a417a263401c622f1b79be254bbbfcc
|
|
| BLAKE2b-256 |
da57c28e37359ffbde9ec992c8087475794d7f0a1cd87b2f64d300a16d50d1ce
|
File details
Details for the file usechange-0.1.11-py3-none-any.whl.
File metadata
- Download URL: usechange-0.1.11-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b089359ce986fb825e9510f0c385baeb8f0b24e6126fb28d29e32f6706174f8d
|
|
| MD5 |
e4d25c2985b67866d3d7743a0b0113e0
|
|
| BLAKE2b-256 |
d6f27fbc804e66e1804a8b6d76368f7d21aa048e0c359b6d3a6f5baab8e3cae8
|