release-har
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRelease Har Skill
Release Har 版本发布自动化技能
Universal release automation skill. Works with any project.
通用版本发布自动化技能,适用于任意项目。
Quick Reference
快速参考
- "release" ->
/release-har - "bump version" ->
/release-har patch - "minor release" ->
/release-har minor
- "发布版本" ->
/release-har - "升级版本号" ->
/release-har patch - "次要版本发布" ->
/release-har minor
Execution Flow
执行流程
Step 1: Check Current State
步骤1:检查当前状态
Run in parallel:
bash
undefined并行执行以下命令:
bash
undefinedUncommitted changes
未提交的更改
git status
git status
Changed files
修改的文件
git diff --stat
git diff --stat
Recent commit history
最近的提交历史
git log --oneline -10
git log --oneline -10
Existing tags
已存在的标签
git tag --sort=-v:refname | head -5
undefinedgit tag --sort=-v:refname | head -5
undefinedStep 2: Determine Version
步骤2:确定版本号
Based on Semantic Versioning:
| Version | Change Type |
|---|---|
| patch (x.y.Z) | Bug fixes, minor improvements |
| minor (x.Y.0) | New features (backward compatible) |
| major (X.0.0) | Breaking changes |
Ask user: "What should the next version be? (e.g., 1.2.3)"
基于语义化版本规范:
| 版本类型 | 变更类型 |
|---|---|
| patch (x.y.Z) | 修复Bug、小幅度优化 |
| minor (x.Y.0) | 新增功能(向后兼容) |
| major (X.0.0) | 破坏性变更 |
询问用户:"下一个版本号应该是什么?(例如:1.2.3)"
Step 3: Update CHANGELOG (if exists)
步骤3:更新CHANGELOG(如果存在)
If project has CHANGELOG.md, update it:
markdown
undefined如果项目中有CHANGELOG.md文件,进行如下更新:
markdown
undefined[X.Y.Z] - YYYY-MM-DD
[X.Y.Z] - YYYY-MM-DD
Added
新增
- New feature
- 新功能
Changed
变更
- Change description
- 变更描述
Fixed
修复
- Bug fix
**Skip if CHANGELOG does not exist**- Bug修复
**若不存在CHANGELOG则跳过此步骤**Step 4: Update Version Files (project-dependent)
步骤4:更新版本文件(依项目而定)
Update version files based on project configuration:
| File | Update Method |
|---|---|
| |
| |
| Direct content update |
| |
Skip if no applicable file exists
根据项目配置更新对应版本文件:
| 文件 | 更新方式 |
|---|---|
| 修改 |
| 修改 |
| 直接更新文件内容 |
| 修改 |
若无适用文件则跳过此步骤
Step 5: Commit and Tag
步骤5:提交并创建标签
bash
undefinedbash
undefinedStage
暂存所有更改
git add -A
git add -A
Commit (only if changes exist)
提交(仅当有更改时执行)
git commit -m "chore: release vX.Y.Z"
git commit -m "chore: release vX.Y.Z"
Create tag
创建标签
git tag -a vX.Y.Z -m "Release vX.Y.Z"
undefinedgit tag -a vX.Y.Z -m "Release vX.Y.Z"
undefinedStep 6: Push
步骤6:推送代码
bash
undefinedbash
undefinedPush branch
推送分支
git push origin $(git branch --show-current)
git push origin $(git branch --show-current)
Push tag
推送标签
git push origin vX.Y.Z
undefinedgit push origin vX.Y.Z
undefinedStep 7: GitHub Release (Optional)
步骤7:创建GitHub Release(可选)
After user confirmation, create GitHub Release:
bash
gh release create vX.Y.Z \
--title "vX.Y.Z - Title" \
--notes "$(cat <<'EOF'得到用户确认后,创建GitHub Release:
bash
gh release create vX.Y.Z \
--title "vX.Y.Z - Title" \
--notes "$(cat <<'EOF'What's Changed
变更内容
Options
选项参数
| Option | Description |
|---|---|
| Auto-increment patch version |
| Auto-increment minor version |
| Auto-increment major version |
| Preview only, no execution |
| 选项 | 描述 |
|---|---|
| 自动升级patch版本号 |
| 自动升级minor版本号 |
| 自动升级major版本号 |
| 仅预览操作,不实际执行 |
Project-Specific Handling
项目专属处理方式
Node.js (package.json)
Node.js(package.json)
bash
npm version patch --no-git-tag-versionbash
npm version patch --no-git-tag-versionPython (pyproject.toml)
Python(pyproject.toml)
Manually update
version = "X.Y.Z"手动更新
version = "X.Y.Z"Rust (Cargo.toml)
Rust(Cargo.toml)
Manually update
version = "X.Y.Z"手动更新
version = "X.Y.Z"Related Skills
相关技能
- - Harness plugin specific release (local only)
x-release-harness - - Pre-release verification
verify
- - Harness插件专属发布工具(仅本地使用)
x-release-harness - - 发布前验证工具
verify