Files
go-omni/performance/apiWorkflowAcceptance.md

44 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# API、基础模块与业务示例验收
本轮将 API 项目生成与数据库、存储、日志选项组合,新增可运行的用户管理示例。
源码及 CLI 目标版本为 v0.7.0-preview。
## 本地结果
- 框架 `GO_OMNI_SCAFFOLD_INTEGRATION=1 go test -race -p=2 -count=1 -timeout=300s ./...`:39 个有测试包通过。
- 包含 10 种 API 组合(none/mysql × none/local/s3/r2/oss)及既有 10 种 CRUD 模块组合;生成项目实际编译并运行测试。
- `go vet ./...`、`go build ./...`、`git diff --check` 通过。
- API 基础回归:starter 与契约项目,在 nethttp/native 共 54 项检查通过。
- 独立用户示例:nethttp/native 共 30 项业务、存储和生命周期检查通过。
- MySQL 真实事务:提交、错误回滚、panic 回滚、context 取消回滚;业务增/改/删在审计写入失败时整体回滚。
- 通过 CLI 显式应用数据库迁移;数据库停机 readiness=503,恢复后重新就绪;进程重启数据仍在。
- 本地初轮 28 份开发者拥有的文件在重生成后保持原字节,包括业务实现、配置、迁移和测试。
- 存储初始化失败关闭此前打开的数据库连接,Close 可重复调用,关闭后不能重开存储。
数据库容器只绑定 localhost,限制 1 CPU / 768 MiB,使用随机临时密钥,退出删除容器及卷。
所有服务器进程都是本机临时子进程;未使用业务服务器。OSS/R2 仍不包含云账号实测。
## 证据
- [完整框架测试](apiWorkflowTests.txt)
- [本地业务报告](apiWorkflowLocal.json)
- [API 回归](apiGenerationLocal.json)
- [模块脚手架回归](scaffoldModulesLocal.json)
## 远程版本验收
已发布 `v0.7.0-preview`,标签指向 `0ce3efb6fca77951e7ae3046128f82afc28446d1`。
执行 `python3 scripts/verifyAPIWorkflow.py --version v0.7.0-preview --report performance/apiWorkflowRemote.json` 通过:
- 从空 module cache 下载并安装远程 CLI,未使用源码构建的 CLI。
- 在全新目录生成 MySQL + local 项目;go.mod 固定 `v0.7.0-preview`,无本地 replace,实际编译通过。
- 独立用户示例的框架依赖从远程下载,module checksum 为 `h1:aHdKHoegW2C7sjkq5D8ls2sxDJ+fWbiZ2UnWDers1yg=`。
- nethttp/native 共 30 项业务、存储、日志与生命周期检查通过;真实数据库迁移、事务和启动清理测试通过。
- 最终示例补充了数据库错误日志边界:原始 driver 错误可能含业务输入,因此返回到 HTTP 访问日志的 500 不携带原文;用单元测试和远程全流程验证。
- 框架发布标签保持不变;示例是独立 module,后续示例和验收报告维护在 main。报告记录了实际测试示例与生成器源码哈希。
[远程验收报告](apiWorkflowRemote.json) 包含准确的文件保护数量、sourceHashes 和各项检查结果。
所有验收已结束,临时服务、数据库容器和测试目录由脚本清理。