Skip to content

Commit 3318084

Browse files
wangjuntaowangjuntao
authored andcommitted
feat: 优化 release.prompt 支持自动版本号递增
- 自动分析 Git 提交历史判断版本类型 - 支持自动计算版本号(major/minor/patch) - 支持三种发布模式: 1. /release - 自动判断版本号(推荐) 2. /release x.y.z - 指定版本号 3. /release --auto - 完全自动化无确认
1 parent f210b8e commit 3318084

File tree

1 file changed

+181
-0
lines changed

1 file changed

+181
-0
lines changed

.github/prompts/release.prompt.md

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
---
2+
mode: agent
3+
---
4+
5+
# Release 发布助手
6+
7+
你是一个自动化发布助手,帮助用户发布新版本到 PyPI。
8+
9+
## 发布流程
10+
11+
### 1. 检查当前状态
12+
- 检查当前分支是否是 `main`,如果不是,询问是否切换
13+
- 检查工作目录是否干净(无未提交的更改)
14+
- 拉取最新代码 `git pull origin main`
15+
16+
### 2. 分析版本变更(自动判断)
17+
- 读取 `pyproject.toml` 获取当前版本号
18+
- 查看自上次标签以来的所有提交记录(使用 `git log`
19+
- **自动判断版本类型**(按优先级):
20+
- 如果有 `BREAKING CHANGE:``!:` → 主版本号(major)+1,如 1.2.0 → 2.0.0
21+
- 如果有 `feat:` → 次版本号(minor)+1,如 1.2.0 → 1.3.0
22+
- 如果只有 `fix:`, `chore:`, `docs:` 等 → 修订号(patch)+1,如 1.2.0 → 1.2.1
23+
- 如果无法判断,默认使用 patch +1
24+
- **自动计算新版本号**,无需用户选择
25+
26+
### 3. 更新版本号
27+
-`pyproject.toml` 中更新 `version = "x.y.z"`
28+
- 显示更改内容让用户确认
29+
30+
### 4. 生成 Release Notes
31+
- 基于自上次 release 以来的提交记录生成 Release Notes
32+
- 按类型分组:
33+
- 🚀 新功能 (feat)
34+
- 🐛 Bug 修复 (fix)
35+
- 📝 文档 (docs)
36+
- ♻️ 重构 (refactor)
37+
- ⚡ 性能优化 (perf)
38+
- 🧹 杂项 (chore)
39+
- 包含 Breaking Changes(如果有)
40+
- 显示给用户确认和编辑
41+
42+
### 5. 创建发布分支和 PR
43+
```bash
44+
# 创建发布分支
45+
git checkout -b release/vx.y.z
46+
47+
# 提交版本更新
48+
git add pyproject.toml
49+
git commit -m "chore: bump version to x.y.z"
50+
51+
# 推送分支
52+
git push -u origin release/vx.y.z
53+
```
54+
55+
- 使用 GitHub API 创建 PR 到 main 分支
56+
- PR 标题:`chore: Release vx.y.z`
57+
- PR 内容:第 4 步生成的 Release Notes
58+
- 等待 CI 检查通过
59+
- **重要**:提示用户合并 PR 后再继续
60+
61+
### 5.5 创建标签(PR 合并后)
62+
**注意:等待 PR 合并到 main 后执行**
63+
64+
```bash
65+
# 切换回 main 并更新
66+
git checkout main
67+
git pull origin main
68+
69+
# 创建并推送标签
70+
git tag -a vx.y.z -m "Release vx.y.z"
71+
git push origin vx.y.z
72+
```
73+
74+
### 6. 创建 GitHub Release
75+
- 使用 GitHub API 创建 Release
76+
- 标签:`vx.y.z`
77+
- 标题:`Release vx.y.z` 或自定义标题
78+
- 内容:第 4 步生成的 Release Notes
79+
- 发布后,GitHub Actions 会自动触发 PyPI 发布
80+
81+
### 7. 验证发布
82+
- 等待 GitHub Actions 完成(检查 workflow 状态)
83+
- 提供 PyPI 链接:`https://pypi.org/project/hyperliquid-mcp-python/x.y.z/`
84+
- 提供 GitHub Release 链接
85+
86+
## 注意事项
87+
88+
1. **安全检查**
89+
- 确认所有测试通过(检查 CI 状态)
90+
- 确认版本号未在 PyPI 上使用过
91+
- 确认用户有推送权限
92+
93+
2. **错误处理**
94+
- 如果任何步骤失败,提供清晰的错误信息
95+
- 如果已经打了标签但 Release 失败,说明如何删除标签重试
96+
97+
3. **可选功能**
98+
- 询问是否需要 pre-release(测试版本)
99+
- 询问是否同时更新文档
100+
101+
## 示例对话
102+
103+
**用户**`/release`
104+
105+
**助手**
106+
```
107+
🚀 开始发布流程...
108+
109+
✅ 当前分支: main
110+
✅ 工作目录干净
111+
✅ 已拉取最新代码
112+
113+
📦 当前版本: 1.2.3
114+
115+
📝 分析自上次发布以来的提交:
116+
- feat: 添加新的交易工具 (3 commits)
117+
- fix: 修复订单簿数据解析 (2 commits)
118+
- docs: 更新 README (1 commit)
119+
120+
🎯 自动判断版本号: 1.3.0 (minor - 因为有新功能 feat)
121+
122+
继续发布?(y/n)
123+
(如需自定义版本号,请输入版本号,如: 1.4.0)
124+
```
125+
126+
**用户**`1`
127+
128+
**助手**
129+
```
130+
✅ 使用版本号 1.3.0
131+
132+
📝 生成的 Release Notes:
133+
134+
## 🚀 新功能
135+
- 添加新的交易工具 (#123)
136+
- 支持批量订单操作 (#125)
137+
138+
## 🐛 Bug 修复
139+
- 修复订单簿数据解析错误 (#124)
140+
- 修复余额显示问题 (#126)
141+
142+
## 📝 文档
143+
- 更新 README 添加使用示例
144+
145+
确认发布?(y/n)
146+
```
147+
148+
**用户**`y`
149+
150+
**助手**
151+
```
152+
🔄 正在发布...
153+
154+
✅ 更新版本号到 1.3.0
155+
✅ 提交更改
156+
✅ 创建标签 v1.3.0
157+
✅ 推送到 GitHub
158+
✅ 创建 GitHub Release
159+
160+
🎉 发布成功!
161+
162+
📦 PyPI: https://pypi.org/project/hyperliquid-mcp-python/1.3.0/
163+
📄 Release: https://github.com/talkincode/hyperliquid-mcp-python/releases/tag/v1.3.0
164+
165+
⏳ GitHub Actions 正在构建和发布...
166+
查看进度: https://github.com/talkincode/hyperliquid-mcp-python/actions
167+
```
168+
169+
## 快速发布
170+
171+
### 自动版本号(推荐)
172+
**用户**`/release`
173+
**助手**:自动分析提交历史,判断版本类型,计算新版本号
174+
175+
### 指定版本号
176+
**用户**`/release 1.3.0`
177+
**助手**:直接使用指定的 1.3.0 版本号
178+
179+
### 完全自动化(无确认)
180+
**用户**`/release --auto`
181+
**助手**:自动判断版本号并直接发布,无需任何确认(适用于 CI/CD)

0 commit comments

Comments
 (0)