Skip to main content

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-releaseuv 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 pixi CLI if pixi.lock exists 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jrl_cmakemodules_scripts-2.2.4.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jrl_cmakemodules_scripts-2.2.4-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file jrl_cmakemodules_scripts-2.2.4.tar.gz.

File metadata

  • Download URL: jrl_cmakemodules_scripts-2.2.4.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for jrl_cmakemodules_scripts-2.2.4.tar.gz
Algorithm Hash digest
SHA256 570518d466fe4609bb416aee275a2c66691c74b7c71bab1164fa88240ebd323a
MD5 bc0a2cdaa8fd11bf11e11ecf9cc5feea
BLAKE2b-256 cb548cb0ba54ac705ea4668726e49778560a41fd14904e5391475d2a70d66a00

See more details on using hashes here.

Provenance

The following attestation bundles were made for jrl_cmakemodules_scripts-2.2.4.tar.gz:

Publisher: release-scripts.yml on jrl-umi3218/jrl-cmakemodules

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jrl_cmakemodules_scripts-2.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for jrl_cmakemodules_scripts-2.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f42a0d381a1ea4b8becdd0359cbf480f2415e000eca4c4ed14faf6724f0fd93e
MD5 37f80b19e3c37483451bf0dc8cde8110
BLAKE2b-256 17212f911814bb9fd1bbf8fb15059664fcc14e69f0a20948ac27fb1091cb0075

See more details on using hashes here.

Provenance

The following attestation bundles were made for jrl_cmakemodules_scripts-2.2.4-py3-none-any.whl:

Publisher: release-scripts.yml on jrl-umi3218/jrl-cmakemodules

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page