docs(release): realign release-checklist templates with per-PR changelogs - #10853
Conversation
…logs Rewrite the legacy fallback checklist so the changelog and crate-changelog steps finalize the per-PR `[Unreleased]` entries instead of curating them from scratch at release time, and reframe the manual semver-checks step as a verification backstop behind the per-PR cargo-semver-checks gate. Fix two dead references in the hotfix checklist: the nonexistent `check_no_git_refs_in_cargo_lock` check name becomes `check-no-git-dependencies`, and the nonexistent `ci-tests.yml` workflow link becomes `zfnd-ci-integration-tests-gcp.yml`.
There was a problem hiding this comment.
Pull request overview
This PR updates Zebra's two manual release-checklist PR templates to match the project's current per-PR changelog model. Previously the templates instructed the releaser to curate the changelog from scratch at release time and to run cargo semver-checks per crate to pick a release level. Under the per-PR model those entries are already authored/curated in each PR, so the templates now rename the existing [Unreleased] section and only confirm the entries, with the manual API-diff tooling demoted to a fallback "backstop" subsection. It also corrects two stale references in the hotfix template. These are manual-fallback templates only; the automated release-plz flow is untouched.
Changes:
- Rewrites the changelog and crate-version steps in
release-checklist-legacy.mdto rename/confirm already-curated[Unreleased]entries, and movescargo semver-checks/cargo public-api/ziffinto a "Verify the API bump (backstop)" subsection. - Fixes the hotfix template's CI check reference from
check_no_git_refs_in_cargo_lockto the realcheck-no-git-dependencies(verified againsttests-unit.yml). - Fixes the hotfix template's pre-release test link from the nonexistent
ci-tests.ymltozfnd-ci-integration-tests-gcp.yml(verified to exist).
Assessment: The two corrected references are accurate. The main concern (IMPORTANT) is that the new backstop section asserts a "per-PR cargo-semver-checks CI gate" already enforces breaking-change markers, but no such workflow exists anywhere in the repository — only a PR-title conventional-commits check, which does not inspect the API surface. This makes the "backstop" framing potentially misleading and should be confirmed or reworded.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/PULL_REQUEST_TEMPLATE/release-checklist-legacy.md |
Reframes changelog/crate-version steps around per-PR [Unreleased] entries; adds a "Verify the API bump (backstop)" subsection that references a CI gate not present in the repo. |
.github/PULL_REQUEST_TEMPLATE/hotfix-release-checklist.md |
Corrects the CI check name to check-no-git-dependencies and the pre-release test link to zfnd-ci-integration-tests-gcp.yml (both verified). |
|
admin-merging because of flaky tests |
Motivation
The manual release-checklist templates describe a release flow Zebra no longer uses. They tell the releaser to curate the changelog from scratch at release time (move entries out of
[Unreleased], delete trivial ones, combine duplicates, runcargo semver-checksper crate to pick the release level). Under the per-PR model, those entries are already authored and curated in each PR, and breaking changes are declared per PR with a conventional-commit!and enforced by the semver-checks CI gate. The hotfix template also points at two things that do not exist.Solution
In
release-checklist-legacy.md, the changelog and crate-version steps now rename the already-curated[Unreleased]heading to the version and confirm the existing entries, instead of curating from scratch. The manualcargo semver-checks/cargo public-api/ ziff tooling moves into a "Verify the API bump (backstop)" subsection, framed as a fallback behind the per-PR gate (and for when the gate cannot run, such as a yanked previous release).In
hotfix-release-checklist.md, the gate referencescheck-no-git-dependencies(the real check name) instead ofcheck_no_git_refs_in_cargo_lock, and the pre-release test linkszfnd-ci-integration-tests-gcp.ymlinstead of the nonexistentci-tests.yml.The automated release-plz flow is unchanged; these are the manual fallback templates.
AI Disclosure
AI tools were used: Claude drafted the template edits.