Gitea 的 Release 全流程走 REST API(实测可行),不用点网页: - docs/release/publish_release.py(纯标准库,无依赖):校验 tag → 建/更新 Release → 上传附件 → 回读自检;支持 --dry-run / --draft / --prerelease / --expect-commit / --no-asset / --insecure - 默认先比对本地 tag 与远端 tag 指向的提交,不一致直接拒绝 —— 2026.11.05 就是 tag 落后 12 个提交,源码包是旧代码且外表看不出来 - .url 里仍是 REPLACE_WITH_YOUR_LINK 时拒绝发版(--force 可跳过) - 附件同名先删再传,脚本可重复执行(幂等) - docs/release/README.md 改为「一条命令发版 + 手工兜底」两套流程,附实测记录 - 根 README 发布流程、AGENTS.md 发版清单挂上脚本用法 实测:临时 tag 走完整流程 创建 201 → 上传 201 → 下载 200(内容正确)→ 重复执行后只有一个同名附件 → 删除干净(release 204 / tag 已清)。 注意 Gitea 附件字段名必须是 attachment,用 file 会 500 "http: no such file"。
开发文档索引
本目录汇总各子项目的开发文档。
| 文档 | 内容 |
|---|---|
| ../AGENTS.md | 入口文件:给 AI / 新人的一页纸——硬规则、构建命令、验证方法、代码地图、发版清单(开工前先读这份) |
| 开发文档.md | GM 启动器 / 整合工具 完整开发文档(环境搭建、架构、API 契约、打包部署、常见问题) |
| 服务端开发文档.md | 服务端(Go) 架构、GM 接口契约、拍卖行/背包改动、编译部署 |
| PVF解析开发文档.md | PVF 解析 套件(pvfine)、pvfexport 工具、离线名称显示集成 |
| 客户端补丁与CRC校验.md | 客户端补丁(90CN.dll) 自校验机制、patch_dll_crc.py 用法、与「服务端 DLL 指纹」的区别、排查手册 |
| 启动器窗口风暴排查.md | 启动器重复开窗口 / 页面空白 的根因(打包后 sys.executable 指向自身)、复现手法、修复点与日志判读 |
| 踩坑记录.md | 踩坑合集(13 条):每条只写现象 / 成因 / 为什么没早发现 / 教训,开头是一句话教训总表,结尾是发版检查清单 |
| launcher-README.md | 整合启动器 + GM 工具的原始 README |
其余子项目的 README 分散在各自目录:
server/README.md— 服务端源码说明pvf/README.md— pvfine 项目说明gmtool/README.md— GM 工具旧版说明
快速上手路径
- 任何人(含 AI)接手:先读 ../AGENTS.md,再回来按场景选文档。
- 只想跑起来:看根目录 README 的「快速开始」。
- 改 GM 工具(启动器):看 开发文档.md。
- 改服务端 GM 接口:看 服务端开发文档.md 的「GM 接口契约」。
- 改 PVF 解析 / 物品名:看 PVF解析开发文档.md。
- 改客户端补丁 / 重编 DLL:看 客户端补丁与CRC校验.md——改完 DLL 要补 CRC,并且要重编服务端。
- 遇到怪问题先翻 踩坑记录.md:13 条坑的一句话教训和判断规则,可能已经记过了。