Skip to content

fix: standardize release plan state boundary#749

Merged
TorinAsakura merged 8 commits into
masterfrom
docs/release-ownership-contract
Jun 17, 2026
Merged

fix: standardize release plan state boundary#749
TorinAsakura merged 8 commits into
masterfrom
docs/release-ownership-contract

Conversation

@TorinAsakura

@TorinAsakura TorinAsakura commented Jun 17, 2026

Copy link
Copy Markdown
Member

Task

What Changed

  • Removed the release ownership metadata surface from Raijin release plans.
  • Kept release plans as a narrow pipeline artifact: schema version plus fixed workspace release/decline decisions.
  • Kept target versions and version decisions owned by Yarn deferred version files.
  • Made release plan creation fail when changed release workspaces do not have Yarn deferred release decisions.
  • Kept schema version 2 so legacy plan content cannot be treated as the current format.

Contract

  • Yarn owns version decisions and target versions through deferred version files and native version commands.
  • Raijin release plans do not store ownership metadata, target versions, or copied version strategies.
  • Raijin release plans only preserve the fixed workspace selection needed by later publish stages.
  • Follow-up release pipeline tasks must build on Yarn/GitHub-native state instead of adding a parallel Raijin release metadata model.

How To Test

Main Scenario

  1. Context: release plan creation after Yarn deferred versioning
    Action: create a release plan through @atls/yarn-plugin-release
    Expected result: the plan contains schema version and release/decline workspace decisions, while target versions remain Yarn-owned state

Additional Scenario

  1. Context: release plan parsing
    Action: parse malformed or legacy schemaVersion 1 release plan content
    Expected result: parsing fails instead of accepting ambiguous release state

Proofs

  • yarn test unit release-plan --test-reporter=tap
  • targeted yarn typecheck for changed release files
  • targeted yarn lint for changed release files
  • yarn workspace @atls/yarn-plugin-release build
  • yarn workspace @atls/yarn-cli build
  • cmp -s yarn/cli/dist/yarn.mjs .yarn/releases/yarn.mjs
  • yarn raijin:check
  • yarn check
  • scoped git diff --check excluding generated yarn.mjs bundles

@TorinAsakura TorinAsakura self-assigned this Jun 17, 2026
@TorinAsakura TorinAsakura changed the title docs: define release ownership contract fix: enforce release ownership contract Jun 17, 2026
@TorinAsakura TorinAsakura force-pushed the docs/release-ownership-contract branch from 093992f to b5fb261 Compare June 17, 2026 13:54

@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: 5d87e313d2

ℹ️ 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 yarn/plugin-release/sources/release-ownership.contract.ts Outdated
@TorinAsakura TorinAsakura changed the title fix: enforce release ownership contract fix: standardize release plan state boundary Jun 17, 2026
@TorinAsakura TorinAsakura merged commit 977533d into master Jun 17, 2026
7 checks passed
@TorinAsakura TorinAsakura deleted the docs/release-ownership-contract branch June 17, 2026 16:09
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.

[Feature] Standardize release pipeline state boundaries

1 participant