Prepare an experiment release¶
Kind: how-to.
Use an immutable tag for each experiment and a GitHub Release for its notes. Create a draft first. This experiment does not publish packages or automatically bump versions. The checked-in release note is the source of the experiment and companion-post mapping.
- Write
docs/releases/vMAJOR.MINOR.PATCH.mdwith the experiment and reproduction command. - Name its companion draft and current publication status.
- Merge validated changes after the required checks pass.
- Record the full main commit SHA after its CI run succeeds.
- Run Draft Experiment Release with that tag and SHA.
gh workflow run draft-release.yml --ref main \
-f tag=v0.1.0 -f commit=FULL_VALIDATED_COMMIT_SHA
The workflow reads notes from the selected commit. It requires successful CI, refuses existing releases and tags, and creates a draft. It verifies the returned target SHA and checks that the tag is still absent. Draft releases are visible to repository maintainers, not public readers.
Publish when the companion post is ready¶
- Verify that the draft still targets the intended full SHA.
- Verify that the tag remains absent.
- Replace the pending companion-post status with its public URL.
- Verify that the post links back to this release's tag URL.
- Publish the GitHub draft only after both artifacts are ready.
- Verify that the new tag resolves to the recorded commit.
Never move a published experiment tag. A correction gets a new tag and a note describing what changed. This repository does not upload packages to PyPI.
Deploy documentation before the first release¶
Pages is a living site built from validated main. The first deployment does not require an experiment tag.
gh workflow run docs.yml --ref main
A published release also triggers deployment from main, not from the release's historical commit. The deployment refuses a main commit without successful CI. Experiment evidence remains available through immutable commit links.