mflux release prep
Releases are prepared in-repo; tagging/publishing is handled by GitHub Actions
(release.yml, dispatched from main with the publish confirmation).
How notes work now (#685)
- Every PR carries a fenced
```release-noteblock in its body (CI enforces it;noneopts a PR out). That block is the only source of release notes. - On dispatch, the ungated
draft-notesjob harvests the blocks for every PR whose squash commit is inprevious-tag..HEADand fills a DRAFT GitHub release, grouped by label. - Whoever approves the
pypideployment reads and edits that draft (fixing any[needs edit]lines, adding contributor thanks if wanted); the gated job publishes it exactly as edited. A re-dispatch never overwrites an existing draft; delete the draft to re-harvest. - There is no
CHANGELOG.md: the notes live in GitHub Releases (https://github.com/mflux-community/mflux/releases).
Release-prep PR checklist
- Bump version in
pyproject.toml - Update lockfile:
uv lock - Release-note block of the prep PR itself:
none - Prefer one commit named
release: prepare <version> - Sanity checks (optional unless requested):
just test-fast,just build - Do not tag releases locally unless explicitly requested (normally handled by CI)