Files
go-omni/performance/scaffoldModulesAcceptance.md

22 lines
2.6 KiB
Markdown
Raw Permalink 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.
# 脚手架模块装配验收
2026-09-23,本机 macOS arm64 / Go 1.27.1,使用当前本地框架源码。新模板目标版本 v0.7.0-preview 尚未发布,验收使用显式本地 replace。
完成内容:
- CLI 可选日志输出 stdout/stderr/file、JSON/text 格式、对象存储 none/local/s3/r2/oss,与 memory/mysql 数据库独立组合。
- 生成严格的 YAML/JSON 配置、环境变量覆盖、凭据检查、专用客户端连接池和资源关闭代码。
- 用户创建日志、服务端上传、直传链接、临时下载链接和错误处理示例;新增项目测试覆盖配置优先级、关闭幂等性/所有权、关闭后不可重新初始化,以及文件接口行为。
- 生成器在写文件前验证参数和渲染所有模板;修复目标目录尚不存在时的 macOS /var 符号链接路径计算;拒绝将新模块模板与旧远程框架版本组合。强制重新生成时不自动删除旧代码,存在不兼容遗留文件会提前拒绝。
验收结果:
1. `GO_OMNI_SCAFFOLD_INTEGRATION=1 go test -race -p=2 -count=1 -timeout=240s ./...` 全部通过(37 个有测试的框架包)。其中 10 种数据库/存储组合分别编译并执行生成项目的 race 测试;实际 MySQL 集成用例未提供数据库时跳过。原始输出见 [scaffoldModulesTests.txt](scaffoldModulesTests.txt)。
2. `go vet ./...`、`go build ./...`、`git diff --check` 通过。
3. `python3 scripts/verifyScaffoldModules.py` 验证四种真实服务组合:stderr/json/nethttp/SIGTERM、stdout/text/native/SIGINT、file/json/native/SIGTERM、file/text/nethttp/SIGINT。全部退出码 0、端口释放。每组验证上传/下载字节、直传、篡改签名 403、认证 401、大小 413、类型 415、非法 key 400、对象缺失 404,以及缺少示例 Token 时启动失败。
4. 日志包含业务事件与 requestId,签名入口保留真实状态码,未记录示例 Token 或签名 URL。
运行结果、模板/生成器源码 SHA-256 和日志摘要见 [scaffoldModulesLocal.json](scaffoldModulesLocal.json),生成项目的测试输出见 [scaffoldModulesLocal.txt](scaffoldModulesLocal.txt)。临时项目、二进制和测试进程已清理。
边界:本轮真实接口验收使用 Local。S3/R2/OSS 生成项目完成编译、配置/构造检查与基于 Local 的业务接口测试,没有访问云账号;MySQL 组合完成编译,本轮未再次运行真实数据库事务验收。示例共享 Token 授权整个文件模块,业务上线仍应替换认证和对象归属规则;这不构成固定用户/租户上下文。当前改动未推送或打标签。