CLI tool for helping to manage release processes.
Project description
releez
releez is a CLI tool for managing semantic versioned releases. It automates
version bumping, changelog generation, release PRs, and git tags — powered by
git-cliff under the hood.
Full documentation at hotdog-werx.github.io/releez
uv tool install releez
Commands
releez release start # bump version, update changelog, open PR
releez release preview # print what would be released
releez release notes # print unreleased changelog section
releez release tag # create git tags after merging the release PR
releez version artifact # compute semver/docker/pep440 versions for CI
releez changelog regenerate # rebuild the full CHANGELOG from git history
Common flags: --bump auto|patch|minor|major, --base <branch>, --dry-run,
--alias-versions none|major|minor.
For monorepo projects, add --project <name> (repeatable) or --all.
Monorepo support
Configure multiple independently-versioned projects in your root
pyproject.toml:
[tool.releez]
base-branch = "main"
[[tool.releez.projects]]
name = "core"
path = "packages/core"
tag-prefix = "core-"
changelog-path = "CHANGELOG.md"
[[tool.releez.projects]]
name = "ui"
path = "packages/ui"
tag-prefix = "ui-"
changelog-path = "CHANGELOG.md"
Each project gets its own changelog, release branch, PR, and tags (e.g.
core-1.2.3, core-v1). releez auto-detects which projects have unreleased
changes.
See the Monorepo Setup Guide for full configuration, change detection, uv workspace integration, and CI patterns.
Configuration
Precedence (highest first): CLI flags → RELEEZ_* env vars → releez.toml →
pyproject.toml ([tool.releez]).
[tool.releez]
base-branch = "master"
git-remote = "origin"
alias-versions = "minor"
[tool.releez.hooks]
post-changelog = [
["uv", "version", "{version}"], # {version} = bare semver
["prettier", "--write", "{changelog}"],
]
Hooks run automatically after the changelog is updated. Template variables:
{version} (bare semver), {project_version} (full tagged version, e.g.
core-1.2.3), {changelog} (absolute path).
See the Settings reference and Hooks documentation for details.
GitHub Action
releez ships a composite GitHub Action. Pin it by tag — the matching CLI
version is installed automatically.
Modes
| Mode | When | What it does |
|---|---|---|
validate |
PR opened / updated on release/* |
Dry-runs the release, posts a preview comment |
finalize |
Release PR merged | Creates git tags, emits version outputs |
version-artifact |
Any build | Computes semver / docker / pep440 version strings |
Validate a release PR
- uses: hotdog-werx/releez@v0
with:
mode: validate
post-comment: 'true'
Finalize and create a GitHub Release
- id: releez
uses: hotdog-werx/releez@v0
with:
mode: finalize
alias-versions: major
- uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.releez.outputs.release-version }}
body: ${{ steps.releez.outputs.release-notes }}
Artifact versions for a Docker build
- id: version
uses: hotdog-werx/releez@v0
with:
mode: version-artifact
is-full-release: ${{ github.event_name != 'pull_request' }}
prerelease-number: ${{ github.event.pull_request.number }}
Key outputs: release-version, semver-versions, docker-versions,
pep440-versions, release-notes, project (monorepo).
For the full input/output reference and workflow recipes see the Action Reference and Workflow Recipes.
GitHub recommendations
Prefer squash merging with "Pull request title" as the default commit message.
This keeps your history aligned with semantic PR titles and works well with
amannn/action-semantic-pull-request and git-cliff changelog generation.
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 releez-0.3.4.tar.gz.
File metadata
- Download URL: releez-0.3.4.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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 |
44d2f10234aca792be135da9c8f80d46bb07e1d5c2493264594b7c64d6048826
|
|
| MD5 |
5308e9b3381f516c68455805fd54fc85
|
|
| BLAKE2b-256 |
4f4f648862d59545d456d48d576e357f138d0e495d5d2835fda511b4f3c93c2e
|
File details
Details for the file releez-0.3.4-py3-none-any.whl.
File metadata
- Download URL: releez-0.3.4-py3-none-any.whl
- Upload date:
- Size: 38.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","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 |
d65eaf0615cc5218d55f2b539e22da4502e0fc0a177182b2174cd6fbab4932c7
|
|
| MD5 |
969255eddc34a587bf589a4b58427c10
|
|
| BLAKE2b-256 |
6f7b7f0d6f2f4555255ca08df93517c20d493dfb9edb0eb83a88cace78cebbce
|