feat: Enable alpha release channel support#3182
Conversation
- Add semver check to prevent showing "downgrades" as updates - Mark prerelease versions (alpha/beta) as prerelease on GitHub - Change development branch from 'develop' to 'dev' in workflows - Add release-tag.ts script for creating release tags - Add alpha release process documentation
WalkthroughBranch triggers updated from Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer (local)
participant Script as release-tag.ts
participant Git as Git (local/remote)
participant GH as GitHub (Actions & Releases)
Dev->>Script: run release-tag.ts
Script->>Script: read package.json, parse SemVer, determine channel
Script->>Git: fetch remote tags
Git-->>Script: remote tags list
Script->>Script: check for existing tag & compare versions
Script->>Dev: prompt confirm create & push tag
Dev-->>Script: confirm
Script->>Git: git tag & git push origin tag
Git-->>Script: push success
Script->>GH: pushed tag triggers Actions & Releases (prerelease set from SemVer)
GH-->>Script: workflow & release responses
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested labels
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: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/build-release.yml (1)
12-14: Concurrency group may not work correctly for push events.
github.head_refis only populated forpull_requestevents. Forpushevents (which this workflow triggers on), it will be empty, causing all push-triggered builds to potentially share the same concurrency group and cancel each other unexpectedly.Consider using a fallback:
🔧 Suggested fix
concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true
🤖 Fix all issues with AI agents
In `@scripts/release-tag.ts`:
- Around line 148-151: The git push command used in the push step is invalid
(`git push origin tag -- ${version.version}`); update the execSync call in
scripts/release-tag.ts (the block that logs "Pushing tag to origin..." and calls
execSync) to push the tag correctly by using `git push origin
${version.version}` or `git push origin refs/tags/${version.version}` so the tag
name is passed as the ref to push; keep the existing try/catch and stdio options
unchanged.
🧹 Nitpick comments (2)
.eslintignore (1)
4-6: Consider using a separate ESLint config for scripts instead of ignoring entirely.While the rationale is clear (utility scripts with different patterns), completely ignoring
/scriptsfrom linting means type errors, unused variables, and other issues won't be caught. An alternative approach would be to create a separate.eslintrcin the/scriptsdirectory with relaxed rules for the specific patterns (e.g., allowingconsole.log).docs/alpha-release-process.md (1)
5-63: Add a simple flow diagram + architecture note for channel/update files.The doc is clear, but it’s missing the required flow diagram and architecture explanation for the alpha-release mechanism (e.g., how
alpha.yml/beta.yml/latest.ymlmap to channel selection and updater behavior). Consider adding a short Mermaid flow diagram and a brief “How it works” section. As per coding guidelines, please add these elements.
Use refs/tags/ prefix instead of invalid 'git push origin tag --' syntax.
- Updated the bundle version in electron-builder.json from 26010 to 26011. - Incremented the application version in package.json from 4.11.1 to 4.12.0-alpha.1.
Summary
developtodevin workflowsscripts/release-tag.tsfor creating release tags interactivelyTest plan
4.12.0-alpha.1and test the alpha release workflowSummary by CodeRabbit
Bug Fixes
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.