release-version
Release Version Workflow
Overview
A complete release workflow for MioSub that handles version bumping, changelog generation from git history, grouped commits, tagging, and GitHub CI monitoring.
When to Use
- User says "发布新版本", "release", "发版"
- User requests a version release
- Before publishing a new release to GitHub
Workflow Steps
Step 0: Pre-flight Questions
Ask the user:
- Version number - What version to release? (e.g., 2.12.0)
- Pre-release? - Is this a pre-release version? (affects GitHub release settings)
Step 1: Check and Commit Uncommitted Changes
- Run
git statusto check for uncommitted changes - If changes exist:
- Analyze the changes by topic/feature
- Group related changes together
- Create separate commits for each topic group
- Use conventional commit messages (feat:, fix:, chore:, etc.)
Step 2: Generate Changelog
-
Find the previous version tag:
git describe --tags --abbrev=0 -
Get all commits since last tag:
git log <previous-tag>..HEAD --oneline -
Read each commit's details to categorize:
- Features - New functionality (feat:)
- Fixes - Bug fixes (fix:)
- Refactor - Code improvements (refactor:)
- Chore - Maintenance tasks (chore:)
- Documentation - Doc updates (docs:)
- Performance - Performance improvements (perf:)
Exclude from changelog (internal/infrastructure changes not relevant to users):
- Error tracking changes (Sentry integration, error reporting)
- Analytics/telemetry service modifications
- Internal monitoring or logging infrastructure
-
Update changelog files in the documentation site (bilingual):
English (
docs/content/docs/en/changelog.mdx):- Add new version section after the frontmatter and intro paragraph
- Format:
## [X.X.X] - YYYY-MM-DD(no 'v' prefix) - Group entries by category (Keep a Changelog format)
- Use English descriptions
Chinese (
docs/content/docs/zh/changelog.mdx):- Mirror the same structure as English
- Translate all descriptions to Chinese
- Use Chinese category names: 新功能, 修复, 重构, 杂项, 文档, 性能
-
Update
package.json:- Change
"version": "X.X.X"to new version (no 'v' prefix)
- Change
Step 3: Commit Release Files
git add docs/content/docs/en/changelog.mdx docs/content/docs/zh/changelog.mdx package.json
git commit -m "Release vX.X.X"
Note: Commit message uses 'v' prefix, but version strings in files do not.
Step 4: Tag and Push
git tag vX.X.X
git push origin main
git push origin vX.X.X
Note: Tag uses 'v' prefix (e.g., v2.12.0).
Step 5: Monitor GitHub CI
-
Track the GitHub Actions workflow:
gh run list --workflow=release.yml --limit=1 gh run watch <run-id> -
Report build status to user:
- Success: Provide release URL
- Failure: Show error details
Quick Reference
| Step | Command | Purpose |
|---|---|---|
| Check status | git status |
Find uncommitted changes |
| Previous tag | git describe --tags --abbrev=0 |
Get last release tag |
| Commit log | git log <tag>..HEAD --oneline |
List changes since release |
| Create tag | git tag vX.X.X |
Create version tag |
| Push tag | git push origin vX.X.X |
Trigger CI build |
| Watch CI | gh run watch |
Monitor build progress |
Version Format Rules
| Location | Format | Example |
|---|---|---|
| Git tag | With 'v' prefix | v2.12.0 |
| Commit message | With 'v' prefix | Release v2.12.0 |
| changelog.mdx (en/zh) | No 'v' prefix | ## [2.12.0] - 2026-01-06 |
| package.json | No 'v' prefix | "version": "2.12.0" |
Changelog File Locations
| Language | Path |
|---|---|
| English | docs/content/docs/en/changelog.mdx |
| Chinese | docs/content/docs/zh/changelog.mdx |
CHANGELOG Format (English)
## [X.X.X] - YYYY-MM-DD
### Features
- **Component**: Description of new feature.
### Fixes
- **Component**: Description of bug fix.
### Refactor
- **Component**: Description of refactoring.
### Chore
- **Component**: Maintenance description.
CHANGELOG Format (Chinese)
## [X.X.X] - YYYY-MM-DD
### 新功能
- **组件名**: 新功能描述。
### 修复
- **组件名**: Bug 修复描述。
### 重构
- **组件名**: 重构描述。
### 杂项
- **组件名**: 维护工作描述。
Category Name Mapping
| English | Chinese |
|---|---|
| Features | 新功能 |
| Fixes | 修复 |
| Refactor | 重构 |
| Chore | 杂项 |
| Documentation | 文档 |
| Performance | 性能 |
| Highlights | 亮点 |
| Improvements | 改进 |
| Other Changes | 其他变更 |
Common Mistakes
| Mistake | Fix |
|---|---|
| Forgetting to push the tag | CI only triggers on tag push, not commit push |
| Wrong version in package.json | Version must match tag (without 'v' prefix) |
| Changelog in wrong position | New version goes after the frontmatter, before previous versions |
| Not grouping commits | Related changes should be in one commit for cleaner history |
| Inconsistent 'v' prefix | Tag and commit use 'v', files don't |
| Missing Chinese translation | Both en and zh changelog files must be updated together |
| Mismatched category translations | Use the Category Name Mapping table for consistency |
Pre-release Handling
For pre-release versions:
- Use version format:
X.X.X-beta.1,X.X.X-rc.1 - Tag format:
vX.X.X-beta.1 - Note: Current CI workflow sets
prerelease: false- may need manual adjustment in GitHub release
More from corvo007/miosub
react-component-dev
React/TypeScript component development guidelines for Gemini-Subtitle-Pro. Use when creating components, pages, modals, forms, or working with TailwindCSS, hooks, and React 19 patterns. Covers component architecture, styling with Tailwind, state management, performance optimization, and accessibility.
14video-promo-planning
Use when planning promotional videos for software products - guides through style selection, content structure, script writing, and title/thumbnail design. Triggers on "视频宣传", "promotional video", "B站视频", "YouTube video", "产品演示视频", or video marketing requests.
5electron-dev
Electron main process and IPC development guidelines for Gemini-Subtitle-Pro. Use when working with IPC handlers, preload scripts, native integrations (ffmpeg, whisper, yt-dlp), file system operations, and desktop-specific features. Covers security requirements, IPC patterns, and cross-process communication.
3writing-plans
Use when you have a spec or requirements for a multi-step task, before touching code
1frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
1brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
1