Skip to content

chore(release)!: enter RC pre-mode and anchor the train as the v17 major#3600

Merged
os-zhuang merged 1 commit into
mainfrom
claude/apimethod-enum-shrink-risk-utzm24
Jul 27, 2026
Merged

chore(release)!: enter RC pre-mode and anchor the train as the v17 major#3600
os-zhuang merged 1 commit into
mainfrom
claude/apimethod-enum-shrink-risk-utzm24

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Follow-up to #3581 / #3391 close-out — kicks off the v17 RC cycle.

What this does

  1. Enters Changesets pre-mode (changeset pre enter rc.changeset/pre.json, mode: "pre", tag rc). From the next version cut, the changesets action produces 17.0.0-rc.N pre-releases; nothing reaches the latest dist-tag until changeset pre exit.
  2. Adds the v17 anchor changeset (.changeset/v17-rc-anchor.md) — the sole major bump. The lockstep group applies the highest bump to every package, so this one declaration promotes the whole train; every other pending changeset keeps its own minor/patch and narrative.
  3. Amends the ApiMethod-shrink changeset's "ships as minor" wording to point at the anchor.

Why promote this train to a major

  • The accumulated train has the highest breaking density since the launch-window policy was adopted: ApiMethod enum shrink (P2:ApiMethod 枚举收缩至 6 原语(breaking,独立版本) #3543, compile-time breaking for TS authors), GraphQL surface removal, ADR-0104 value-shape write cutover, dead-cluster prunes — all riding together.
  • Shipping it as a bare 16.2.0 minor means every ^16.x consumer auto-ingests the whole set on their next install. A major restores the version-number signal: caret ranges hold at 16.x until consumers opt in.
  • The RC window gives downstream validation before latest: cloud / objectui / examples upgrade against 17.0.0-rc.N, the dogfood gate and the spec: 为剩余 16 个可编写域补全 defineX 工厂 / XInput,统一编写入口 #2035 third-party consumer gate run against it, and legacy apiMethods strip warnings are watched for the deny-all cliff.
  • Weekly cadence continues inside the window — each cut is another rc.N, no version burn. Exit + finalize once soaked.

Guard behavior (verified locally)

  • check-changeset-no-major.mjs detects pre-mode and stands aside by design, printing the pending major informationally:
    ✓ Changesets is in pre-release mode (tag: rc) — major bumps are the expected product of an RC window
  • changeset status confirms the lockstep group computes to 17.0.0-rc.0.

After merge (RC-window runbook)

  1. Merge the changesets action's "chore: version packages" PR when it appears → publishes 17.0.0-rc.0.
  2. Upgrade cloud / objectui / examples to the RC; watch dogfood + spec: 为剩余 16 个可编写域补全 defineX 工厂 / XInput,统一编写入口 #2035 gates and [spec] … retired legacy value(s) warnings.
  3. Fix-forward into rc.N on the weekly cadence.
  4. When soaked: changeset pre exit + version + publish → final 17.0.0 (with gen:upgrade-guide output).

🤖 Generated with Claude Code

https://claude.ai/code/session_018V7nzG1x7nuqkwZQTowtBo


Generated by Claude Code

Enter Changesets pre-mode (tag: rc) and add a v17 anchor changeset declaring
the sole `major` bump. The lockstep group applies the highest bump to every
package, so the accumulated launch-window train — highest breaking density
since the policy was adopted (ApiMethod enum shrink #3543, GraphQL surface
removal, ADR-0104 value-shape write cutover, dead-cluster prunes) — computes
to 17.0.0-rc.0 instead of a bare 16.2.0 minor that every ^16.x consumer
would auto-ingest. Nothing reaches the latest tag until `changeset pre exit`;
weekly cuts inside the window publish rc.N pre-releases for downstream
validation (cloud/objectui/examples, dogfood gate, #2035 third-party gate).

The no-major guard stands aside in pre-mode by design and prints the pending
major informationally (verified locally). The ApiMethod changeset's
"ships as minor" wording is amended to point at the anchor.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018V7nzG1x7nuqkwZQTowtBo
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 27, 2026 9:05am

Request Review

@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation tooling labels Jul 27, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 27, 2026 09:12
@os-zhuang
os-zhuang merged commit 5dbbb92 into main Jul 27, 2026
15 checks passed
@os-zhuang
os-zhuang deleted the claude/apimethod-enum-shrink-risk-utzm24 branch July 27, 2026 09:12
os-zhuang added a commit that referenced this pull request Jul 27, 2026
… the v17 train (#3627)

Every Release run on main has been red since the v17 breaking window opened
(first the localization-config narrowing, then the #3543 ApiMethod enum
shrink): the live-hotcrm smoke types hotcrm@v2.1.0 (an ObjectStack 14.7
consumer) against the unreleased spec and fails on exactly the removals the
major exists to ship. Because the step sits before changesets/action, the
job dies before the Version Packages PR is even created — while a hotcrm
release migrated off those removals cannot exist until the rc.N artifacts
it would migrate against are published. Deadlock: #3600 entered pre-mode
this morning specifically to cut rc.N pre-releases for downstream
validation, and the gate has blocked every attempt since.

While .changeset/pre.json declares mode:"pre", run the smoke as advisory:
still cloned, still typechecked, outcome reported via ::notice/::warning —
but never failing the job. With pre.json absent or mode:"exit" (the moment
`changeset pre exit` lands) the gate blocks exactly as before, which is
also the moment HOTCRM_REF must be bumped per the step's existing protocol.

All four guard paths simulated locally: pre+fail→0, pre+pass→0,
armed+fail→1, exit-mode+fail→1.


Claude-Session: https://claude.ai/code/session_01ECTCrcCdZpCHw5zFSgcmGt

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants