diff --git a/.roo/commands/cli-release.md b/.roo/commands/cli-release.md new file mode 100644 index 0000000000..c90b239215 --- /dev/null +++ b/.roo/commands/cli-release.md @@ -0,0 +1,82 @@ +--- +description: "Create a new release of the Roo Code CLI" +argument-hint: "[version-description]" +mode: code +--- + +1. Identify changes since the last CLI release: + + - Get the last CLI release tag: `gh release list --limit 10 | grep "cli-v"` + - View changes since last release: `git log cli-v..HEAD -- apps/cli --oneline` + - Or for uncommitted changes: `git diff --stat -- apps/cli` + +2. Review and summarize the changes to determine an appropriate changelog entry. Group changes by type: + + - **Added**: New features + - **Changed**: Changes to existing functionality + - **Fixed**: Bug fixes + - **Removed**: Removed features + - **Tests**: New or updated tests + +3. Bump the version in `apps/cli/package.json`: + + - Increment the patch version (e.g., 0.0.43 → 0.0.44) for bug fixes and minor changes + - Increment the minor version (e.g., 0.0.43 → 0.1.0) for new features + - Increment the major version (e.g., 0.0.43 → 1.0.0) for breaking changes + +4. Update `apps/cli/CHANGELOG.md` with a new entry: + + - Add a new section at the top (below the header) following this format: + + ```markdown + ## [X.Y.Z] - YYYY-MM-DD + + ### Added + + - Description of new features + + ### Changed + + - Description of changes + + ### Fixed + + - Description of bug fixes + ``` + + - Use the current date in YYYY-MM-DD format + - Include links to relevant source files where helpful + - Describe changes from the user's perspective + +5. Commit the version bump and changelog update: + + ```bash + git add apps/cli/package.json apps/cli/CHANGELOG.md + git commit -m "chore(cli): prepare release v" + ``` + +6. Run the release script from the monorepo root: + + ```bash + ./apps/cli/scripts/release.sh + ``` + + The release script will automatically: + + - Build the extension and CLI + - Create a platform-specific tarball + - Verify the installation works correctly (runs --help, --version, and e2e test) + - Extract changelog content and include it in the GitHub release notes + - Create the GitHub release with the tarball attached + +7. After a successful release, verify: + - Check the release page: https://github.com/RooCodeInc/Roo-Code/releases + - Verify the "What's New" section contains the changelog content + - Test installation: `curl -fsSL https://raw.githubusercontent.com/RooCodeInc/Roo-Code/main/apps/cli/install.sh | sh` + +**Notes:** + +- The release script requires GitHub CLI (`gh`) to be installed and authenticated +- If a release already exists for the tag, the script will prompt to delete and recreate it +- The script creates a tarball for the current platform only (darwin-arm64, darwin-x64, linux-arm64, or linux-x64) +- Multi-platform releases require running the script on each platform and manually uploading additional tarballs diff --git a/apps/cli/.gitignore b/apps/cli/.gitignore new file mode 100644 index 0000000000..4a2b1a2eea --- /dev/null +++ b/apps/cli/.gitignore @@ -0,0 +1 @@ +.verify-release/ diff --git a/apps/cli/CHANGELOG.md b/apps/cli/CHANGELOG.md index e945354bf2..c9fb3dbbf8 100644 --- a/apps/cli/CHANGELOG.md +++ b/apps/cli/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to the `@roo-code/cli` package will be documented in this fi The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.0.43] - Unreleased +## [0.0.43] - 2026-01-07 ### Added diff --git a/apps/cli/package.json b/apps/cli/package.json index 5bfbd1cd3e..bca8346666 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,6 +1,6 @@ { "name": "@roo-code/cli", - "version": "0.0.42", + "version": "0.0.43", "description": "Roo Code CLI - Run the Roo Code agent from the command line", "private": true, "type": "module",