Просмотр исходного кода

docs: update release workflow with learnings from first run

Saoud Rizwan 2 недель назад
Родитель
Сommit
b315be397d
1 измененных файлов с 55 добавлено и 29 удалено
  1. 55 29
      .clinerules/workflows/release.md

+ 55 - 29
.clinerules/workflows/release.md

@@ -9,8 +9,10 @@ This workflow helps you:
 2. Clean up the changelog (fix version format, wordsmith entries)
 3. Push changes back to the PR branch
 4. Merge with proper commit message format
-5. Tag and push the release
-6. Provide next steps for publishing
+5. Tag and push the release (after verifying the commit)
+6. Trigger the publish workflow
+7. Update GitHub release notes
+8. Provide final summary with Slack announcement
 
 ## Step 1: Find the Changeset PR
 
@@ -38,7 +40,12 @@ Checkout the PR branch:
 ```bash
 git fetch origin changeset-release/main
 git checkout changeset-release/main
-git pull origin changeset-release/main
+```
+
+If the branch has diverged from remote, reset to the remote version:
+
+```bash
+git reset --hard origin/changeset-release/main
 ```
 
 ## Step 3: Analyze the Changes
@@ -106,47 +113,47 @@ VERSION=<version from package.json>
 gh pr merge $PR_NUMBER --squash --subject "v${VERSION} Release Notes" --body ""
 ```
 
+**If merge is blocked by branch protection:**
+- Users with admin privileges can add the `--admin` flag to bypass
+- Users without admin privileges need to get the PR approved through normal review first before merging
+
 ## Step 7: Tag the Release
 
-After the merge completes, tag the release:
+After the merge completes, checkout main and pull:
 
 ```bash
 git checkout main
 git pull origin main
-VERSION=<version>
-git tag v${VERSION}
-git push origin v${VERSION}
 ```
 
-## Step 8: Return to Main and Summary
-
-Ensure we're back on main:
+**IMPORTANT: Verify the latest commit is the release commit before tagging:**
 
 ```bash
-git checkout main
+git log -1 --oneline
 ```
 
-**Copy a Slack announcement message to clipboard:**
+Confirm the commit message matches `v{VERSION} Release Notes` (e.g., `v3.44.1 Release Notes`). Do NOT blindly tag HEAD without verification.
 
-```
-VS Code v{VERSION} Released
+Once verified, tag and push:
 
-Highlights:
-- Key change 1
-- Key change 2
-- Key change 3
+```bash
+VERSION=<version>
+git tag v${VERSION}
+git push origin v${VERSION}
 ```
 
-**Present a final summary:**
-- Version released: v{VERSION}
-- PR merged: #{PR_NUMBER}
-- Tag pushed: v{VERSION}
-- Slack message copied to clipboard
+## Step 8: Trigger Publish Workflow
+
+**Copy the tag to clipboard** so the user can easily paste it into the GitHub Actions workflow:
 
-**Remind the user to:**
-1. Trigger the publish release GitHub Action at: https://github.com/cline/cline/actions/workflows/publish.yml
-   - Select "release" for release-type
-   - Enter `v{VERSION}` as the tag
+```bash
+echo -n "v{VERSION}" | pbcopy
+```
+
+**Tell the user to trigger the publish workflow:**
+1. Go to: https://github.com/cline/cline/actions/workflows/publish.yml
+2. Select **"release"** for release-type
+3. Paste **`v{VERSION}`** as the tag (already in clipboard)
 
 **Wait for the user** to confirm the publish workflow has completed before proceeding.
 
@@ -182,8 +189,27 @@ Verify the release was updated:
 gh release view v${VERSION}
 ```
 
-**Final reminders:**
-1. Post the Slack message to announce the release
+## Step 10: Final Summary
+
+**Copy a Slack announcement message to clipboard** (include the full changelog, not just highlights):
+
+```bash
+echo "VS Code v{VERSION} Released
+
+- Changelog entry 1
+- Changelog entry 2
+- Changelog entry 3" | pbcopy
+```
+
+**Present a final summary:**
+- Version released: v{VERSION}
+- PR merged: #{PR_NUMBER}
+- Tag pushed: v{VERSION}
+- Release: https://github.com/cline/cline/releases/tag/v{VERSION}
+- Slack message copied to clipboard
+
+**Final reminder:**
+Post the Slack message to announce the release
 
 ## Handling Edge Cases