Files
orbit/docs/reports/phase-7-sdk-release.md

32 lines
2.7 KiB
Markdown
Raw 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.
# 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:
```json
{"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":30,"forbidden_dependencies":0}
```
该轮覆盖 SDK 核心、Worker/事件客户端、流程/任务 API、全部负载工具、全部可运行示例及 result-inbox/task-outbox;新增文件转换示例的单元测试也通过。协议常量、路由和 schema 的当前版本同步检查由 [`make protocol-check`](../sdk/compatibility.md) 通过。文档本地链接、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 当前回归状态](phase-7-regression-status.md)。这证明独立业务 module 的真实数据库接入可运行,但不等同于全部示例、跨版本协议矩阵或生产拓扑验收。
同一工具链还完成了 24 个 SDK 可运行示例及三个负载工具的真实 Orbit 服务串跑,逐项核对任务、Worker、事件订阅、定时、资源、流程和恢复结果;负载工具输出均为 `complete=true` 且 `unverified=0`。这批结果补齐了当前候选的示例可运行性证据,仍不能替代跨标签兼容、目标数据库拓扑和生产容量验收。
## 发布边界
本报告记录本地独立发布门禁。后续 Go 1.27.1 标准全量集成结果见[当前回归状态](phase-7-regression-status.md),首个远端接入版本及取包方式见[SDK 发布说明](../sdk/release.md)。正式生产候选仍需建立旧 SDK/新服务端、新 SDK/旧服务端的完整协议兼容矩阵。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。