Files
go-omni/performance/apiWorkflowAcceptance.md

2.9 KiB
Raw Permalink Blame History

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 仍不包含云账号实测。

证据

远程版本验收

已发布 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。报告记录了实际测试示例与生成器源码哈希。

远程验收报告 包含准确的文件保护数量、sourceHashes 和各项检查结果。

所有验收已结束,临时服务、数据库容器和测试目录由脚本清理。