feat: add sdk isolation release gate

This commit is contained in:
2026-09-20 00:32:04 +08:00
parent 2c8d13a523
commit a722d19cd9
7 changed files with 108 additions and 2 deletions

View File

@@ -0,0 +1,27 @@
# P7:SDK 独立发布门禁
验证日期:2026-09-20。本批为 SDK 发布准备增加独立 module 门禁,确保业务项目不会隐式依赖 Orbit 服务端模型、迁移或 MySQL。
## 门禁内容
[`scripts/test-sdk-isolation.sh`](../../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 环境(仓库声明版本为 Go 1.27.1)执行门禁,退出码为 0:
``@@BT@json
{"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":27,"forbidden_dependencies":0}
``@@BT@
该轮覆盖 SDK 核心、Worker/事件客户端、流程/任务 API、负载工具和全部可运行示例;新增文件转换示例的单元测试也通过。文档本地链接、shell 语法和 `git diff --check` 同步通过。
## 发布边界
SDK 当前仍未发布正式版本标签。正式候选还需在资源充足环境用 Go 1.27.1 完成标准全量回归,建立旧 SDK/新服务端、新 SDK/旧服务端的协议兼容矩阵,并在干净 checkout 中验证版本标签、校验和与业务项目 `go mod tidy`。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。