Goal
Wire the tag-to-release pipeline so cutting v0.1.0 produces signed, reproducible build artifacts attached to a GitHub Release. PyPI publishing is explicitly out of scope for v0.1; we'll revisit in a follow-up.
This is R5 of six release milestones (R1–R6) leading to v0.1.0.
Evidence
project.bootstrap.yaml:111-113 — capabilities.release.enabled: false, kind: none. No release pipeline exists today.
- No tags in
git tag output.
pyproject.toml:7 — version 0.1.0 hardcoded.
Acceptance criteria
Release workflow
Manifest update
Pre-release validation
Cut v0.1.0
Out of scope
- PyPI publishing (deferred; file follow-up R5b once project name is reserved).
- Release signing (sigstore / GPG) — note as candidate for v0.2.
Definition of done
- Tag
v0.1.0 exists and the matching GitHub Release has the wheel + sdist attached.
- A user can
pip install the wheel from the GitHub Release URL and mpi doctor works.
Goal
Wire the tag-to-release pipeline so cutting
v0.1.0produces signed, reproducible build artifacts attached to a GitHub Release. PyPI publishing is explicitly out of scope for v0.1; we'll revisit in a follow-up.This is R5 of six release milestones (R1–R6) leading to v0.1.0.
Evidence
project.bootstrap.yaml:111-113—capabilities.release.enabled: false,kind: none. No release pipeline exists today.git tagoutput.pyproject.toml:7— version0.1.0hardcoded.Acceptance criteria
Release workflow
.github/workflows/release.ymltriggers on tag push matchingv*.*.*and:sdistandwheelviapython -m build.CHANGELOG.mdsection as the body, and attaches the sdist, wheel, and SHA256SUMS file.AGENTS.mdrunner policy, sincepython -m buildis reasonably trusted but a fresh runner each time is preferred).pyproject.tomlversion (mismatch fails the job).Manifest update
project.bootstrap.yamlflipscapabilities.release.enabled: trueand setskind: github-release(or whatever the bootstrap tool expects).Pre-release validation
scripts/release/dry-run.sh(or workflow_dispatch entry) that performs the full build steps without creating a release, for sanity checking before tagging.project.bootstrap.yaml:60) covers the release workflow's build step on PRs that touch packaging — at minimumpython -m buildis exercised in extended CI.Cut v0.1.0
v0.1.0frommainand confirm the workflow produces a release.README.mdinstall section is updated post-release to show the canonical wheel URL orpip install <tag URL>form.Out of scope
Definition of done
v0.1.0exists and the matching GitHub Release has the wheel + sdist attached.pip installthe wheel from the GitHub Release URL andmpi doctorworks.