Releases are published by the autorelease system, not by a person. There is no
tag-triggered release workflow: autorelease-publish.yml only runs through
workflow_dispatch with an admitted action key, exact merged commit, and the
investigation run holding the retained evidence. Pushing a version tag by hand
therefore publishes nothing. See AUTORELEASE.md for the
full contract.
- The daily watcher captures upstream evidence and, when it changes, admits an evidence-bound plan.
- For an ordinary stable patch the plan requires no edit and goes straight to the publish transaction. A recipe change is implemented offline, sealed, validated in a clean checkout, and merged through exact-SHA admission first.
- The publish transaction rebuilds on macOS 26 arm64, verifies the exact
module baseline and deployment target, packages the archive, writes
SHA256SUMS, creates the annotated tag and draft, verifies the draft bytes through a temporary install, then publishes the unchanged bytes and verifies the public install throughmise-php. - It advances one legal state at a time, never rebuilds under an existing tag, and never overwrites, deletes, or retags a published release.
A first release on a new PHP branch additionally waits for exact-commit
php_bin_ready and mise_ready records.
A human changes what gets built, never how it gets released:
- Update
expected-modules/<minor>.txtonly from a reviewed module baseline. - Update the recipe and run the exact module comparison on macOS arm64. The build gate must report a macOS 26.0 deployment target.
- Confirm
scripts/test.shand public-language checks pass. - Open a pull request with the build log and module diff.
After that merges, the next admitted plan picks it up and requests a rebuild
revision such as 8.4.5-1 when the PHP patch is unchanged but the recipe
changes the bytes. The revision is a field of the admitted
recipe_rebuild:<version>:<n> action key, so it is proposed by the plan and
validated at admission, never chosen by hand.
Never upload a locally built replacement over an existing release asset. A changed recipe or artifact requires a new rebuild revision.