Skip to content

Commit 1029fd5

Browse files
committed
docs(release): add version release checklist for consistency and traceability
1 parent d406e10 commit 1029fd5

File tree

1 file changed

+128
-0
lines changed

1 file changed

+128
-0
lines changed

Diff for: docs/发布 checklist.md

+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# ✅ 版本发布流程 Checklist
2+
3+
> 本文档用于规范化版本发布流程,确保每次发布都**一致、可审计、可追溯**
4+
> 当前项目版本管理方案基于:
5+
> - [`bump2version`](https://github.com/c4urself/bump2version):版本号控制
6+
> - 自定义脚本 `bump.py`:自动封装版本更新、changelog 生成、tag 创建、git 提交
7+
> - [`git-cliff`](https://github.com/orhun/git-cliff):自动生成 changelog
8+
> - 版本号遵循 [Semantic Versioning 2.0.0](https://semver.org/lang/zh-CN/)
9+
10+
---
11+
12+
## 📦 准备发布
13+
14+
### ✅ 1. 确保主分支是干净的
15+
16+
- 分支切换至主分支(如 `main``master`):
17+
```bash
18+
git checkout main
19+
git pull origin main
20+
```
21+
- 所有待发布的功能已合并进主分支
22+
- 本地无未提交更改(`git status` 应为空)
23+
24+
---
25+
26+
## 🧰 2. 运行发布脚本 bump.py
27+
28+
使用封装好的脚本自动完成以下内容:
29+
30+
- 更新版本号(修改 `pyproject.toml``.bumpversion.cfg``core/__init__.py` 等)
31+
- 同步 `uv.lock` 中的版本元信息
32+
- 自动生成 `CHANGELOG.md`(调用 `git-cliff`
33+
- 使用规范化格式提交变更
34+
- 自动打 Git tag(如 `v1.2.4`
35+
36+
### 🎯 命令示例:
37+
38+
```bash
39+
python -m utils.bump patch --commit --tag --changelog
40+
```
41+
42+
或使用其他版本级别(major / minor / pre-release):
43+
44+
```bash
45+
python -m utils.bump minor --commit --tag --changelog
46+
python -m utils.bump alpha --commit --tag
47+
```
48+
49+
---
50+
51+
## 📜 3. 自动生成的内容
52+
53+
### ✅ 提交信息格式:
54+
55+
```
56+
chore(release): 版本更新 v1.2.3 → v1.2.4
57+
```
58+
59+
### ✅ 更新的文件包括:
60+
61+
- `pyproject.toml`:版本号
62+
- `core/__init__.py``__version__`
63+
- `.bumpversion.cfg`:current_version
64+
- `uv.lock`:元信息 version
65+
- `CHANGELOG.md`:根据 git 提交历史生成(分组)
66+
67+
---
68+
69+
## 🏷️ 4. Git tag 自动生成
70+
71+
- 生成格式为 `v1.2.4`
72+
- tag 创建在主分支最新提交上
73+
- 可用于 CI/CD 构建与发布流程触发器
74+
75+
---
76+
77+
## ☁️ 5. 推送提交与 tag
78+
79+
完成变更后,统一推送代码和 tag:
80+
81+
```bash
82+
git push origin main --tags
83+
```
84+
85+
---
86+
87+
## 🧪 6. 后续验证
88+
89+
- CI/CD 会监听 tag 推送并触发构建
90+
- 可在 Git 平台(如 Gitea、GitHub)中验证:
91+
- tag 是否存在
92+
- changelog 是否正确
93+
- changelog 段落是否匹配该版本
94+
95+
---
96+
97+
## 🔒 7. 注意事项与最佳实践
98+
99+
| 项目 | 说明 |
100+
|---------------------|--------------------------------|
101+
| tag 必须在主分支上创建 | 避免 tag 指向临时或未发布的提交 |
102+
| 版本号应与 changelog 对应 | 生成日志前确保 `git log` 包含完整提交 |
103+
| commit message 遵循规范 | `chore(release): 版本更新 vX → vY` |
104+
| 每次发布都 bump | 避免重复使用旧版本号 |
105+
|`uv.lock` 纳入 Git | 保证依赖版本一致,避免构建漂移 |
106+
107+
---
108+
109+
## ✅ 参考命令速查表
110+
111+
| 操作 | 命令 |
112+
|------------------|-----------------------------------------------------------|
113+
| 增加补丁版本 | `python -m utils.bump patch --commit --tag --changelog` |
114+
| 增加次版本 | `python -m utils.bump minor --commit --tag --changelog` |
115+
| 发布正式版(移除 pre 标签) | `python -m utils.bump release --commit --tag --changelog` |
116+
| 添加预发布标签 | `python -m utils.bump rc --commit --tag` |
117+
| 仅查看当前版本 | `python -m utils.bump info` |
118+
119+
---
120+
121+
## ✅ 推荐工具版本依赖
122+
123+
| 工具 | 推荐安装方式 |
124+
|----------------|--------------------------------------------|
125+
| `bump2version` | `uv add bump2version` |
126+
| `git-cliff` | 下载二进制或使用 `cargo install git-cliff` |
127+
| `uv` | 用于依赖管理与 lock 更新 |
128+
| `tomli` | Python 解析 pyproject.toml(Python < 3.11 必装) |

0 commit comments

Comments
 (0)