Skip to content

ci(release): include a Review Contract in generated release PRs - #1569

Merged
thepagent merged 1 commit into
mainfrom
ci/release-pr-review-contract
Oct 23, 2026
Merged

thepagent merged 1 commit into
mainfrom
ci/release-pr-review-contract

Conversation

@chaodu-obk

@chaodu-obk chaodu-obk Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

What problem does this solve?

release-pr.yml creates release PRs with a one-line body, so the Review Contract check (validate) fails on every release PR. Both #1549 (beta.5) and #1568 (beta.6) were merged with a red check, which trains reviewers to ignore it.

This PR changes the workflow to generate a body with every required Review Contract section, so release PRs pass validation.

Review Contract

Goal

Release PRs created by release-pr.yml pass review-contract.yml without a maintainer exemption.

Non-goals

  • No change to version resolution, file bumping, branch naming, or tagging.
  • No new review-contract-exempt label and no automatic exemption. docs/review-contract.md reserves exemption for an explicit, documented maintainer decision, so a workflow should not apply it automatically. The label also does not exist in the repo today.

Accepted Residual Risks

  • The generated contract is generic. It describes a version-bump PR, not the contents of the release. Release contents are covered by the GitHub release notes and by validating the pre-release images.
  • The YAML was not parsed locally because no YAML parser or actionlint was available. The block-scalar indentation was checked by hand, and the rendered heredoc was validated (see Validation). The first real run is the next Release PR dispatch.

Acceptance Criteria

  • A release PR body contains ## Review Contract plus Goal, Non-goals, Accepted Residual Risks, Acceptance Criteria, and Follow-ups, in that order.
  • perl .github/scripts/review_contract.pl passes on the generated body for both a beta version (0.10.0-beta.7) and a stable version (0.10.0).
  • The first line still reads Merge this PR to tag `v<version>` and trigger the build pipeline.
  • STABLE is passed into the step, so the Goal states the correct Cargo.toml version.

Follow-ups

Changes

  • The Create release PR step writes the body to a temp file with a heredoc and passes it with --body-file.
  • STABLE is added to the step env, because Cargo.toml gets the stable version while Chart.yaml gets the full version.

Validation

The heredoc was extracted from the workflow, de-indented the way YAML does it, and run:

  • VERSION=0.10.0-beta.7 STABLE=0.10.0 → Review Contract validation passed
  • VERSION=0.10.0 STABLE=0.10.0 → Review Contract validation passed
  • perl .github/scripts/test_review_contract.pl → passed

Discord Discussion URL: https://discord.com/channels/1490282656913559673/1562951633544020000

release-pr.yml created PRs with a one-line body, so the Review Contract
check failed on every release PR (beta.5 #1549, beta.6 #1568) and was
merged red. Generate a body with all required sections instead of
relying on the review-contract-exempt label, which docs reserve for an
explicit maintainer decision.
@chaodu-obk
chaodu-obk Bot requested a review from thepagent as a code owner October 23, 2026 01:41
@thepagent
thepagent merged commit 2e7d189 into main Oct 23, 2026
4 of 5 checks passed
thepagent pushed a commit that referenced this pull request Oct 23, 2026
…ndow (#1573)

GitHub delivers the hourly schedule every ~4-5h, so the 'commit in the
last ~70min' gate skipped most merges. The last full pre-beta build was
99c11ec (2026-10-03); #1562, #1564, #1568 and #1569 never reached
pre-beta-*, which also kept downstream openab-pty images on Node 22.23.3.

Build when main HEAD differs from the head SHA of the last successful
run that tagged every agent.

Co-authored-by: chaodu-agent <274062505+chaodu-agent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants