ct-release¶
Automated version bump + build + publish for compiletools¶
- Author:
- Date:
2025-11-26
- Version:
10.0.6
- Manual section:
1
- Manual group:
developers
SYNOPSIS¶
ct-release {major|minor|patch}
DESCRIPTION¶
ct-release codifies the house release checklist. Given a bump level, it:
Locates the development checkout indicated by
ctdevdir(defaults to$HOME/compiletools) and ensures it exists.Verifies that the working tree is clean and the current branch is
master.Runs
bump-my-version bump <level>to increment all version references, thengit push+git push --tags.Waits briefly so the GitHub tarball is available.
Builds fresh artifacts via
uv buildand publishes them withuv publish --token $PYPI_API_TOKEN(checking the Simple API to avoid duplicates).
If the most recent commit already contains a bump message the script skips the version increment but continues with the publish step so accidental reruns are safe.
OPTIONS¶
major | minor | patchRequired positional argument that controls the bump level passed to
bump-my-version. The semantic versioning rules frompyproject.tomlapply.
ENVIRONMENT¶
ctdevdirPath to the compiletools Git checkout. Defaults to
$HOME/compiletools.PYPI_API_TOKENAPI token used by
uv publish. Must have upload rights to thecompiletoolsproject on PyPI.GIT_SSH_COMMANDand other Git variablesIf you rely on custom SSH settings for pushes, configure them before running
ct-releaseso the script inherits the environment.
REQUIREMENTS¶
gitwith worktree push access.bump-my-versioninstalled (uv pip install bump-my-versionor via the dev extras).uvfor building and publishing.
EXAMPLES¶
Cut a patch release from a clean master checkout:
ct-release patch
Force a minor release using a non-standard repo location:
ctdevdir=$HOME/work/compiletools ct-release minor
SEE ALSO¶
bump-my-version (1), uv (1), README.coders (development workflow guide)