| title | Release and publication recipes |
|---|---|
| created | 2026-07-30 |
| updated | 2026-07-30 |
protected fast CI
-> Release Please
-> immutable release tag and commit
-> hosted quality/build jobs
-> package registries
-> official MCP Registry
-> GitHub release assets and attestations
Heavy work is release-only. A manual recovery run must identify an existing Release Please release; it cannot invent an independent version.
release-please.ymlhosted-rust-release.ymlorhosted-rust-platform-release.ymlgithub-release.yml- optional
npm-trusted-publish.ymlfor an npm launcher - optional
mcp-registry-publish.yml
Use install-contract.yml in fast CI when a one-line installer or npm launcher
consumes the assets.
- Release Please
hosted-python-package-release.ymlfor pure Python wheel/sdisthosted-python-wheels.ymlfor native x86_64 wheels- PyPI trusted publication
- MCP Registry publication after PyPI visibility
- GitHub release evidence
- Release Please
- hosted web quality/build workflow when a production application is shipped
npm-trusted-publish.yml- MCP Registry publication after npm visibility
- Pages or container deployment when applicable
hosted-container-release.yml builds one linux/amd64 candidate, pushes it by
immutable commit tag, smokes and scans its exact digest, then promotes that
digest to the release tag.
hosted-incus-image.yml checks out the release identity, runs pinned
repository-owned setup/validation/build/smoke scripts, generates an SBOM and
checksum inventory, and retains the exact image directory. The full caller in
templates/callers/incus-image-release.yml publishes it through
github-release.yml.
unraid-plugin-validate.yml keeps .plg, script, URL, version, and checksum
contracts in fast CI. The release caller uses hosted unraid-plugin-ci.yml to
package and checksum exact bytes, then unraid-plugin-release.yml to reverify
and attach them to the existing release.
Use hosted-release-command.yml for a product-specific build that does not
justify another reusable language workflow. The caller still owns the command,
artifact name, release identity, and downstream publication order.
Examples include a browser extension bundle or desktop palette application. Incus images and Unraid plugins have dedicated workflows because their build/smoke/checksum contracts repeat across the fleet.
The full conformance suite is release-only because it may start a real server
and exercise the entire protocol surface. Package publication must complete
before mcp-registry-publish.yml, because the official registry verifies that
referenced packages are publicly resolvable.