Skip to content

Release checklist

1. Validate develop

bash
source .venv/bin/activate

git checkout develop
git pull origin develop

pytest -q
python scripts/fix_github_math_macros.py --check

rm -rf dist build *.egg-info
python -m pip install build twine
python -m build
python -m twine check "dist/*"

2. TestPyPI dry validation

Run the TestPyPI GitHub Actions workflow manually with:

text
publish = false

This only builds and validates the distributions.

3. Configure TestPyPI Trusted Publisher

Create a TestPyPI account if needed.

Configure a pending Trusted Publisher using:

text
Project name: relationalstats
Owner: HubertRonald
Repository: relationalstats
Workflow file: test-pypi.yml
Environment: testpypi

4. Publish to TestPyPI

Run the TestPyPI workflow manually with:

text
publish = true

5. Test installation from TestPyPI

bash
python3.10 -m venv /tmp/relationalstats-testpypi
source /tmp/relationalstats-testpypi/bin/activate

python -m pip install --upgrade pip
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ relationalstats==0.1.0a1

python - <<'PY'
import relationalstats
print(relationalstats.__version__)
PY

6. Create release branch

bash
source .venv/bin/activate

git checkout develop
git pull origin develop
git checkout -b release/v0.1.0a1
git push -u origin release/v0.1.0a1

Open a PR:

text
release/v0.1.0a1 -> main

7. Configure PyPI Trusted Publisher

Configure a pending Trusted Publisher using:

text
Project name: relationalstats
Owner: HubertRonald
Repository: relationalstats
Workflow file: release.yml
Environment: pypi

Require manual approval for the pypi environment.

8. Merge release branch to main

After checks pass, merge the release PR into main.

9. Tag release from main

bash
source .venv/bin/activate

git checkout main
git pull origin main

pytest -q

git tag v0.1.0a1
git push origin v0.1.0a1

The tag should trigger the Release workflow and publish to PyPI.

Built with VitePress and deployed with GitHub Pages.