Release checklist

This checklist covers an xfh release. CI modernization is intentionally deferred to example-python-project so it can be back-ported consistently across repositories.

Prepare

Validate

Run the repository checks from a clean checkout:

make all

Then verify the built artifacts rather than the source checkout:

python -m venv ~/tmp/xfh-release-venv
~/tmp/xfh-release-venv/bin/python -m pip install dist/xfh-*.whl
~/tmp/xfh-release-venv/bin/xfh --help
~/tmp/xfh-release-venv/bin/python -c "import xfh; print(xfh.__file__)"

Publish

The first PyPI upload bootstraps the project and therefore needs a temporary account-wide token:

read -rsp "PyPI token: " PYPI_TOKEN && echo
export PYPI_TOKEN
make release
unset PYPI_TOKEN

After that upload, replace it with a token scoped to the new xfh project. For a TestPyPI upload, additionally set PYPI_REPOSITORY_URL to the TestPyPI legacy upload endpoint.

Verify