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.1.0.tar.gz (13.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.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

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

Hashes for jrl_cmakemodules_scripts-2.1.0.tar.gz
Algorithm Hash digest
SHA256 4e3b8d2134287409d5ae973b2c0291c69d09985139468861c01e7a0cf46d5ebc
MD5 eba42522682c6808e88b83614234866d
BLAKE2b-256 bdafa9cd02f92b203f91c1b8afba122230b6148982f75a1d454e95c36592bc8e

See more details on using hashes here.

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

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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jrl_cmakemodules_scripts-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb305ea5b745e84fb6e46191f98f2a0a3f6b7d7741741e4f1b6ac928bd223df3
MD5 fb6722b255a5726c5d24c767f9deecb9
BLAKE2b-256 e95a3fccf9b7258061614098aa76df7c351cd13005117cfc52ffb778beab34f9

See more details on using hashes here.

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

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