Release runbook documents first-RC frozen-source behavior that isn't on main

Open Beginner friendly
#13,698 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
74/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
bash, github-actions, go

Research direction

Read docs/contributing/contributing-releases/release-runbook.md alongside .github/workflows/prepare-release.yaml and .github/scripts/prepare-release.sh on the current main branch. Check the release controller validation and sibling commit capture behavior referenced in the issue, then update the runbook to match the current workflow. Done when it no longer documents first-RC frozen-source behavior that is absent from main; recheck whether #13410 has merged before editing.

Written by the indexing model from the issue text.

Description

bug

Bug information

Steps to reproduce
  1. Read docs/contributing/contributing-releases/release-runbook.md on main at cd1225a1365119476385b52ef5e97c89153c228b:
    • Line 35: "To select an earlier reachable cutoff, add -f product-commit="<full-40-character-SHA>"; preparation verifies that its release metadata and build tooling are compatible."
    • Line 39: "While the first-RC PR remains open, rerunning with the same type/channel retains its cutoff, sibling commits, release date, and curated Highlights/Upgrading. Normally omit product-commit on reruns; a different cutoff for the same open preparation is rejected."
  2. Compare with .github/workflows/prepare-release.yaml and .github/scripts/prepare-release.sh on the same commit.
Observed behavior

The runbook describes behavior that main doesn't have:

  • No product-commit input. workflow_dispatch in prepare-release.yaml has only release-type, channel, and backport-pr-numbers. gh workflow run ... -f product-commit=... fails because the input is unknown. The input has never existed in this workflow on main.
  • Each rerun recaptures everything except curated notes:
    • Cutoff: the workflow checks out main, and prepare-release.sh lines 703-704 set productCommit to the current HEAD. If main moved, the rerun freezes a newer commit.
    • Sibling commits: the "Capture sibling repository commits" step runs capture-release-sibling-commits.sh on every run, which takes the current head of each sibling's release/X.Y, or main if there's none.
    • Release date: prepare-release.sh line 43 defaults RELEASE_DATE to today, and the workflow doesn't pass one.
    • Only Highlights and Upgrading are kept, through "Read curated notes from existing release pull request" and preserve-release-note-sections.sh.

Other runbook lines describe the same missing first-RC frozen-source flow:

  • Line 57 says the controller creates a signed release-App commit on top of the frozen cutoff. On main, validate-release-controller-plan.sh instead requires a new-channel release commit to be the release PR's squash commit ("new-channel release commit must be the release PR commit").
  • Line 107 and line 109 refer to a "frozen first RC", a "resolved release commit", and "frozen-source support".

The runbook came from #13390. These lines match draft #13410 ("fix(release): freeze first-RC sources through publication"), which isn't merged.

Desired behavior

The runbook describes what main does: a first-RC rerun freezes the current main head, recaptures sibling commits, and uses that day's date. Only Highlights and Upgrading carry over. There is no product-commit input. If #13410 merges first, the lines become correct and this can close.

Workaround

Follow prepare-release.yaml and prepare-release.sh on main rather than the runbook lines above. Don't pass product-commit.

System information

rad Version

N/A (release tooling docs)

Operating system

N/A

Additional context

#13697 documents a bicep-types-aws pin fix that depends on reruns recapturing sibling commits, which is how main behaves today. If #13410 merges as drafted, first-RC reruns reuse their sibling commits, so that fix would need to start a new preparation or use product-commit to choose the cutoff before setting the pin.

Dominant language
Go
Stars
1.7k
Forks
142
Avg merge
1d 11h
Merged PRs (30d)
229

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from radius-project/radius

All issues in radius-project/radius

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.