release-har

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Release 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
undefined

Uncommitted 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
undefined
git tag --sort=-v:refname | head -5
undefined

Step 2: Determine Version

步骤2:确定版本号

VersionChange 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:
FileUpdate Method
package.json
"version": "X.Y.Z"
pyproject.toml
version = "X.Y.Z"
VERSION
Direct content update
Cargo.toml
version = "X.Y.Z"
Skip if no applicable file exists
根据项目配置更新对应版本文件:
文件更新方式
package.json
修改
"version": "X.Y.Z"
pyproject.toml
修改
version = "X.Y.Z"
VERSION
直接更新文件内容
Cargo.toml
修改
version = "X.Y.Z"
若无适用文件则跳过此步骤

Step 5: Commit and Tag

步骤5:提交并创建标签

bash
undefined
bash
undefined

Stage

暂存所有更改

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"
undefined
git tag -a vX.Y.Z -m "Release vX.Y.Z"
undefined

Step 6: Push

步骤6:推送代码

bash
undefined
bash
undefined

Push branch

推送分支

git push origin $(git branch --show-current)
git push origin $(git branch --show-current)

Push tag

推送标签

git push origin vX.Y.Z
undefined
git push origin vX.Y.Z
undefined

Step 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

变更内容

  • Change 1
  • Change 2

---
  • 变更1
  • 变更2

---

Options

选项参数

OptionDescription
patch
Auto-increment patch version
minor
Auto-increment minor version
major
Auto-increment major version
--dry-run
Preview only, no execution

选项描述
patch
自动升级patch版本号
minor
自动升级minor版本号
major
自动升级major版本号
--dry-run
仅预览操作,不实际执行

Project-Specific Handling

项目专属处理方式

Node.js (package.json)

Node.js(package.json)

bash
npm version patch --no-git-tag-version
bash
npm version patch --no-git-tag-version

Python (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

相关技能

  • x-release-harness
    - Harness plugin specific release (local only)
  • verify
    - Pre-release verification
  • x-release-harness
    - Harness插件专属发布工具(仅本地使用)
  • verify
    - 发布前验证工具