Config-driven branch and release helpers for Git repositories
Project description
repo-release-tools
repo-release-tools is a small product for conventional branches, changelog
policy, and version bumps across local development, CI, and Copilot workflows.
Product surfaces
rrtCLI for branch and release commands- GitHub Action for policy checks in CI
- pre-commit hooks for local enforcement
- Copilot CLI skill for zero-install guidance
Minimal quickstart
pip install repo-release-tools
rrt init
rrt branch new feat "add parser"
rrt bump patch
Or:
uvx repo-release-tools branch new feat "add parser"
For basic versioning, bump and ci-version can run without [tool.rrt] by
auto-detecting root-level pyproject.toml, package.json, and Cargo.toml.
If multiple version files are found they are updated together, and explicit
config becomes optional fine-tuning for groups, release branches, changelog
paths, lock commands, generated files, or custom patterns. Go repos still need
explicit config for file updates because Go has no standard in-file project
version. Run rrt init to capture the current recommendation in .rrt.toml.
Minimal config:
[tool.rrt]
release_branch = "release/v{version}"
changelog_file = "CHANGELOG.md"
[[tool.rrt.version_targets]]
path = "pyproject.toml"
kind = "pep621"
Native config is also supported in package.json ("rrt": { ... }) and
Cargo.toml ([package.metadata.rrt] / [workspace.metadata.rrt]). Go repos
should use .rrt.toml or .config/rrt.toml.
Conventional Branching
repo-release-tools uses conventional branches as the next step after
trunk-based publishing. The idea is simple: keep branches short-lived, encode
intent in the branch name, and let release automation stay predictable.
The default pattern is type/kebab-case-description, for example
feat/add-config-discovery or fix/handle-tag-workflows.
This works well with conventional commits and changelog automation:
- branch type tells reviewers and automation what kind of change is coming
- commit subjects stay conventional for changelog generation
- release branches stay explicit, such as
release/v1.2.3
See Conventional branches for the full branch model and supported branch types.
Documentation
License
repo-release-tools is released under the MIT License.
Built with ❤️ for safe, simple release automation.
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 repo_release_tools-0.1.5.tar.gz.
File metadata
- Download URL: repo_release_tools-0.1.5.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9db6951ed66aabc9b864c9888ccb25fadde761beb0b50fb8e1ef660a7bb9907a
|
|
| MD5 |
067003744bca7972f1fa9a3b8d6c501a
|
|
| BLAKE2b-256 |
1f89c355b7544565ba46a79fa683f62004000a7daed345c98c405f5217b86b23
|
Provenance
The following attestation bundles were made for repo_release_tools-0.1.5.tar.gz:
Publisher:
cicd.yml on Anselmoo/repo-release-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
repo_release_tools-0.1.5.tar.gz -
Subject digest:
9db6951ed66aabc9b864c9888ccb25fadde761beb0b50fb8e1ef660a7bb9907a - Sigstore transparency entry: 1238735968
- Sigstore integration time:
-
Permalink:
Anselmoo/repo-release-tools@2e0d5e20c2476fff87f1648cb50c7d72e71fdbd9 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@2e0d5e20c2476fff87f1648cb50c7d72e71fdbd9 -
Trigger Event:
push
-
Statement type:
File details
Details for the file repo_release_tools-0.1.5-py3-none-any.whl.
File metadata
- Download URL: repo_release_tools-0.1.5-py3-none-any.whl
- Upload date:
- Size: 33.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1b50b026b8634145afeab91b9aa11cf54d5402dea7d249f753b28c9f667da43
|
|
| MD5 |
25cd2ff28b22e338206ccb174feb4295
|
|
| BLAKE2b-256 |
16bcf0cae08f0ce2a7896968b32e3b1c6e70ddeac74f0a990f56a3c4abf142e7
|
Provenance
The following attestation bundles were made for repo_release_tools-0.1.5-py3-none-any.whl:
Publisher:
cicd.yml on Anselmoo/repo-release-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
repo_release_tools-0.1.5-py3-none-any.whl -
Subject digest:
e1b50b026b8634145afeab91b9aa11cf54d5402dea7d249f753b28c9f667da43 - Sigstore transparency entry: 1238735972
- Sigstore integration time:
-
Permalink:
Anselmoo/repo-release-tools@2e0d5e20c2476fff87f1648cb50c7d72e71fdbd9 -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/Anselmoo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@2e0d5e20c2476fff87f1648cb50c7d72e71fdbd9 -
Trigger Event:
push
-
Statement type: