Files
Radixor/.github/RELEASING-PYTHON.md

1.8 KiB

Releasing the Python distributions

This maintainer-only checklist is intentionally outside the public MkDocs site.

The repository descriptors use 0.0.0 as a non-release placeholder. Release workflows create isolated staging trees and inject the stable version selected by the tag. Never commit a release-number rewrite of the descriptors. Standard .rxc resources are also generated in that staging tree from the canonical model sources. The workflow compiles every model twice and rejects non-deterministic output; generated payload must never be added to Git.

Validate without publishing

Run Python Standard Models Release manually with version 1.0.0, then run Python Native Release with version 4.1.0. The default manual mode validates artifacts without publishing. The native run must pass Linux x86-64, Linux ARM64, macOS universal2, and Windows x86-64.

For the Linux paths, maintainers can use act with rootless Podman and the event files under .github/act/. Do not pass production secrets to act.

Publish in dependency order

Both tags must point to a commit already contained in main.

git tag -a 'python-models-standard@1.0.0' \
  -m 'Python standard models 1.0.0'
git push origin 'python-models-standard@1.0.0'

Wait until the models workflow has published its GitHub Release and Pages index entry. Then publish the native distribution:

git tag -a 'python@4.1.0' -m 'Python Radixor 4.1.0'
git push origin 'python@4.1.0'

Do not push both tags together: native publication requires the standard-model release to exist first.

Artifact identity

Python releases use SHA256SUMS and GitHub keyless build-provenance attestations. They do not use the Java Maven OpenPGP key. Verify a downloaded artifact with:

sha256sum --check SHA256SUMS
gh attestation verify <artifact> --repo leogalambos/Radixor