From bb934c5163f02e9fbe06b54bd434fe0cd7f37f80 Mon Sep 17 00:00:00 2001 From: JeremyDev87 Date: Fri, 3 Apr 2026 11:11:31 +0900 Subject: [PATCH] fix: bump missing version files for v5.2.0 release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit version.ts and plugin/package.json were not updated in the release PR. Also adds docs/release-checklist.md to prevent recurrence. - Fix apps/mcp-server/src/shared/version.ts: 5.1.3 → 5.2.0 - Fix packages/claude-code-plugin/package.json: 5.1.3 → 5.2.0 (via sync-version) - Add docs/release-checklist.md: mandatory 5-file bump checklist --- apps/mcp-server/src/shared/version.ts | 2 +- docs/release-checklist.md | 89 ++++++++++++++++++++++++ packages/claude-code-plugin/package.json | 4 +- yarn.lock | 2 +- 4 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 docs/release-checklist.md diff --git a/apps/mcp-server/src/shared/version.ts b/apps/mcp-server/src/shared/version.ts index 5539a9a0..44be036d 100644 --- a/apps/mcp-server/src/shared/version.ts +++ b/apps/mcp-server/src/shared/version.ts @@ -2,4 +2,4 @@ * Single source of truth for the runtime package version. * Updated automatically by scripts/bump-version.sh on each release. */ -export const VERSION = '5.1.3'; +export const VERSION = '5.2.0'; diff --git a/docs/release-checklist.md b/docs/release-checklist.md new file mode 100644 index 00000000..c0122a99 --- /dev/null +++ b/docs/release-checklist.md @@ -0,0 +1,89 @@ +# Release Checklist + +Mandatory checklist for version bump and release. **Every version bump MUST follow this checklist.** + +> **Incident:** v5.2.0 release failed because `version.ts` and `plugin/package.json` were not bumped. +> CI caught the mismatch, but the manual review missed it. + +## Version Files — Complete List + +All files below MUST have matching versions. **Missing even one will fail the release CI.** + +| # | File | Purpose | Auto-sync? | +|---|------|---------|-----------| +| 1 | `apps/mcp-server/package.json` | MCP server version (primary source) | Manual | +| 2 | `apps/mcp-server/src/shared/version.ts` | Runtime VERSION constant | Manual | +| 3 | `packages/rules/package.json` | Rules package version | Manual | +| 4 | `packages/claude-code-plugin/package.json` | Plugin package version | `sync-version` script | +| 5 | `packages/claude-code-plugin/.claude-plugin/plugin.json` | Plugin manifest version | `sync-version` script | + +## Bump Procedure + +### Step 1: Bump primary source + +Edit `apps/mcp-server/package.json` → update `version` field. + +### Step 2: Bump version.ts + +Edit `apps/mcp-server/src/shared/version.ts` → update `VERSION` constant. + +### Step 3: Bump rules package + +Edit `packages/rules/package.json` → update `version` field. + +### Step 4: Run sync-version + +```bash +yarn workspace codingbuddy-claude-plugin sync-version +``` + +This automatically syncs: +- `packages/claude-code-plugin/package.json` (version + peerDependencies) +- `packages/claude-code-plugin/.claude-plugin/plugin.json` (version) + +### Step 5: Verify — MANDATORY + +```bash +# Run this BEFORE committing. All must show the same version. +VERSION="X.Y.Z" +echo "Checking all version files for $VERSION..." + +grep -q "\"version\": \"$VERSION\"" apps/mcp-server/package.json && echo "✅ mcp-server" || echo "❌ mcp-server" +grep -q "VERSION = '$VERSION'" apps/mcp-server/src/shared/version.ts && echo "✅ version.ts" || echo "❌ version.ts" +grep -q "\"version\": \"$VERSION\"" packages/rules/package.json && echo "✅ rules" || echo "❌ rules" +grep -q "\"version\": \"$VERSION\"" packages/claude-code-plugin/package.json && echo "✅ plugin pkg" || echo "❌ plugin pkg" +grep -q "\"version\": \"$VERSION\"" packages/claude-code-plugin/.claude-plugin/plugin.json && echo "✅ plugin manifest" || echo "❌ plugin manifest" + +# No remaining old version +grep -rn "OLD_VERSION" --include="*.ts" --include="*.json" apps/ packages/ | grep -v node_modules | grep -v CHANGELOG && echo "❌ OLD VERSION FOUND" || echo "✅ Clean" +``` + +### Step 6: Commit + PR + +```bash +git add -A +git commit -m "chore: bump version to X.Y.Z" +# Create PR, wait for CI, merge +``` + +### Step 7: Tag (user only) + +```bash +git tag vX.Y.Z +git push origin vX.Y.Z +``` + +## Common Mistakes + +| Mistake | Prevention | +|---------|-----------| +| Forgot `version.ts` | Step 2 is explicit — version.ts is separate from package.json | +| Forgot `plugin/package.json` | Step 4 `sync-version` handles this automatically | +| Forgot to run `sync-version` | Step 4 is a separate explicit step | +| Version mismatch between files | Step 5 verification catches this | +| Old version remains in codebase | Step 5 grep check catches this | + +## CI Validation + +The `release.yml` workflow validates all version files match the git tag. +If any mismatch is found, the release fails with a clear error message listing which files are wrong. diff --git a/packages/claude-code-plugin/package.json b/packages/claude-code-plugin/package.json index 461309aa..a18cf966 100644 --- a/packages/claude-code-plugin/package.json +++ b/packages/claude-code-plugin/package.json @@ -1,6 +1,6 @@ { "name": "codingbuddy-claude-plugin", - "version": "5.1.3", + "version": "5.2.0", "description": "Claude Code Plugin for CodingBuddy - PLAN/ACT/EVAL workflow, specialist agents, and reusable skills", "author": "JeremyDev87", "license": "MIT", @@ -49,7 +49,7 @@ "test:coverage": "vitest run --coverage" }, "peerDependencies": { - "codingbuddy": "^5.1.3" + "codingbuddy": "^5.2.0" }, "peerDependenciesMeta": { "codingbuddy": { diff --git a/yarn.lock b/yarn.lock index 03e1c631..7a2fd002 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5521,7 +5521,7 @@ __metadata: typescript: "npm:5.9.3" vitest: "npm:4.0.17" peerDependencies: - codingbuddy: ^5.1.3 + codingbuddy: ^5.2.0 peerDependenciesMeta: codingbuddy: optional: true