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
usechange provides a short alias and command shortcuts:
usechangeandchangeare equivalent.changelogalso supports thelogalias.
Install usechange with uv (recommended)
uv add usechange
Install with pip (alternative)
pip install usechange
Generate a changelog
change log --write
Interactive release workflow
change release
Sync the latest release to GitHub
change github release
Interactive changelog preview
Example prompt for selecting optional changelog flags:
Select optional flags (space to select, enter to confirm):
> [ ] --from - Start commit reference
[ ] --to - End commit reference
[ ] --dir - Path to a git repository
[ ] --clean [bool] - Ensure working directory is clean
[ ] --output - Changelog file to write
[ ] --write [bool] - Write changelog to CHANGELOG.md
[ ] --no-output [bool] - Do not write a changelog file
[ ] --noAuthors [bool] - Skip contributors section
[ ] --noDate [bool] - Omit date from header
[ ] --noEmojis [bool] - Omit emojis from headers
[ ] --hideAuthorEmail [bool] - Hide author email if no username is found
[ ] --bump [bool] - Determine and update version
[ ] -r - Release as a specific version
[ ] --release [bool] - Bump, tag, and release
[ ] --no-commit [bool] - Skip release commit
[ ] --no-tag [bool] - Skip release tag
[ ] --push [bool] - Push commits and tags
[ ] --no-github [bool] - Skip GitHub release sync
[ ] --publish [bool] - Publish after generating
[ ] --publishTag - Publish with a custom tag
[ ] --nameSuffix - Append suffix to package name
[ ] --versionSuffix - Append suffix to version
[ ] --canary - Shortcut for --bump and --versionSuffix
[ ] --major [bool] - Force major bump
[ ] --minor [bool] - Force minor bump
[ ] --patch [bool] - Force patch bump
[ ] --premajor - Force premajor bump
[ ] --preminor - Force preminor bump
[ ] --prepatch - Force prepatch bump
[ ] --prerelease - Force prerelease bump
Press <space>, <tab> for multi-selection and <enter> to accept
Usage
Generate changelog
change log --from v0.1.0 --to HEAD --output CHANGELOG.md
Version bumping
change log --bump --write
change log --major --write
Release workflow
change release --yes
GitHub release sync
change github release 0.2.0
change gh 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
Metadata
Release files for usechange 0.1.46
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| usechange-0.1.46.tar.gz | 18.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| usechange-0.1.46-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 45.0 kB
Release files / usechange-0.1.46.tar.gz
| Download URL | usechange-0.1.46.tar.gz |
|---|---|
| Size | 18.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27c0b6e16b9fd919c37070abe4fa6122153b67ebfa1846075b46e3eedbaa9f30
|
|
BLAKE2b-256 checksum How to use checksums |
ab09e054a2f86021146de12805f7936518f57a4cdceb23ffca31c3a8bb54cd63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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 / usechange-0.1.46-py3-none-any.whl
| Download URL | usechange-0.1.46-py3-none-any.whl |
|---|---|
| Size | 26.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6cb91502e49f2fe347a0d237ffa1471a0e759caddaff007a7a1cecbe4cd206b
|
|
BLAKE2b-256 checksum How to use checksums |
4614eb4eae469985307b9c18edbcd987b3754329c6d4f4116e52974f3b2e20cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","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}
|