Skip to content

release: make RC and stable promotion reproducible - #41

Merged
stackloomdev merged 2 commits into
mainfrom
agent/release-readiness
Jul 25, 2026
Merged

stackloomdev merged 2 commits into
mainfrom
agent/release-readiness

Conversation

@stackloomdev

Copy link
Copy Markdown
Owner

Summary

  • generalize the isolated live-lab predecessor rule across beta, RC, and stable releases
  • add deterministic TypeScript release-policy tests and metadata/install-channel gates to pnpm check
  • document release PR, tag, trusted-publishing, post-publish sync, and partial-failure recovery
  • require release tag commits to already be on main

Validation

  • pnpm check
  • pnpm verify:release
  • pnpm test:e2e:firefox
  • staged diff and privacy-pattern scan

Release boundary

This PR does not create a tag or publish an npm package. Stable remains blocked on real external beta feedback triage and explicit maintainer approval.

Closes #40

@stackloomdev
stackloomdev marked this pull request as ready for review July 25, 2026 16:43
@stackloomdev
stackloomdev merged commit f2d81a1 into main Jul 25, 2026
11 checks passed
@stackloomdev
stackloomdev deleted the agent/release-readiness branch July 25, 2026 16:44

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 78ae0644bd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/verify-release.ts
}

function changelogReleases(contents: string): ChangelogRelease[] {
return [...contents.matchAll(/^## \[([^\]]+)\] - (\d{4}-\d{2}-\d{2})$/gm)].map((match) => ({

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reject malformed release headings instead of skipping them

When a historical release heading has a formatting or date typo, such as ## [1.0.0-beta.3] - 2026/07/24, this exact-match parser silently omits it rather than rejecting the changelog. All subsequent ordering and live-lab checks then operate on the filtered list, so an older beta can be mistaken for the immediate predecessor and a live lab that is multiple releases behind can pass the release gate. Parse all bracketed release headings and explicitly reject any non-Unreleased heading that does not match the required format.

Useful? React with 👍 / 👎.

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.

release: make RC and stable promotion reproducible

1 participant