docs: record verified v0.1.0 remote SDK release

This commit is contained in:
2026-09-20 23:10:57 +08:00
parent 0e8b2ef297
commit bf76f13430
5 changed files with 47 additions and 5 deletions

View File

@@ -32,7 +32,7 @@
### 首个远端接入版本 ### 首个远端接入版本
本批按用户要求发布仓库 `main` 及 `v0.1.0` 接入版本,独立 SDK 使用标签 `sdk/go/v0.1.0`,供业务项目直接 `go get`。同步移除手册中“尚未发布、必须本地替换”的接入说明,发布后在仓库外使用空模块缓存验证匿名下载、固定版本、无 `replace` 构建与校验和,记录实际远端验证结果。该交付不关闭上方目标环境及完整跨版本生产验收项。 已按用户要求推送仓库 `main` 及 `v0.1.0` 接入版本,独立 SDK 标签为 `sdk/go/v0.1.0`,供业务项目直接 `go get`。两个标签固定提交 `0e8b2ef2975df6b55f2240dd14eda83adf30ea94`;仓库外空模块缓存下载、固定版本、无 `replace` 编译、HTTP smoke 和校验和验证已通过,见[远端发布报告](reports/phase-7-sdk-remote-release.md)。本机验证沿用系统网络代理及公开 Go 模块代理,保持 sumdb 校验。该交付不关闭上方目标环境及完整跨版本生产验收项。
## 2. 持续推进方式 ## 2. 持续推进方式

View File

@@ -6,11 +6,11 @@
| 项目 | 证据/命令 | 状态 | | 项目 | 证据/命令 | 状态 |
| --- | --- | --- | | --- | --- | --- |
| 服务端与 SDK 代码来自同一提交 | `git rev-parse HEAD`;发布时记录不可变提交 | 待发布候选冻结 | | 服务端与 SDK 代码来自同一提交 | 解引用 `v0.1.0` 与 `sdk/go/v0.1.0` | 已固定同一提交,空缓存外部项目取包/编译/校验和通过,见[远端发布报告](reports/phase-7-sdk-remote-release.md);生产发布审批仍待完成 |
| Go 工具链 | Go 1.27.1;Docker `golang:1.27.1`,真实 `go.mod`/`GOWORK=off` | 模块级 race/vet/build、MySQL 存储/进程组、24 个 SDK 示例及两个独立业务模块真实集成已通过;发布环境仍需复核 | | Go 工具链 | Go 1.27.1;Docker `golang:1.27.1`,真实 `go.mod`/`GOWORK=off` | 模块级 race/vet/build、MySQL 存储/进程组、24 个 SDK 示例及两个独立业务模块真实集成已通过;发布环境仍需复核 |
| 容器发布物 | `make image`;[容器发布说明](21-container-deployment.md) | native linux/arm64 与显式 linux/amd64 镜像构建已通过,支持注入版本身份并由 `/version` 核对;生产镜像标签、摘要、签名和目标编排环境仍需冻结 | | 容器发布物 | `make image`;[容器发布说明](21-container-deployment.md) | native linux/arm64 与显式 linux/amd64 镜像构建已通过,支持注入版本身份并由 `/version` 核对;生产镜像标签、摘要、签名和目标编排环境仍需冻结 |
| 发布物身份清单 | `orbit-admin release manifest`、`orbit-admin verify --manifest`;[运维接口](api/operations.md) | 已实现无需数据库的机器可读清单及部署前二进制绑定校验,包含构建身份、协议版本和全部迁移校验和;正式发布仍需把清单、镜像摘要与目标库 `verify` 输出一并冻结 | | 发布物身份清单 | `orbit-admin release manifest`、`orbit-admin verify --manifest`;[运维接口](api/operations.md) | 已实现无需数据库的机器可读清单及部署前二进制绑定校验,包含构建身份、协议版本和全部迁移校验和;正式发布仍需把清单、镜像摘要与目标库 `verify` 输出一并冻结 |
| 服务端单元、竞态、vet、build | `make test && make vet && make build` | Go 1.27.1 Docker 等价命令已通过;宿主机 `make` 因未安装 Go 不能作为本机证据 | | 服务端单元、竞态、vet、build | `make test && make vet && make build` | Go 1.27.1 Docker 及宿主机本地门禁已通过,见[当前回归状态](reports/phase-7-regression-status.md) |
| 当前协议线一致 | `make protocol-check` | 已通过:HTTP `/v1`、Worker/Event v1、流程 schema 1 | | 当前协议线一致 | `make protocol-check` | 已通过:HTTP `/v1`、Worker/Event v1、流程 schema 1 |
| SDK 独立性和发布门禁 | `make sdk-check` | Go 1.27.1 Docker 下独立 module、示例和业务模块 race/vet/build 已通过 | | SDK 独立性和发布门禁 | `make sdk-check` | Go 1.27.1 Docker 下独立 module、示例和业务模块 race/vet/build 已通过 |
| 文档与示例 | 本清单、[接口手册](api/README.md)、[SDK手册](sdk/README.md)、[场景示例](examples/README.md) | 文档链接和 JSON 块已检查;宿主机全量端到端见[当前回归状态](reports/phase-7-regression-status.md) | | 文档与示例 | 本清单、[接口手册](api/README.md)、[SDK手册](sdk/README.md)、[场景示例](examples/README.md) | 文档链接和 JSON 块已检查;宿主机全量端到端见[当前回归状态](reports/phase-7-regression-status.md) |

View File

@@ -0,0 +1,42 @@
# P7:首个远端 SDK 接入版本
验证日期:2026-09-20。仓库为公开的 [k2safe/orbit](https://git.yuntuo.hk/k2safe/orbit),默认分支为 `main`。本批完成源码推送、独立 SDK 版本发布和真实外部项目取包验证。
## 发布身份
| 发布物 | Git 标签 | 不可变源码提交 |
| --- | --- | --- |
| Orbit 服务端 | `v0.1.0` | `0e8b2ef2975df6b55f2240dd14eda83adf30ea94` |
| 独立 Go SDK | `sdk/go/v0.1.0` | `0e8b2ef2975df6b55f2240dd14eda83adf30ea94` |
通过公开 Git 远端读取标签并解引用,确认两个标签指向同一提交。仓库 API 返回 `private=false`、`empty=false`、`default_branch=main`。`main` 后续可以继续更新文档和代码,接入方应固定上述 SDK 版本。
## 外部项目验证
环境为 Go 1.27.1、darwin/arm64。在仓库外创建 `example.com/orbit-remote-consumer`,使用空 `GOMODCACHE`、独立 `GOPATH`、`GOWORK=off` 和 `GOENV=off`;未添加任何 `replace`。关闭 Go HTTP 身份认证及全局 Git 配置,SDK 通过公开代理下载。
本机 Go 进程直连代理发生网络超时。最终使用 `GOPROXY=https://goproxy.cn,direct`,并仅在验证进程中沿用系统已有的 HTTP/HTTPS 网络代理。保留 `GOSUMDB=sum.golang.org`,未设置 `GOPRIVATE` 或 `GONOSUMDB`,未关闭校验和验证,也未修改用户全局 Go/Git 设置。
| 验证 | 实际结果 |
| --- | --- |
| `go get git.yuntuo.hk/k2safe/orbit/sdk/go@v0.1.0` | 从空缓存下载 SDK 和 `github.com/coder/websocket v1.8.15`,退出 0 |
| `go mod tidy` | 退出 0 |
| 外部项目 `go build` | 退出 0 |
| 外部项目运行 SDK HTTP smoke | 真实调用本地 `httptest` HTTP 服务的健康接口,输出 `remote_sdk_http_smoke=passed`,退出 0 |
| `go mod verify` | `all modules verified`,退出 0 |
| `go list -m -json` | `Version=v0.1.0`、`GoVersion=1.27.1`、无 `Replace` |
| 本地独立 SDK 门禁 | race、vet、build 通过;30 个包,禁止依赖为 0 |
| 协议与文档门禁 | 当前 HTTP/Worker/Event/schema 契约匹配,Markdown 本地链接检查通过 |
下载得到的模块校验和:
```text
git.yuntuo.hk/k2safe/orbit/sdk/go v0.1.0 h1:OJp+U8dDNKjiXy4ZhO4MMq68Ek8TkjphUAqsjOOg77c=
git.yuntuo.hk/k2safe/orbit/sdk/go v0.1.0/go.mod h1:9KlMW7Gy+EGaDoEwr3wHHFY47mnAymSfYeQpMS7h4ag=
```
业务接入命令、导入方式和场景见 [SDK 手册](../sdk/README.md#5-外部项目通过远端接入)。若网络无法访问默认模块代理,可单次执行 `GOPROXY=https://goproxy.cn,direct go get git.yuntuo.hk/k2safe/orbit/sdk/go@v0.1.0`;需要网络代理的环境应让 Go 进程使用可用的网络代理,不需要关闭模块校验。
## 结论与边界
业务项目可以固定 `v0.1.0` 进行开发和测试接入,无需取得本机源码或配置本地替换。本批验证远端发布与取包,没有重新声明生产环境验收完成;真实 MySQL/进程全量回归沿用[已记录结果](phase-7-regression-status.md),生产容量、数据库自动切换、完整跨标签矩阵和运维条件仍按[交付清单](../release-checklist.md)完成。

View File

@@ -167,7 +167,7 @@ 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`。 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)。 这是开发与测试接入版本;生产部署仍按[交付清单](../release-checklist.md)完成目标环境验收。版本发布和校验规则见[发布说明](release.md),空缓存远端取包结果见[验证报告](../reports/phase-7-sdk-remote-release.md)。
## 6. 查询执行历史与证据 ## 6. 查询执行历史与证据

View File

@@ -40,6 +40,6 @@ go mod verify
仓库主分支为 `main`。服务端标签 `v0.1.0` 和独立 SDK 标签 `sdk/go/v0.1.0` 指向同一发布提交;Go 子模块标签必须包含 `sdk/go/` 前缀,业务端的模块版本不带此前缀。已发布标签保持不可变,修复使用新的补丁版本。`v0.1.0` 用于开发与测试接入,正式生产仍需完成[交付核对清单](../release-checklist.md)。 仓库主分支为 `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)验证旧/新组合。 `v0.1.0` 已在仓库外的新业务 module、空模块缓存和 `GOWORK=off` 下通过公开远端下载、`go mod tidy`、编译、SDK HTTP smoke 和 `go mod verify`,解析版本精确为 `v0.1.0` 且不存在 `Replace`。发布提交、校验和与网络条件见[远端验证报告](../reports/phase-7-sdk-remote-release.md)。后续发布继续重复这一步,并按[兼容矩阵](compatibility.md)验证旧/新组合。
本地联调可以临时添加 `replace`,但不能提交到业务项目的发布分支。SDK 不负责 TLS 终止、凭据托管、对象存储或外部副作用核查;这些边界仍由平台接口手册和接入方运行手册定义。 本地联调可以临时添加 `replace`,但不能提交到业务项目的发布分支。SDK 不负责 TLS 终止、凭据托管、对象存储或外部副作用核查;这些边界仍由平台接口手册和接入方运行手册定义。