28 lines
1.9 KiB
Markdown
28 lines
1.9 KiB
Markdown
# 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 环境执行门禁,退出码为 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`](../sdk/compatibility.md) 通过。文档本地链接、shell 语法和 `git diff --check` 同步通过。该门禁不包含真实 MySQL/进程集成,后者仍按目标工具链单独执行。
|
||
|
||
## 发布边界
|
||
|
||
SDK 当前仍未发布正式版本标签。正式候选还需在资源充足环境用 Go 1.27.1 完成真实 MySQL/进程标准集成回归,建立旧 SDK/新服务端、新 SDK/旧服务端的协议兼容矩阵,并在干净 checkout 中验证版本标签、校验和与业务项目 `go mod tidy`。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。
|