chore: release v1.14.2#545
Merged
Merged
Conversation
8 tasks
avihut
added a commit
that referenced
this pull request
May 22, 2026
…z residue Bundled with the changelog-section change since both target release-PR ergonomics: 1. **Skip heavy jobs on PRs labeled `release`.** dep-age-check, dep-license-check, lint, msrv-check, windows-check, build, and homebrew-simulation now gate on `!contains(github.event.pull_request.labels.*.name, 'release')` in addition to their existing change-detection gate. Release PRs only touch Cargo.toml/Cargo.lock/CHANGELOG/man/CLI docs — running the full ~15-minute suite is redundant (src/ hasn't changed since the last green master push). `xtask-test` and `changes` still run on release PRs: `xtask-test` includes the verify-man / verify-cli-docs checks that actively validate the release PR's own regenerated content; `changes` is the gate-derivation job. 2. **Remove stale release-plz-* branch matches from xtask-test verify steps.** They were skipping verify-man / verify-cli-docs on release-plz- branded branches; our new release-pr branch doesn't match. PR #545 demonstrated those verifications now pass cleanly on the new flow's release PRs because the pre-release-hook regenerates docs in the same commit as the version bump (no temporal mismatch). 3. **Repo-wide scrape and cleanup of stale release-plz references.** - `.github/workflows/bench.yml` paths-ignore: `release-plz.yml` → `release-flow.yml` (the old file no longer exists) - `.github/workflows/test.yml` paths-ignore: same - `CLAUDE.md` Release Process section: rewritten to describe the new cargo-release flow + manual-override input + conventional-commit parser rules - `mise-tasks/test/version-format` comment: release-plz → cargo-release - `docs/.vitepress/config.ts` comment: dropped tool-specific attribution in favor of describing the format itself Comments in `release.toml`, `Cargo.toml`, `.github/workflows/release-flow.yml` that reference `release-plz` intentionally remain — they document the migration context and the upstream issue (release-plz/release-plz#2595) that motivated it. Historical planning documents under `docs/superpowers/` also stay unchanged — they are snapshots of decisions made when release-plz was the active tool. YAML quoting note: the new `!contains(...)` conditions use `if: >-` block scalar so the leading `!` isn't parsed as a YAML tag.
avihut
added a commit
that referenced
this pull request
May 22, 2026
1. Escape dots in awk version regex so `1.14.2` matches a literal `1.14.2` rather than `1X14Y2` etc. Defense in depth — no real CHANGELOG heading would actually collide, but technically correct. 2. Add `--add-label release` to the `gh pr edit` path so the `release` label is self-healing. The CI-skip logic in this same PR gates on that label; if it were ever manually removed, subsequent force-pushes would silently start running the heavy jobs again without it. Verified locally: awk extraction still produces the same correct section against the live PR #545 CHANGELOG.md, and a synthetic `## [1X14X2]` heading no longer false-matches.
avihut
added a commit
that referenced
this pull request
May 22, 2026
…se PRs + clean up release-plz residue (#547) * ci(release): include changelog section in release PR body Restores the release-plz-style expandable Changelog block in the release PR body. Reviewers can now see exactly which conventional-commit entries are going into the release without clicking through to CHANGELOG.md in the PR diff. Mechanics: - The "Compute next version" step now also exports `current_version` to $GITHUB_OUTPUT (both the auto-compute path and the manual-override path) so the body can render the "X.Y.Z -> A.B.C" line. - The "Open or update release PR" step extracts the new version's section from the freshly-regenerated CHANGELOG.md via awk (matches the `## [<NEXT_VER>]` heading, prints lines until the next `## [` heading) and embeds it inside a <details><summary>Changelog</summary> block. Body shape matches the release-plz format we used to have (see PR #520 for the canonical example) — the 🤖 prefix, the version-bump line, the expandable details/blockquote nesting, the explanatory footer. Backtick-safety verified: bash double-quoted variable expansion does not re-evaluate the expanded content, so future commit messages containing backticks (e.g. `feat: improve \`gwco\` shortcut`) won't trigger command substitution at body-build time. Fixes #546. * ci(release): skip heavy test jobs on release PRs; clean up release-plz residue Bundled with the changelog-section change since both target release-PR ergonomics: 1. **Skip heavy jobs on PRs labeled `release`.** dep-age-check, dep-license-check, lint, msrv-check, windows-check, build, and homebrew-simulation now gate on `!contains(github.event.pull_request.labels.*.name, 'release')` in addition to their existing change-detection gate. Release PRs only touch Cargo.toml/Cargo.lock/CHANGELOG/man/CLI docs — running the full ~15-minute suite is redundant (src/ hasn't changed since the last green master push). `xtask-test` and `changes` still run on release PRs: `xtask-test` includes the verify-man / verify-cli-docs checks that actively validate the release PR's own regenerated content; `changes` is the gate-derivation job. 2. **Remove stale release-plz-* branch matches from xtask-test verify steps.** They were skipping verify-man / verify-cli-docs on release-plz- branded branches; our new release-pr branch doesn't match. PR #545 demonstrated those verifications now pass cleanly on the new flow's release PRs because the pre-release-hook regenerates docs in the same commit as the version bump (no temporal mismatch). 3. **Repo-wide scrape and cleanup of stale release-plz references.** - `.github/workflows/bench.yml` paths-ignore: `release-plz.yml` → `release-flow.yml` (the old file no longer exists) - `.github/workflows/test.yml` paths-ignore: same - `CLAUDE.md` Release Process section: rewritten to describe the new cargo-release flow + manual-override input + conventional-commit parser rules - `mise-tasks/test/version-format` comment: release-plz → cargo-release - `docs/.vitepress/config.ts` comment: dropped tool-specific attribution in favor of describing the format itself Comments in `release.toml`, `Cargo.toml`, `.github/workflows/release-flow.yml` that reference `release-plz` intentionally remain — they document the migration context and the upstream issue (release-plz/release-plz#2595) that motivated it. Historical planning documents under `docs/superpowers/` also stay unchanged — they are snapshots of decisions made when release-plz was the active tool. YAML quoting note: the new `!contains(...)` conditions use `if: >-` block scalar so the leading `!` isn't parsed as a YAML tag. * ci(release): address review findings on PR #547 1. Escape dots in awk version regex so `1.14.2` matches a literal `1.14.2` rather than `1X14Y2` etc. Defense in depth — no real CHANGELOG heading would actually collide, but technically correct. 2. Add `--add-label release` to the `gh pr edit` path so the `release` label is self-healing. The CI-skip logic in this same PR gates on that label; if it were ever manually removed, subsequent force-pushes would silently start running the heavy jobs again without it. Verified locally: awk extraction still produces the same correct section against the live PR #545 CHANGELOG.md, and a synthetic `## [1X14X2]` heading no longer false-matches.
13abb1f to
e680108
Compare
e680108 to
0906965
Compare
avihut
added a commit
that referenced
this pull request
May 22, 2026
PR #545 was merged via GitHub's default squash-merge UI. The resulting HEAD subject is `chore: release v1.14.2 (#545)` — the `(#545)` suffix is added by GitHub itself, not by anyone editing the title. My existing regex anchored at `$` immediately after the version, so it didn't match: HEAD commit subject: chore: release v1.14.2 (#545) Not a release commit, nothing to tag Result: v1.14.2 tag had to be pushed manually. Reviewer for #547 had warned about squash-subject foot-guns but missed that GitHub itself edits the subject in this way. Fix: append `(\ \(#[0-9]+\))?` to the regex so the optional PR-number suffix is matched. Verified locally against: MATCH: "chore: release v1.14.2" -> v1.14.2 MATCH: "chore: release v1.14.2 (#545)" -> v1.14.2 MATCH: "chore: release v2.0.0-rc.1 (#999)" -> v2.0.0-rc.1 no: "feat: add thing (#100)" no: "chore: release v1.14.2 stuff" Fixes #548.
3 tasks
avihut
added a commit
that referenced
this pull request
May 22, 2026
…gex (#549) PR #545 was merged via GitHub's default squash-merge UI. The resulting HEAD subject is `chore: release v1.14.2 (#545)` — the `(#545)` suffix is added by GitHub itself, not by anyone editing the title. My existing regex anchored at `$` immediately after the version, so it didn't match: HEAD commit subject: chore: release v1.14.2 (#545) Not a release commit, nothing to tag Result: v1.14.2 tag had to be pushed manually. Reviewer for #547 had warned about squash-subject foot-guns but missed that GitHub itself edits the subject in this way. Fix: append `(\ \(#[0-9]+\))?` to the regex so the optional PR-number suffix is matched. Verified locally against: MATCH: "chore: release v1.14.2" -> v1.14.2 MATCH: "chore: release v1.14.2 (#545)" -> v1.14.2 MATCH: "chore: release v2.0.0-rc.1 (#999)" -> v2.0.0-rc.1 no: "feat: add thing (#100)" no: "chore: release v1.14.2 stuff" Fixes #548.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 New release
daft: 1.14.1 -> 1.14.2Changelog
Automatically maintained release PR. Merging adds the
chore: release v1.14.2commit tomaster; thetag-merged-releasejob in.github/workflows/release-flow.ymlthen tags that commitv1.14.2and pushes the tag, which triggersrelease.yml(cargo-dist) to build the binary release.New commits to
masterupdate this PR continuously (force-pushed) — the version bump, changelog entries, man pages, and CLI docs all re-derive from current master state. The next version was computed from conventional commits viagit-cliff --bumped-version; when no releasable commits remain, this PR is closed automatically.