86  Package-Index Release Plan

87 Package-Index Release Plan

This page prepares the package-index release path without pretending the package has already been uploaded. Local wheel/sdist checks are release evidence; public TestPyPI/PyPI availability requires a named human maintainer to perform upload and record the post-upload checks.

The dry-run preflight only proves that the command contract and report path are valid. It does not prove public package-index availability.

87.1 Status

Area Value
Package software-grimoire
Version 3.0.0
Upload status not-uploaded-human-required
Human upload required true
Workflow .github/workflows/publish-package.yml
Authentication PyPI Trusted Publishing via GitHub OIDC

87.2 Preflight

  • python3 scripts/bootstrap_project.py
  • python3 scripts/validate_data.py
  • python3 scripts/check_package_publish_workflow.py
  • python3 -m pytest
  • python3 scripts/check_package.py
  • python3 scripts/check_package_index.py --index pypi --dry-run --write-report tmp/package-index-smoke-dry-run.json
  • quarto render
  • python3 scripts/smoke_public_site.py --write-report tmp/package-index-smoke.json

87.3 Build

rm -rf dist
python3 -m build
python3 -m twine check dist/*

87.4 Trusted Publishing Workflow

Trigger: workflow_dispatch

Authentication: PyPI Trusted Publishing via GitHub OIDC

Required environments: testpypi, pypi

Required permission: id-token: write

Manual confirmation phrase: publish software-grimoire

Post-publish reports:

  • tmp/package-index-smoke-testpypi.json
  • tmp/package-index-smoke-pypi.json

87.5 TestPyPI

Human required: true

gh workflow run .github/workflows/publish-package.yml -f index=testpypi -f version=3.0.0 -f confirmation='publish software-grimoire'
python3 scripts/check_package_index.py --index testpypi --write-report examples/adoption/package-index-smoke.json

87.6 PyPI

Human required: true

gh workflow run .github/workflows/publish-package.yml -f index=pypi -f version=3.0.0 -f confirmation='publish software-grimoire'
python3 scripts/check_package_index.py --index pypi --write-report examples/adoption/package-index-smoke.json

87.7 Evidence Rules

  • Do not mark package-index release complete before a human performs upload.
  • Do not count local wheel install as package-index availability.
  • Configure PyPI/TestPyPI Trusted Publisher entries before dispatching the publish workflow.
  • Commit examples/adoption/package-index-smoke.json only after the checker installs the uploaded version from the selected public index.
  • Record TestPyPI/PyPI URL, uploader, date, installed version, and post-upload smoke output after upload.

Raw plan: package-index-release-plan.json

Pending smoke template: package-index-smoke-template.json