docs: prepare v0.1.0 remote SDK integration release

This commit is contained in:
2026-09-20 23:04:23 +08:00
parent 662dc8d0d1
commit 8dfa0c5b9e
5 changed files with 49 additions and 21 deletions

View File

@@ -101,6 +101,12 @@ SDK 独立发布门禁使用 `make sdk-check`,在 `GOWORK=off` 下检查完整
- [容器发布说明](docs/21-container-deployment.md) - [容器发布说明](docs/21-container-deployment.md)
- [设计文档总览](docs/README.md) - [设计文档总览](docs/README.md)
Git 远端:`https://git.yuntuo.hk/k2safe/orbit.git`。当前在本地开发分支推进,SDK 尚未发布版本。 Git 远端:[k2safe/orbit](https://git.yuntuo.hk/k2safe/orbit),主分支 `main`。首个接入版本为 `v0.1.0`,业务项目使用 Go 1.27.1 或更高版本安装:
```sh
go get git.yuntuo.hk/k2safe/orbit/sdk/go@v0.1.0
```
无需本地 `replace`;导入方式、完整调用与版本边界见 [SDK 接入](docs/sdk/README.md#5-外部项目通过远端接入)。
[流程实例筛选分页](docs/api/workflow-queries.md)已提供独立SDK和[完整示例](docs/examples/workflow-query.md),按固定版本全部队列鉴权,数据库保持零外键。 [流程实例筛选分页](docs/api/workflow-queries.md)已提供独立SDK和[完整示例](docs/examples/workflow-query.md),按固定版本全部队列鉴权,数据库保持零外键。

View File

@@ -30,6 +30,10 @@
上述第 1–4 项完成并留证后,才可以给出正式生产容量和高可用结论;第 5 项在策略未批准前不进入自动删除实现。 上述第 1–4 项完成并留证后,才可以给出正式生产容量和高可用结论;第 5 项在策略未批准前不进入自动删除实现。
### 首个远端接入版本
本批按用户要求发布仓库 `main` 及 `v0.1.0` 接入版本,独立 SDK 使用标签 `sdk/go/v0.1.0`,供业务项目直接 `go get`。同步移除手册中“尚未发布、必须本地替换”的接入说明,发布后在仓库外使用空模块缓存验证匿名下载、固定版本、无 `replace` 构建与校验和,记录实际远端验证结果。该交付不关闭上方目标环境及完整跨版本生产验收项。
## 2. 持续推进方式 ## 2. 持续推进方式
每个阶段按以下顺序推进: 每个阶段按以下顺序推进:

View File

@@ -16,9 +16,9 @@
先在 Docker Go 1.25 临时 modfile 环境执行门禁,退出码为 0;随后在仓库声明的 Docker Go 1.27.1 环境使用真实 `go.mod`/`GOWORK=off` 重跑 SDK、全部示例和两个独立业务模块,race、vet、build 均退出 0: 先在 Docker Go 1.25 临时 modfile 环境执行门禁,退出码为 0;随后在仓库声明的 Docker Go 1.27.1 环境使用真实 `go.mod`/`GOWORK=off` 重跑 SDK、全部示例和两个独立业务模块,race、vet、build 均退出 0:
``@@BT@json ```json
{"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":30,"forbidden_dependencies":0} {"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":30,"forbidden_dependencies":0}
``@@BT@ ```
该轮覆盖 SDK 核心、Worker/事件客户端、流程/任务 API、全部负载工具、全部可运行示例及 result-inbox/task-outbox;新增文件转换示例的单元测试也通过。协议常量、路由和 schema 的当前版本同步检查由 [`make protocol-check`](../sdk/compatibility.md) 通过。文档本地链接、shell 语法和 `git diff --check` 同步通过。该门禁不包含真实 MySQL/进程集成,后者仍按目标工具链单独执行。 该轮覆盖 SDK 核心、Worker/事件客户端、流程/任务 API、全部负载工具、全部可运行示例及 result-inbox/task-outbox;新增文件转换示例的单元测试也通过。协议常量、路由和 schema 的当前版本同步检查由 [`make protocol-check`](../sdk/compatibility.md) 通过。文档本地链接、shell 语法和 `git diff --check` 同步通过。该门禁不包含真实 MySQL/进程集成,后者仍按目标工具链单独执行。
@@ -28,4 +28,4 @@
## 发布边界 ## 发布边界
SDK 当前仍未发布正式版本标签。正式候选还需在资源充足环境用 Go 1.27.1 完成真实 MySQL/进程标准集成回归,建立旧 SDK/新服务端、新 SDK/旧服务端的协议兼容矩阵,并在干净 checkout 中验证版本标签、校验和与业务项目 `go mod tidy`。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。 本报告记录本地独立发布门禁。后续 Go 1.27.1 标准全量集成结果见[当前回归状态](phase-7-regression-status.md),首个远端接入版本及取包方式见[SDK 发布说明](../sdk/release.md)。正式生产候选仍需建立旧 SDK/新服务端、新 SDK/旧服务端的完整协议兼容矩阵。独立门禁不能证明外部业务幂等、TLS、凭据托管或生产容量。

View File

@@ -144,17 +144,30 @@ Options.HTTPClient 可注入专用 HTTP 客户端。SDK 复制配置,不修改
健康响应最多 16 KiB,业务响应最多 1 MiB,请求最多 512 KiB。大业务内容应传对象引用。参数/result 使用 json.RawMessage,不转成 float64;revision 在 Go 中为 uint64,JSON 编码为字符串。服务端字段及上限见各接口手册。 健康响应最多 16 KiB,业务响应最多 1 MiB,请求最多 512 KiB。大业务内容应传对象引用。参数/result 使用 json.RawMessage,不转成 float64;revision 在 Go 中为 uint64,JSON 编码为字符串。服务端字段及上限见各接口手册。
## 5. 外部项目本地接入 ## 5. 外部项目通过远端接入
SDK 尚未发布版本。开发期可以用本地 replace: 业务项目需要 Go 1.27.1 或更高版本。在业务项目的 `go.mod` 所在目录安装首个接入版本:
```sh ```sh
go mod edit -require=git.yuntuo.hk/k2safe/orbit/sdk/go@v0.0.0 go get git.yuntuo.hk/k2safe/orbit/sdk/go@v0.1.0
go mod edit -replace=git.yuntuo.hk/k2safe/orbit/sdk/go=/absolute/path/to/orbit/sdk/go
go mod tidy
``` ```
将示例路径换成真实路径,不要把本机绝对路径作为发布依赖提交。后续会验证独立 module 标签和真实远端取包,再提供 go get 发布命令。当前源码同时验证 GOWORK=off 的独立构建。 代码中导入:
```go
import orbit "git.yuntuo.hk/k2safe/orbit/sdk/go"
```
添加实际调用后,执行:
```sh
go mod tidy
go mod verify
```
SDK 位于仓库子目录,对应 Git 标签为 `sdk/go/v0.1.0`;`go get` 使用模块版本 `v0.1.0`。服务端对应仓库标签为 `v0.1.0`。业务项目固定版本并提交 `go.mod` 与 `go.sum`,无需本地源码、`replace` 或 Orbit 的 `go.work`。如果此前配置过本地替换,先执行 `go mod edit -dropreplace=git.yuntuo.hk/k2safe/orbit/sdk/go`。
这是开发与测试接入版本;生产部署仍按[交付清单](../release-checklist.md)完成目标环境验收。版本发布和校验规则见[发布说明](release.md)。
## 6. 查询执行历史与证据 ## 6. 查询执行历史与证据

View File

@@ -6,10 +6,10 @@ SDK 位于独立 Go module `git.yuntuo.hk/k2safe/orbit/sdk/go`。它只能依赖
在仓库根目录执行: 在仓库根目录执行:
``@@BT@sh ```sh
GO=/path/to/go \ GO=/path/to/go \
sh scripts/test-sdk-isolation.sh sh scripts/test-sdk-isolation.sh
``@@BT@ ```
门禁会强制 `GOWORK=off`,检查 `go.mod` 和完整依赖图,然后运行: 门禁会强制 `GOWORK=off`,检查 `go.mod` 和完整依赖图,然后运行:
@@ -19,9 +19,9 @@ sh scripts/test-sdk-isolation.sh
成功输出示例: 成功输出示例:
``@@BT@json ```json
{"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":27,"forbidden_dependencies":0} {"sdk_module":"git.yuntuo.hk/k2safe/orbit/sdk/go","independent":true,"package_count":30,"forbidden_dependencies":0}
``@@BT@ ```
`package_count` 随示例增加而变化,不能作为兼容性版本号。门禁只证明源码在当前 Go 工具链下保持独立和可构建,不代表已经发布到远端模块代理,也不替代旧 SDK/新服务端和新 SDK/旧服务端的协议兼容矩阵。 `package_count` 随示例增加而变化,不能作为兼容性版本号。门禁只证明源码在当前 Go 工具链下保持独立和可构建,不代表已经发布到远端模块代理,也不替代旧 SDK/新服务端和新 SDK/旧服务端的协议兼容矩阵。
@@ -29,12 +29,17 @@ sh scripts/test-sdk-isolation.sh
## 接入方式 ## 接入方式
SDK 尚未发布正式标签时,开发项目可以使用本地 replace;发布候选必须使用独立 module 的版本标签和干净 checkout 验证。接入方应固定 SDK 版本,升级前先执行自己的接口和业务幂等回归: 首个接入版本为 `v0.1.0`,需要 Go 1.27.1 或更高版本。接入方应固定 SDK 版本,升级前先执行自己的接口和业务幂等回归:
``@@BT@sh ```sh
go mod edit -require=git.yuntuo.hk/k2safe/orbit/sdk/go@v0.0.0 go get git.yuntuo.hk/k2safe/orbit/sdk/go@v0.1.0
go mod edit -replace=git.yuntuo.hk/k2safe/orbit/sdk/go=/absolute/path/to/orbit/sdk/go # 在业务代码导入 SDK 并添加调用后:
go mod tidy go mod tidy
``@@BT@ go mod verify
```
替换路径只用于本地开发,不能提交到业务项目的发布分支。SDK 不负责 TLS 终止、凭据托管、对象存储或外部副作用核查;这些边界仍由平台接口手册和接入方运行手册定义。 仓库主分支为 `main`。服务端标签 `v0.1.0` 和独立 SDK 标签 `sdk/go/v0.1.0` 指向同一发布提交;Go 子模块标签必须包含 `sdk/go/` 前缀,业务端的模块版本不带此前缀。已发布标签保持不可变,修复使用新的补丁版本。`v0.1.0` 用于开发与测试接入,正式生产仍需完成[交付核对清单](../release-checklist.md)。
发布后需在仓库外新建业务 module、使用空模块缓存和 `GOWORK=off`,通过匿名远端下载,执行 `go mod tidy`、编译、SDK 调用 smoke 和 `go mod verify`,确认解析版本精确为 `v0.1.0` 且不存在 `Replace`。后续发布继续重复这一步,并按[兼容矩阵](compatibility.md)验证旧/新组合。
本地联调可以临时添加 `replace`,但不能提交到业务项目的发布分支。SDK 不负责 TLS 终止、凭据托管、对象存储或外部副作用核查;这些边界仍由平台接口手册和接入方运行手册定义。