Bump Version & Release
Releases are made by the org release pipeline (megaeth-labs/.github).
- Candidate —
gh workflow run release-candidate.yml --ref main -f version=X.Y.Z. This opens a PR that bumpsCargo.toml(workspace version, the three path dependencies,Cargo.lock) and drafts theCHANGELOG.mdentry. Merging it cutsrelease-vX.Y.Z. Fixes for the release go to that branch by PR, and every such fix must also land onmain(cherry-pick it in a separate PR): the next candidate is cut frommain, so a fix that exists only on the release branch is lost in the next release. - Settle —
gh workflow run release-settle.yml --ref main -f version=X.Y.Z -f commit=<tip sha of release-vX.Y.Z>. The dispatch is the release approval: the run waits for thereleaseenvironment's reviewer, and the action checks that the dispatcher is a repository admin. The same job then commits the finalised changelog entry to the release branch, creates the annotated tagvX.Y.Z, and publishes the GitHub Release with the entry as notes. There is no settle PR;release-publish.ymlonly serves the PR mode this repo no longer uses. Fix changelog wording before dispatching: in the candidate PR while it is open, or by a PR onto the release branch after it merges. - Targets — automatic on the Release:
on-release.ymlpublishes the four crates to crates.io and uploadsmega-evmeto the MegaETH artifact registry and the Release page. Rehearse it first on an existing tag, dispatching on that tag's ref:gh workflow run on-release.yml --ref vX.Y.Z -f dry_run=true. The tag being released is always the run's own ref; there is no separate tag input. The publish credentials live in thepublishenvironment, whose deployment policy allows onlyv*tag refs.
Do not create tags or Releases by hand; the tag ruleset rejects it.