Versioning and Release Management¶
This project uses explicit package version metadata in pyproject.toml and builds distributions with uv_build.
Creating Releases¶
# Update pyproject.toml version first, then create an annotated matching tag.
git tag -a v0.0.1 -m "Release version 0.0.1"
git push --tags
# Verify version metadata.
uv run python -c "import py_launch_blueprint; print(py_launch_blueprint.__version__)"
# Build package artifacts.
uv build
Daily Development¶
uv sync --all-extras --dev
uv run python -c "import py_launch_blueprint; print(py_launch_blueprint.__version__)"
uv build
CI/CD Automation¶
The release workflow runs on v* tags and performs these checks:
Confirms the tag commit is reachable from
main.Compares the tag version with
project.versioninpyproject.toml.Builds wheel and source distributions with
uv build.Uploads the immutable
dist/artifact.Publishes to TestPyPI, then PyPI, using Trusted Publishing.
Configure the testpypi and pypi GitHub environments as Trusted Publishers in the matching package indexes before using the publish jobs.
Troubleshooting¶
Version mismatch in CI: update
project.versioninpyproject.tomlbefore tagging.Build cannot find the package module: check
[tool.uv.build-backend]and keepmodule-name = "py_launch_blueprint"withmodule-root = "".Publishing fails with OIDC errors: confirm the GitHub repository, workflow filename, environment, and package name match the Trusted Publishing settings in PyPI and TestPyPI.