Files
go-omni/RELEASE.md

3.6 KiB
Raw Blame History

v0.9.1-preview

本版补齐已有项目接入的两个框架缺口:标准数据库 Connector 注入,以及应用级 HTTP 读写超时配置。TLS、数据库驱动日志、字符集/时区、迁移与业务规则继续由项目决定。

安装与升级

go install git.yuntuo.hk/k2safe/go-omni/cmd/go-omni@v0.9.1-preview
# 在各业务 module 中:
go get git.yuntuo.hk/k2safe/go-omni@v0.9.1-preview

私有仓库使用本机 Git 凭据管理器,并将 git.yuntuo.hk 追加到已有 GOPRIVATE。CLI 和项目依赖使用同一固定版本。v0.9.0-preview 生成代码继续兼容,本次无需为了这两个入口重新生成接口。

接入变化

  • 将项目已有 sql.OpenDB(connector) 的池创建替换为 database.OpenConnector(ctx, connector, poolConfig);不要同时保留两个池。返回对象可用于 Health/InTx;需要标准库指针时取 .DB。
  • 项目原有 mysql.NewConnector、独立 TLS、driver Logger、驱动读写时限、MySQL 版本/时区/排序规则校验继续保留,配置不进入核心框架。
  • 将原来逐项修改 http.Server 的读写/空闲/头大小配置放入 omni.HTTPConfig,通过 WithHTTPConfig 或 WithConfig 传入。Go-only ErrorLog 支持 nethttp。
  • 原有 database.Open(ctx, Config)、手动组装 http.Server、自定义 Runner 均可继续使用。零 HTTP 配置保留所选网络层已有默认行为;正值覆盖,负值报错。

完整可复制示例:数据库 Connector、HTTP 配置及语义。其他迁移能力见 迁移扩展指南,从项目接入开始见 README。

边界

独立实验性 TransportHTTP2 本次支持 IdleTimeout/MaxHeaderBytes 的配置透传,但不支持读头、读请求和写响应超时,设置这些正值会在监听前明确报错。native 与标准库服务器的超时含义不完全相同,详见上表;网络超时不等于 Handler 执行时间限制。RunWith 自定义 Runner 的配置由项目管理。

Connector 必须遵守驱动 context 协议,资源所有权按标准 database/sql 管理。有资源的 Connector 不跨池共享;启动 Ping 失败关闭池,成功后应用负责关闭。没有把 eTax/ePay 的数据库策略写进框架,也未修改这些业务项目或宣称它们已完成迁移。

验证入口

GO_OMNI_SCAFFOLD_INTEGRATION=1 go test -race -p=1 -count=1 -timeout=300s ./...
go vet ./...
go build ./...
python3 scripts/verifyConnector.py --local --report performance/connectorLocal.json
python3 scripts/verifyConnector.py --version v0.9.1-preview --report performance/connectorRemote.json
python3 scripts/verifyCompatibilityRelease.py --version v0.9.1-preview --report performance/connectorCompatibilityRemote.json

Connector 脚本只使用本地独立 MySQL 8.4 容器,限制 1 CPU、768 MiB、128 PID,生成一次性 CA/证书及凭据,结束清理自己的容器/卷/临时文件。测试验证正确 TLS、错误 CA/主机名拒绝、每池时区/日志配置隔离、事务、关闭与失败回收。HTTP 测试使用回环地址验证慢头、慢 body、空闲连接、流式写背压及请求头上限。常规单测不依赖 Docker,显式脚本要求真实 TLS 测试通过,不能跳过。

历史发布及验收记录保留在 CHANGELOG、v0.9.0 接入验收。

全量 race(40 个测试包)、静态检查、构建及本地隔离验收已通过,详见 验收记录。