You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/skills/release-manager/SKILL.md
+22-5Lines changed: 22 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ Run a standard vite-plus release from version bump to published announcement. An
19
19
When given a release PR (URL or number), do not start from step 1. First audit the release's current state, then continue from the earliest unfinished step:
20
20
21
21
- Is the binding version synced? (step 2: `grep -c "'<prev>'" packages/cli/binding/index.cjs` on the release branch)
22
+
- Do the release version examples in the migration guide and the setup, migration, and upgrade prompts match `packages/cli/package.json`? (step 2)
22
23
- Is the PR description still the `prepare_release` boilerplate, or already a categorized changelog? (step 3)
23
24
- Is a preview build present and for the current head? (step 4)
24
25
- Does `main` have commits the release branch lacks? (`git log origin/release/vX.Y.Z..origin/main`, step 5)
@@ -32,7 +33,7 @@ Before post-release work, fetch `origin/main` and read its copy of this skill (`
32
33
## Pipeline overview
33
34
34
35
1.`Prepare Release` workflow bumps versions and opens the release PR (`release/vX.Y.Z` -> `main`).
35
-
2. Release manager: sync `binding/index.cjs`, write the changelog PR description, offer the preview-build smoke test (recommend it when the release has more than 10 commits since the previous tag), get CI green.
36
+
2. Release manager: sync `binding/index.cjs` and the release versions in the documentation and prompts, write the changelog PR description, offer the preview-build smoke test (recommend it when the release has more than 10 commits since the previous tag), get CI green.
36
37
3. Merging the PR pushes a `packages/cli/package.json` change to `main`, which triggers `release.yml`: build, manual approval gate, npm publish, GitHub release, Docker image, Discord notification.
The workflow bumps `packages/cli/package.json`, `packages/core/package.json`, `packages/cli/binding/Cargo.toml`, and `crates/vp_global_cli/Cargo.toml`, refreshes `Cargo.lock`, and opens a PR titled `release: vX.Y.Z` from branch `release/vX.Y.Z`. The PR body ends with `Merging this PR will trigger the release workflow.` and that line must survive every later edit.
48
49
49
-
## 2. Sync the NAPI binding version (required every release)
50
+
## 2. Sync release versions (required every release)
51
+
52
+
### NAPI binding
50
53
51
54
NAPI bakes the package version into version checks in `packages/cli/binding/index.cjs` (26+ sites). `prepare_release` bumps `package.json` but does not regenerate this file, so CI's `Ensure no unexpected file changes after build` step in the `CLI E2E test` job fails until it is synced. Do this immediately; do not wait for CI to fail.
52
55
@@ -79,7 +82,20 @@ regenerate this file, so the CI build's regeneration step produces a
79
82
diff that the post-build no-unexpected-changes guard rejects.
80
83
```
81
84
82
-
This is the only kind of commit that goes directly on the release branch. Everything else goes through `main` (see step 5).
85
+
### Documentation and prompts
86
+
87
+
Use the version in the release branch's `packages/cli/package.json` as the target release version in these files:
88
+
89
+
-`docs/guide/migrate.md`: pnpm and npm migration command examples and matching release prose.
90
+
-`docs/.vitepress/theme/data/migration-prompts.ts`: `setupPrompt`, `migrationPrompt`, `upgradePrompt`, and their shared instructions, including command examples and matching release prose. `CopyPrompt` uses `setupPrompt` on both the homepage and Getting Started guide.
91
+
92
+
Update every `--package=vite-plus@<curr>` pin and the corresponding `For the <curr> release` and `Replace <curr>` text. Keep an exact version; do not replace it with a placeholder, a major range, or `latest`.
93
+
94
+
Preserve historical versions such as the migration's source version and the release that introduced a breaking change. Leave Node.js requirements, bundled tool versions, and preview-registry instructions unchanged unless their requirements change.
95
+
96
+
Commit these updates on the release branch with the binding sync or in a separate release-version sync commit. Recheck both files and the binding after a target-version change or a merge from `main`. Before merging, confirm that the guide and all three prompts use the target release in both package-manager commands and their matching prose, then run `git diff --check`.
97
+
98
+
Only these release-version sync commits go directly on the release branch. Everything else goes through `main` (see step 5).
83
99
84
100
## 3. Write the release PR description
85
101
@@ -326,7 +342,7 @@ Two fork-CI blockers are worth fixing rather than reporting, both on the **test
326
342
327
343
Match checks to the current PR head and the latest applicable workflow runs. Superseded canceled runs can leave failed aggregate checks in the PR rollup. Check required statuses with `gh pr checks <PR#> --required`, and report required reviewer approval separately from technical CI readiness.
328
344
329
-
Fixes for CI failures go through a **separate PR to `main`**, never as commits on the release branch (the binding sync in step 2 is the sole exception). After the fix PR merges:
345
+
Fixes for CI failures go through a **separate PR to `main`**, never as commits on the release branch (the release-version syncs in step 2 are the exceptions). After the fix PR merges:
@@ -341,7 +357,7 @@ Known release-branch-only failure modes:
341
357
342
358
## 6. Merge
343
359
344
-
Merging the release PR is the release trigger. Before merging confirm: CI green, changelog validated, binding synced, and (if used) the preview build verified.
360
+
Merging the release PR is the release trigger. Before merging confirm: CI green, changelog validated, binding and documentation versions synced (including all three prompts), and (if used) the preview build verified.
345
361
346
362
Auto-merge being enabled is not a completed merge. Confirm `mergedAt` and the merge commit, then follow the Release run for that commit; older successful runs can have skipped publishing because the version did not change.
347
363
@@ -492,6 +508,7 @@ After the release ships and announcements are approved or confirmed complete, re
492
508
493
509
- [ ] `prepare_release` run for the target version; release PR open
494
510
- [ ] `binding/index.cjs` synced on the release branch (step 2 commit message shape)
511
+
- [ ] The migration guide and all three prompts in the step 2 files use the exact target version from `packages/cli/package.json` in their command examples and matching release prose
495
512
- [ ] PR description written from the head branch data; every PR exactly once except documented omissions; breaking changes in their own section above Highlights; no em/en dashes; closing boilerplate intact
- [ ] Smoke test offered to the release manager at both levels (local sweep and fork-PR CI), with the commit count stated and a recommendation to run it when that count is above 10; if accepted, forks synced to upstream first, preview build published, and the full ecosystem-ci catalog verified via `test-pkg-pr-new-migrate` (following TESTING.md), with every failure triaged and regressions ruled out against the previous release
0 commit comments