-
Notifications
You must be signed in to change notification settings - Fork 0
ZH Testing and Publishing
TsGate 2.1.0: 本页使用
com.alandevise.tsgate.*。从 2.0.0 升级时须更新 import、反射类名和包扫描配置,并重新编译。Central 2.0.0 保留com.alandevise.tsdb.*。详见迁移步骤与发布状态。
TsGate 2.1.0 新增 tsgate-opengemini 与 tsgate-opengemini-spring-boot-starter,构建包含四个后端、九个 JAR 模块,2.1.0 BOM 管理这两个新模块。Central 2.0.0 不包含它们。准确的默认引擎版本与拓扑验证范围见 OpenGemini 接入指南。 2.1.0 生成 27 个 JAR 附件(二进制、源码、Javadoc 各九个);已发布 2.0.0 与下方历史验证快照仍为七个 JAR 模块 / 21 个 JAR 附件。编译和打包不代表已经上传或发布发行版本。
TsGate 2.1.0 已正式发布到 Maven Central。部署 10fe41e4-7cf7-45a6-bab1-f2b1e6098430 于 2026-10-03(Asia/Shanghai)进入 PUBLISHED 状态。发行对应 源码提交 8cf119e 与标签 v2.1.0;独立的 纯包名迁移提交 2cecd41 保留全部 91 个既有 Java 文件的历史。
本次发行包含十一个 Maven 模块:父 POM、独立 BOM 和九个 JAR 模块。全部 38 份主体制品(十一个 POM、27 份 binary/source/Javadoc 归档)均已从 Maven 公共仓库下载,SHA-256 全部与签名上传包一致。上传前已验证全部 38 份 PGP 签名及四种校验和。最终源码的 JDK 17/21/25 GitHub CI 也全部通过;准确的本地单测与 Docker 结果见兼容性与验证。
已发布坐标的 groupId 为 io.github.alandevise,版本为 2.1.0:BOM · OpenGemini starter。签名公钥指纹:D7FB5E1158537706FB2023D62DCFFB6B26BE7EB5。签名上传包 SHA-256:b6cbc4927587223bfbad9b613c63cf0894e1f014571368db8de4d4ce580c1193。下方历史 2.0.0 发布记录保持原样。
可移植测试源码和可复用配置已纳入各模块 src/test/。本地报告、机器专属夹具及凭据保留在 Git 忽略的 .local-test/ 中。准备 Java 17+、Maven 3.9+ 和 Python 3,在仓库根目录执行;集成测试另需 Docker:
python3 tsgate-core/src/test/scripts/run-tests.py unit --spring-boot 2.7.18
python3 tsgate-core/src/test/scripts/run-tests.py unit --spring-boot 2.7.18 --release-artifacts
python3 tsgate-core/src/test/scripts/run-tests.py docker --spring-boot 2.7.18通过 JAVA_HOME 选择 JDK。依赖缓存齐全时可使用 --offline --maven-repo /path/to/cache,复用已有数据库镜像时可使用 --pull never。报告写入新建的 .local-test/ci/ 子目录,也可用 --output 选择其他新的输出目录。准确数据库版本、运行时组合及验证边界见兼容性与验证。
未提供 --opengemini-url 时,代表版本 Docker runner 保留原有三个数据库的覆盖,并明确排除 OpenGemini*DockerIT,JSON 报告会记录排除状态;这不构成 openGemini 回归结果。提供已有部署后执行其可移植测试:
python3 tsgate-core/src/test/scripts/run-tests.py docker --spring-boot 2.7.18 \
--opengemini-url http://127.0.0.1:8086 --opengemini-version 1.5.2 \
--opengemini-urls http://127.0.0.1:8086,http://127.0.0.1:18086,http://127.0.0.1:28086 \
--opengemini-replicas 3单节点可省略 --opengemini-urls,副本数使用默认的 1。这些参数只连接外部服务器,共享 runner 不启动或移除它们。集群 URL 必须属于同一集群;测试按指定副本数创建隔离数据库,经每个 SQL 入口写入并核验模板/原生客户端读回。实际发行版本和集群成员证据与 HTTP 兼容读写分别记录。四种拓扑矩阵及夹具来源见专用指南。
CI 工作流在匹配的源码改动和 Pull Request 上执行 JDK 17 / Boot 2.7.18、JDK 21 / Boot 3.5.14、JDK 25 / Boot 4.1.0 三个单测组合。所有任务均选择 temurin 发行版。Java 17 发行任务检查运行时的 java.vendor = Eclipse Adoptium 和 java.specification.version = 17,执行制品检查脚本的回归测试,并构建和检查无签名发行制品,包括生成的第三方许可证材料。工作流使用只读仓库权限、固定 action 提交及七天报告保留期。代表版本 Docker 回归通过 workflow_dispatch 手动选择 run_docker=true 执行。
最终发行源码提交 8cf119e 已在 GitHub Actions 中通过三个 JDK / Spring Boot 组合及 Java 17 无签名发行制品检查。本次远端运行未请求 Docker;本次发行的 290 次本地 Docker 测试结果见兼容性指南。
发行构建使用 Eclipse Temurin 17.0.14+7、Maven 3.9+ 和 Python 3。显式选择 Temurin 安装目录,使 Maven 和 Javadoc 使用同一套工具链:
export JAVA_HOME=/path/to/temurin-17.0.14+7
export PATH="$JAVA_HOME/bin:$PATH"
java -version
mvn -version
mvn -Prelease-artifacts clean verify
python3 scripts/verify-release-artifacts.py --project-root . \
--output .local-test/release-artifacts.json这是生成发行附件时选择的 JDK 发行版,组件的 Java 17 基线保持不变。2.1.0 无签名构建生成二进制、源码和 Javadoc JAR 各九个,包含 LICENSE/NOTICE 材料,另有父 POM 与独立 BOM POM。Javadoc 从 delombok 后的源码生成,使自动生成的公共成员具有有效文档链接。普通 JAR 和源码附件只包含生产材料,不包含测试类、夹具凭据或本地报告。
保留 Javadoc 生成器提供的 legal/ 目录,以及生成的 JavaScript 和样式资源中的版权、许可声明。这些第三方材料保留各自的许可证;TsGate 的 Apache-2.0 LICENSE 和 NOTICE 适用于项目自有代码。制品检查脚本检查全部 27 个发行 JAR 归档,包括必需的第三方 Javadoc 许可证文件,并拒绝包含 Oracle 专有、保密或 OTN 许可标记的制品。检查失败时应使用指定的 Temurin 工具链重新构建,不应通过删除声明或改写许可头来使检查通过。
central-release profile 增加 PGP 签名和 Central Portal 发布插件,默认通过 central.skipPublishing=true 禁止上传,并使用 autoPublish=false。上传、通过 Portal 验证和正式发布是不同步骤。
上传前配置以下材料:
- Central Portal 账号及已验证的
io.github.alandevise命名空间,该命名空间对应维护者的 GitHub 身份。命名空间验证 - 在本地 Maven settings 文件中配置 id 为
central的 server 及 Portal 发布 token。settings 文件与真实 token 均保留在 Git 之外,通过 Maven 的-s参数指定该文件。Portal 发布 token 与 GitHub token 不同。Portal token - 维护者控制的 PGP 签名密钥及可获取的公钥,私钥及口令存放在本地安全存储或 CI Secrets。签名要求
- 最终坐标/版本、开发者与 SCM 元数据、完整父 POM/BOM/模块制品、源码/Javadoc、签名及校验和。Central 要求
上述材料配置完成并选用同一套 Temurin 17 工具链后,先构建和检查签名制品,再上传。第一条命令保留默认的 central.skipPublishing=true:
mvn -s /path/to/settings.xml -Pcentral-release clean verify
python3 scripts/verify-release-artifacts.py --project-root . \
--output .local-test/signed-release-artifacts.json
mvn -s /path/to/settings.xml -Pcentral-release deploy \
-Dcentral.skipPublishing=falseautoPublish=false 使用由用户管理的部署,使验证通过的部署留在 Portal 等待手动发布。为发行记录对应源码提交及部署结果。替换尚未发布的部署时,先在本地记录中保留其标识,上传并验证重新构建、重新签名的包,再从 Portal 移除被替换的待发布部署。不覆盖已经发布的版本。离线执行或 skipPublishing=true 均不上传,无签名诊断构建也不满足 Central 签名要求。参见 Central Maven 插件。
2.0.0 替换包于 2026 年 9 月 29 日使用 Eclipse Temurin 17.0.14+7 重新构建并签名。清理后重新执行的发行构建通过 638 项单测,失败、错误和跳过均为零。全部 21 个 JAR 通过项目许可证和生成资源检查。每个 Javadoc JAR 均保留生成器提供的五份 legal/ 文件:LICENSE、ADDITIONAL_LICENSE_INFO、ASSEMBLY_EXCEPTION、jquery.md 和 jqueryUI.md,保留 OpenJDK GPLv2 与 Classpath Exception,以及适用的第三方 MIT 声明。原始制品中的 28 处 Oracle 专有或 OTN 标记在替换包中均已消除。
上传包包含九个模块(父 POM、BOM 和七个 JAR 模块),全部 30 份 PGP 签名及四种校验和已独立验证。其中 78 个编译类、45 个 Java 源文件和九份 POM 与前次上传逐字节一致;本次重新构建未改变适配层行为或依赖。
TsGate 2.0.0 已正式发布到 Maven Central。部署 8e8970f0-14c9-4e5c-97af-3ed9270bce57 于 2026 年 9 月 29 日经手动发布后进入 PUBLISHED 状态。九个 POM 和核心 JAR 均已从公共仓库下载,其 SHA-256 与签名上传包一致。已发布的 BOM。
公钥指纹:D7FB5E1158537706FB2023D62DCFFB6B26BE7EB5。RSA4096 签名密钥有效至 2028 年 9 月 28 日 UTC,可从 Ubuntu keyserver 获取公钥验证发行签名。
TsGate 2.1.0 包含独立的 OpenGemini adapter 与 starter。配置、默认引擎边界及准确版本测试见 OpenGemini 接入指南,迁移要求见 2.1.0 发布说明。
TsGate · Wiki home · 文档首页 · Apache-2.0 · NOTICE
Compatibility claims apply only to documented capabilities and verified versions. 兼容性承诺仅适用于已列明的能力和已验证的版本。