docs: add automated release steps to contributing guide#598
docs: add automated release steps to contributing guide#598
Conversation
WalkthroughAdded a new release automation skill document Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Dev as Developer
participant Script as Release Script
participant Git as Git
participant Files as Filesystem
participant Flutter as Flutter/Dart
participant CocoaPods as CocoaPods
participant GH as GitHub CLI
Dev->>Script: invoke /release (patch|minor|major)
Script->>Files: read `pubspec.yaml` (old version)
Script->>Script: compute NEW_VERSION
Script->>Git: create & switch to `release/NEW_VERSION`
Script->>Files: update `pubspec.yaml`, `README.md` references
Script->>Flutter: run `flutter pub get` in `example/` and `test_integration/` (skip/report missing)
Script->>CocoaPods: run `pod install` in iOS dirs (skip/report missing/unavailable)
Script->>Files: detect changed files
Script->>Git: commit changes `chore: bump version to NEW_VERSION`
Script->>GH: query `gh pr list` / Git log for PRs since `vOLD_VERSION`
GH-->>Script: return merged PR list (or none)
Script->>Files: insert NEW_VERSION section into `CHANGELOG.md` with bullets
Script->>Git: commit `docs: update CHANGELOG for NEW_VERSION`
Script->>Dev: output run summary and next manual steps (push, PR, tag, release)
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.claude/skills/release/SKILL.md (1)
44-45: Avoid fixed PR cap to prevent incomplete changelogs.Line 44’s
--limit 200can silently omit merged PRs for longer release windows. Prefer pagination or date-filtered querying so changelog generation is complete.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.claude/skills/release/SKILL.md around lines 44 - 45, The changelog generation uses a fixed cap (--limit 200) in the gh pr list invocation which can omit merged PRs; replace the fixed --limit 200 usage in the command string with either a paginated query or a date-filtered query (e.g., use gh's pagination or add --search/--merged & date bounds) so the code that builds the gh pr list call (the string containing "--limit 200") fetches all merged PRs for the release window instead of silently truncating results.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/release/SKILL.md:
- Around line 26-29: The markdown uses unlabeled fenced code blocks (e.g.,
blocks containing "cd example && flutter pub get && cd ..", "pod install
--project-directory=example/ios", "gh pr list --state merged --base main --json
number,title,mergedAt --limit 200", "git log vOLD_VERSION --format=\"%aI\" -1",
and the changelog bullet lists) which triggers MD040; update each fenced block
in SKILL.md so the shell/CLI blocks use a language identifier like ```bash and
the changelog/bullet blocks use ```md to satisfy markdownlint.
In `@CONTRIBUTING.md`:
- Line 184: Update the incorrect Release Workflow link in CONTRIBUTING.md:
replace the href that points to
"https://github.com/ably/ably-python/actions/workflows/release.yml" (the
"Release Workflow" link text) with the correct workflow URL for this
repository’s release workflow so maintainers are directed to this repo’s
actions/workflows/release.yml; ensure the visible link text ("Release Workflow")
remains the same.
---
Nitpick comments:
In @.claude/skills/release/SKILL.md:
- Around line 44-45: The changelog generation uses a fixed cap (--limit 200) in
the gh pr list invocation which can omit merged PRs; replace the fixed --limit
200 usage in the command string with either a paginated query or a date-filtered
query (e.g., use gh's pagination or add --search/--merged & date bounds) so the
code that builds the gh pr list call (the string containing "--limit 200")
fetches all merged PRs for the release window instead of silently truncating
results.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6f6f6aae-fe6d-4bdf-ac9b-303b72c3430b
📒 Files selected for processing (2)
.claude/skills/release/SKILL.mdCONTRIBUTING.md
…Claude Code process - Expanded release instructions in `CONTRIBUTING.md` to include automated release steps using Claude Code. - Clarified the manual release process as a fallback. - Added `.claude/skills/release/SKILL.md` to define the automated process and usage details.
There was a problem hiding this comment.
♻️ Duplicate comments (1)
.claude/skills/release/SKILL.md (1)
26-29:⚠️ Potential issue | 🟡 MinorAdd language identifiers to fenced blocks to satisfy markdownlint (MD040).
Unlabeled fenced blocks remain in multiple places; add
bashfor CLI commands andmdfor markdown templates.Proposed fix
- ``` + ```bash cd example && flutter pub get && cd .. cd test_integration && flutter pub get && cd .. ``` - ``` + ```bash pod install --project-directory=example/ios pod install --project-directory=test_integration/ios ``` - ``` + ```bash gh pr list --state merged --base main --json number,title,mergedAt --limit 200 ``` - ``` + ```bash git log vOLD_VERSION --format="%aI" -1 ``` - ``` + ```md - Short, one sentence summary from PR title [`#NUMBER`](https://github.com/ably/ably-flutter/pull/NUMBER) ``` -``` +```md ## [NEW_VERSION](https://github.com/ably/ably-flutter/tree/vNEW_VERSION) [Full Changelog](https://github.com/ably/ably-flutter/compare/vOLD_VERSION...vNEW_VERSION) BULLETS_FROM_STEP_5</details> Also applies to: 33-36, 43-45, 47-49, 51-53, 58-65 <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In @.claude/skills/release/SKILL.md around lines 26 - 29, Several fenced code
blocks in SKILL.md lack language identifiers; update each unlabeled
triple-backtick block (including the blocks containing the CLI snippets "cd
example && flutter pub get...", "pod install --project-directory=example/ios",
"gh pr list --state merged --base main --json ...", and "git log vOLD_VERSION
--format="%aI" -1") to usebash, and update the template blocks that contain "- Short, one sentence summary..." and the "## [NEW_VERSION]..." changelog template to usemd so markdownlint MD040 is satisfied.</details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In @.claude/skills/release/SKILL.md:
- Around line 26-29: Several fenced code blocks in SKILL.md lack language
identifiers; update each unlabeled triple-backtick block (including the blocks
containing the CLI snippets "cd example && flutter pub get...", "pod install
--project-directory=example/ios", "gh pr list --state merged --base main --json
...", and "git log vOLD_VERSION --format="%aI" -1") to usebash, and update the template blocks that contain "- Short, one sentence summary..." and the "## [NEW_VERSION]..." changelog template to usemd so markdownlint MD040 is
satisfied.</details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: Organization UI **Review profile**: CHILL **Plan**: Pro **Run ID**: `ca594753-31fd-40d5-9882-225db87dee39` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 838f3514916f37e385b935327e3cc6fec78b9435 and 82238f3f85446fdd786f6d18ab37966931153fa2. </details> <details> <summary>📒 Files selected for processing (2)</summary> * `.claude/skills/release/SKILL.md` * `CONTRIBUTING.md` </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
CONTRIBUTING.mdto include automated release steps using Claude Code..claude/skills/release/SKILL.mdto define the automated process and usage details.Summary by CodeRabbit