Release scripting tools for JRL CMake modules
Project description
jrl_release.py
Version management script for multi-format projects. Keeps version strings in sync across all tracked files and automates the release process.
Usage
The tool can be invoked two equivalent ways:
# Installed console command — after `pip install .` / `uv tool install .`, or inside `uv run`
jrl-release [OPTIONS]
# Standalone, no install — runs the script directly via uv (PEP 723 inline deps)
uv run --no-project jrl_release.py [OPTIONS]
The standalone form requires
uv; it auto-installs dependencies from the script's inline metadata.
The examples below use the installed jrl-release form. If you haven't installed it, prefix-swap jrl-release → uv run --no-project jrl_release.py.
Common Commands
# Check that all files agree on the current version
jrl-release --check-version
# Bump version
jrl-release --bump patch # 1.0.0 -> 1.0.1
jrl-release --bump minor # 1.0.0 -> 1.1.0
jrl-release --bump major # 1.0.0 -> 2.0.0
# Set a specific version
jrl-release --update-version 1.2.3
# Bump, commit and tag in one step
jrl-release --bump patch --git-commit --git-tag
Options
| Option | Description |
|---|---|
--root <PATH> |
Project root (default: cwd). |
--bump <major|minor|patch> |
Bump version component. |
--update-version <X.Y.Z> |
Set a specific version. |
--dry-run |
Show changes without writing files. |
--short |
Print only the version string. |
--output-format <text|json> |
Output format (default: text). |
--confirm |
Skip interactive prompts. |
--list-files |
List tracked files. |
--git-commit [MSG] |
Commit changes. Optional message ({version} placeholder). |
--git-tag [NAME] |
Create a tag. Optional name ({version} placeholder). |
--git-tag-message <MSG> |
Tag annotation ({version} placeholder). |
Git defaults: commit chore: bump version to {version}, tag v{version}, tag message Release version {version}.
Supported Files
| File | Key |
|---|---|
package.xml |
<version> tag |
pyproject.toml |
project.version |
CHANGELOG.md |
First ## [X.Y.Z] section (not Unreleased) |
pixi.toml |
[workspace] version |
pixi.lock |
Regenerated via pixi list |
CITATION.cff |
version key |
CMakeLists.txt |
project(... VERSION X.Y.Z ...) |
Requires
pixiCLI ifpixi.lockexists in the project root.
Testing
The unit tests live in test_jrl_release.py and can be run two ways:
# Standalone (PEP 723 inline metadata, no install needed)
uv run --no-project test_jrl_release.py
# Via the project's test extra (from the repo root)
uv run --extra test pytest
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 jrl_cmakemodules_scripts-2.1.0.tar.gz.
File metadata
- Download URL: jrl_cmakemodules_scripts-2.1.0.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e3b8d2134287409d5ae973b2c0291c69d09985139468861c01e7a0cf46d5ebc
|
|
| MD5 |
eba42522682c6808e88b83614234866d
|
|
| BLAKE2b-256 |
bdafa9cd02f92b203f91c1b8afba122230b6148982f75a1d454e95c36592bc8e
|
Provenance
The following attestation bundles were made for jrl_cmakemodules_scripts-2.1.0.tar.gz:
Publisher:
release-scripts.yml on jrl-umi3218/jrl-cmakemodules
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jrl_cmakemodules_scripts-2.1.0.tar.gz -
Subject digest:
4e3b8d2134287409d5ae973b2c0291c69d09985139468861c01e7a0cf46d5ebc - Sigstore transparency entry: 2062292915
- Sigstore integration time:
-
Permalink:
jrl-umi3218/jrl-cmakemodules@fe4fe0d1ee348dd91b096e7fd30105471272a9c8 -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/jrl-umi3218
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-scripts.yml@fe4fe0d1ee348dd91b096e7fd30105471272a9c8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jrl_cmakemodules_scripts-2.1.0-py3-none-any.whl.
File metadata
- Download URL: jrl_cmakemodules_scripts-2.1.0-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb305ea5b745e84fb6e46191f98f2a0a3f6b7d7741741e4f1b6ac928bd223df3
|
|
| MD5 |
fb6722b255a5726c5d24c767f9deecb9
|
|
| BLAKE2b-256 |
e95a3fccf9b7258061614098aa76df7c351cd13005117cfc52ffb778beab34f9
|
Provenance
The following attestation bundles were made for jrl_cmakemodules_scripts-2.1.0-py3-none-any.whl:
Publisher:
release-scripts.yml on jrl-umi3218/jrl-cmakemodules
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jrl_cmakemodules_scripts-2.1.0-py3-none-any.whl -
Subject digest:
bb305ea5b745e84fb6e46191f98f2a0a3f6b7d7741741e4f1b6ac928bd223df3 - Sigstore transparency entry: 2062293573
- Sigstore integration time:
-
Permalink:
jrl-umi3218/jrl-cmakemodules@fe4fe0d1ee348dd91b096e7fd30105471272a9c8 -
Branch / Tag:
refs/tags/v2.1.0 - Owner: https://github.com/jrl-umi3218
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-scripts.yml@fe4fe0d1ee348dd91b096e7fd30105471272a9c8 -
Trigger Event:
push
-
Statement type: