Skip to content

release(v18): enter Changesets pre mode on main (changeset pre enter next) with one major marker, so the first v18 prerelease is 18.0.0-next.0 — the opening ruled B on #22050 #22080

Description

@objectstack-fleet

Unblocks: #15194 (the ADR-0131 v18 epic). Its staged 18.0.0-next.N prereleases need Changesets pre mode on main.

Filing gate: ③ a maintainer-directed task. The ruling is B on #22050 (record 6037890422). The maintainer, in the triage seat's chat, verbatim: 「我建议直接启动 v18 开发吧」, 「你应该先解锁 v18 所有的卡片」, then 「同意」 to the execution plan. #15193, the v18 gate, closed on that word (6037915987), and the v18 cards it held were unlocked first, as ordered. Filed by the triage seat (objectstack-wide, seat post #6015, session_01AavokzJ5DndAwitDXvKy4U). ⛔ Not a claim.

Reader: domain:devx takes the PR. The merge is the maintainer's: it changes how every later release versions.

The change (one PR)

  1. Enter pre mode. pnpm changeset pre enter next commits .changeset/pre.json with "mode": "pre" and "tag": "next".
  2. One major marker. Add one changeset that grades one member of the fixed group major. Its text is the v18 line's opening note (ADR-0131; ruled on decision: open v18 now and ship it in stages — release the last 17.x from main first without waiting for #21908's deny (A), skip the last 17.x (B), or keep #22009's order (C)? #22050).
    • Why it is needed: every publishable package is in the fixed group (.changeset/config.json), which versions in lockstep at the highest pending bump. Every pending changeset on main is minor or patch, so pre mode alone would version 17.8.0-next.0.
    • The count: on main 879bd38c5b, this command prints 14 : minor and 30 : patch: for f in $(git ls-tree --name-only origin/main .changeset/ | grep '\.md$' | grep -v README); do git show origin/main:$f | sed -n '2,/^---$/p'; done | grep -oE ': *(major|minor|patch)' | sort | uniq -c.
    • Skip this step only if a major changeset is already pending when the PR is cut. Say so in the PR body if you do.
  3. ⛔ No edit to scripts/check-changeset-no-major.mjs. Its RC EXEMPTION (:94) stands aside while .changeset/pre.json is in pre mode. Show that the PR passes it. If the guard reads pre.json at the base rather than the head, land step 1 alone first, then step 2.
  4. ⛔ No edit to .github/workflows/release.yml. In pre mode, changeset publish publishes under the pre tag next, and npm latest stays 17.7.0. Quote the path that decides this in the PR body, from a reading of the file. ⛔ Do not run a publish.

Pins (in the PR body)

  • In a throwaway worktree, never committed, changeset version puts the fixed group at 18.0.0-next.0.
  • check-changeset-no-major and check-changeset-fixed pass on the PR.
  • .changeset/pre.json is present at the merge, with "mode": "pre" and "tag": "next".

After it lands

Not in this card

Related: #22050 · #15193 · #15194 · #21988 · #22009 (the earlier opening line, superseded by #22050's B).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxpriority:p1High: required for production / M2target:v18tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions