|
| 1 | +--- |
| 2 | +description: "Create a new release of the Roo Code extension" |
| 3 | +argument-hint: patch | minor | major |
| 4 | +--- |
| 5 | + |
| 6 | +1. Identify the SHA corresponding to the most recent release using GitHub CLI: `gh release view --json tagName,targetCommitish,publishedAt` |
| 7 | +2. Analyze changes since the last release using: `gh pr list --state merged --json number,title,author,url,mergedAt,closingIssuesReferences --limit 1000 -q '[.[] | select(.mergedAt > "TIMESTAMP") | {number, title, author: .author.login, url, mergedAt, issues: .closingIssuesReferences}] | sort_by(.number)'` |
| 8 | +3. For each PR with linked issues, fetch the issue details to get the issue reporter: `gh issue view ISSUE_NUMBER --json number,author -q '{number, reporter: .author.login}'` |
| 9 | +4. Summarize the changes. If the user did not specify, ask them whether this should be a major, minor, or patch release. |
| 10 | +5. Create a changeset in .changeset/v[version].md instead of directly modifying package.json. The format is: |
| 11 | + |
| 12 | +``` |
| 13 | +--- |
| 14 | +"roo-cline": patch|minor|major |
| 15 | +--- |
| 16 | +[list of changes] |
| 17 | +``` |
| 18 | + |
| 19 | +- Always include contributor attribution using format: (thanks @username!) |
| 20 | +- For PRs that close issues, also include the issue number and reporter: "- Fix: Description (#123 by @reporter, PR by @contributor)" |
| 21 | +- For PRs without linked issues, use the standard format: "- Add support for feature (thanks @contributor!)" |
| 22 | +- Provide brief descriptions of each item to explain the change |
| 23 | +- Order the list from most important to least important |
| 24 | +- Example formats: |
| 25 | + - With issue: "- Fix: Resolve memory leak in extension (#456 by @issueReporter, PR by @prAuthor)" |
| 26 | + - Without issue: "- Add support for Gemini 2.5 Pro caching (thanks @contributor!)" |
| 27 | +- CRITICAL: Include EVERY SINGLE PR in the changeset - don't assume you know which ones are important. Count the total PRs to verify completeness and cross-reference the list to ensure nothing is missed. |
| 28 | + |
| 29 | +6. If a major or minor release: |
| 30 | + - Ask the user what the three most important areas to highlight are in the release |
| 31 | + - Update the English version relevant announcement files and documentation (webview-ui/src/components/chat/Announcement.tsx, README.md, and the `latestAnnouncementId` in src/core/webview/ClineProvider.ts) |
| 32 | + - Ask the user to confirm that the English version looks good to them before proceeding |
| 33 | + - Use the new_task tool to create a subtask in `translate` mode with detailed instructions of which content needs to be translated into all supported languages (The READMEs as well as the translation strings) |
| 34 | +7. Create a new branch for the release preparation: `git checkout -b release/v[version]` |
| 35 | +8. Commit and push the changeset file and any documentation updates to the repository: `git add . && git commit -m "chore: add changeset for v[version]" && git push origin release/v[version]` |
| 36 | +9. Create a pull request for the release: `gh pr create --title "Release v[version]" --body "Release preparation for v[version]. This PR includes the changeset and any necessary documentation updates." --base main --head release/v[version]` |
| 37 | +10. The GitHub Actions workflow will automatically: |
| 38 | + - Create a version bump PR when changesets are merged to main |
| 39 | + - Update the CHANGELOG.md with proper formatting |
| 40 | + - Publish the release when the version bump PR is merged |
0 commit comments