Release Checklist¶
Monorepo Staging¶
- Ensure the working tree is clean.
- Run
uv run python scripts/run_repo_tool.py ruff check src scripts tests packages. - Run
uv run python scripts/run_repo_tool.py ruff format --check src scripts tests packages. - Run
uv run python scripts/run_repo_tool.py mypy src scripts tests packages. - Run
uv run python scripts/run_repo_tool.py pytest -q. - Run
uv run python scripts/benchmark_release.py. - Review
.artifacts/benchmarks/release-hyperfine.jsonfor unexpected regressions. - Run
git release-audit. - Push the releasable staging commits with
git rel.
Coordinated Package Release¶
- Verify every distribution version is the intended coordinated release version.
- Align
codira-bundle-officialpins to the coordinated package set. - Verify
README.mduses absolute HTTPS image URLs for PyPI-rendered images; relative repository paths such asdocs/badges/*.pngbreak on PyPI project pages. - Confirm
codira -Vreports the core package and installed plugin distribution versions. - Build wheel and sdist artifacts for every distribution.
- Run
twine checkfor every artifact. - Upload to TestPyPI in dependency order.
- Run a fresh TestPyPI smoke test with
codira-bundle-official. - Verify TestPyPI metadata for
codiraincludes the absolute badge URL in the long description before uploading the same artifacts to PyPI. - Upload to PyPI in dependency order.
- Run a fresh PyPI smoke test with
codira-bundle-official.
Installer release rehearsal¶
Before a coordinated release, validate the two user-facing artifacts without allowing the rehearsal to contact a package index:
uv run python scripts/rehearse_installer_installs.py \
--wheel-dir /tmp/codira-installer-wheels \
--venv-dir /tmp/codira-installer-venv \
--plan-dir /tmp/codira-installer-plans
The rehearsal builds codira-installer and codira-bundle-official, installs
their wheels with uv pip install --no-index --no-deps, verifies bundle
metadata, and exports standalone, selected-feature, core-only, and
local-checkout plans. It is deliberately not a PyPI upload rehearsal; TestPyPI
and PyPI uploads remain explicit operator actions above.
Build and check both installer-facing wheel and source artifacts as part of the same release evidence. In an offline or locked development environment, use the repository's synchronized build backend rather than requesting a build isolation download:
uv run python -m build --no-isolation --wheel --sdist --outdir /tmp/codira-installer-artifacts packages/codira-installer
uv run python -m build --no-isolation --wheel --sdist --outdir /tmp/codira-installer-artifacts packages/codira-bundle-official
uv run python -m twine check /tmp/codira-installer-artifacts/*