Skip to main content

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-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

Project details


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.0.0.tar.gz (13.0 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.0.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jrl_cmakemodules_scripts-2.0.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jrl_cmakemodules_scripts-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3013f8fd51a9404d6df0ef7fb3d064bc27cf3055d58153774b98227db8207978
MD5 20759c73de7418941ed4baa0da965070
BLAKE2b-256 bce048c6741edfeeab417381b2fe82e27e4278352c14af8362269edc4848539a

See more details on using hashes here.

Provenance

The following attestation bundles were made for jrl_cmakemodules_scripts-2.0.0.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.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jrl_cmakemodules_scripts-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f06b59cc91546954c7968aed3b26f6f891db1b3238ce15f1b4ca5bd09b655bdf
MD5 64c7b9a2634311d8efdec728df6b8d64
BLAKE2b-256 feef1f7a8dcb3e896dacc5d26ad4759bd1f1cc642f1c4240fc97ec182d4d6fba

See more details on using hashes here.

Provenance

The following attestation bundles were made for jrl_cmakemodules_scripts-2.0.0-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 Pingdom Monitoring Sentry Error logging StatusPage Status page