2.3 KiB
P7:SDK 独立发布门禁
验证日期:2026-09-20。本批为 SDK 发布准备增加独立 module 门禁,确保业务项目不会隐式依赖 Orbit 服务端模型、迁移或 MySQL。
门禁内容
scripts/test-sdk-isolation.sh 在 SDK 目录强制 GOWORK=off,检查 go.mod 和完整依赖图,拒绝服务端内部包、平台模型、Pulse/Weave 包及 MySQL 驱动,然后运行:
go test -race ./...go vet ./...go build ./...
门禁不发布模块、不生成 replace 路径,也不把 API 兼容性结论扩大到未执行的旧/新版本组合。
实际结果
先在 Docker Go 1.25 临时 modfile 环境执行门禁,退出码为 0;随后在仓库声明的 Docker Go 1.27.1 环境使用真实 go.mod/GOWORK=off 重跑 SDK、全部示例和两个独立业务模块,race、vet、build 均退出 0:
@@BT@json {"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":27,"forbidden_dependencies":0} @@BT@
该轮覆盖 SDK 核心、Worker/事件客户端、流程/任务 API、全部负载工具、全部可运行示例及 result-inbox/task-outbox;新增文件转换示例的单元测试也通过。协议常量、路由和 schema 的当前版本同步检查由 make protocol-check 通过。文档本地链接、shell 语法和 git diff --check 同步通过。该门禁不包含真实 MySQL/进程集成,后者仍按目标工具链单独执行。
随后在 Docker Go 1.27.1、MySQL 8.4.10 和真实 Orbit HTTP 服务下,独立复跑了 result-inbox 与 task-outbox 的 Integration 测试;两组均覆盖业务 COMMIT 回执丢失、进程故障接管或 ACK 前恢复等边界,并完成初始化与 demo,具体耗时和范围见 P7 当前回归状态。这证明独立业务 module 的真实数据库接入可运行,但不等同于全部示例、跨版本协议矩阵或生产拓扑验收。
发布边界
SDK 当前仍未发布正式版本标签。正式候选还需在资源充足环境用 Go 1.27.1 完成真实 MySQL/进程标准集成回归,建立旧 SDK/新服务端、新 SDK/旧服务端的协议兼容矩阵,并在干净 checkout 中验证版本标签、校验和与业务项目 go mod tidy。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。