版本策略
本页说明 ANet 的版本号作出何种承诺、存在哪些兼容性面,以及变更如何到达用户。
组件与版本号
一个发布版本由四个组件构成,各有自己的版本号。
组件 |
0.3 版本 |
内容 |
|---|---|---|
ANetCore |
v0.16.0 |
协议与密码学内核(Go 模块)。 |
|
0.3.2 |
节点程序:守护进程、命令行、MCP 服务器和本地接口。 |
ANetHub |
0.3.1 |
Hub 与运维控制台。 |
ANetLink |
0.2.0 |
通往本地设备和服务的桥接程序,使用 C1 接口版本 1。 |
anet version 输出版本、提交、构建时间以及编译进二进制文件的模块。anet-hub --version 输出发布版本、Hub 线路版本以及首个支持该线路版本的 anet 发布版本。
兼容性面
兼容性按面定义,每个面各有一个在运行时检查的版本。
面 |
0.3 中的版本 |
检查 |
|---|---|---|
Hub 线路 |
|
随每个请求和响应发送。取值不同时以 |
封缄信封 |
|
其他取值均被 Hub( |
密钥事件日志 |
|
不带该标签的日志无法重放。 |
直连帧 |
|
其他版本的帧不予投递。 |
C1( |
版本 1,路径 |
|
数据目录 |
|
较旧的数据目录以 |
配置 |
配置 中的配置键 |
已移除的键会使守护进程停止( |
A2A |
A2A 1.0 |
本地接口和卡片遵循 A2A 1.0。ANet 在命名空间 |
已被移除的密钥编号、标签、代码或路由,不会再用于其他含义。
发布系列
破坏某个面(线路、身份、数据或配置)的变更,仅在提高次版本号的发布中进行,例如 0.3.0。同一系列的此类变更全部在其首个发布中完成。
同一系列的补丁发布(0.3.x)不会破坏上表中的任何面。同一系列的节点与 Hub 在任意补丁版本组合下均可互操作,并可按任意顺序升级。补丁发布修复缺陷,并添加不改变任何面的功能,例如在首个发布之后补全的模块。
对已移除命令和选项的提示在整个系列中保留。此后,已移除的命令按未知命令处理。
每个发布的说明会列出对面的全部变更,升级到 0.3 则说明需要执行的操作。
发布与更新
发布版本由 release.json 描述,其中包含版本、提交、签名时间、有效期、每个归档和二进制文件的 SHA-256、各变体的模块集合,以及下一发布密钥的指纹。该文件以 SSH 签名格式,由项目发布密钥签名。install.sh 与 anet update 在安装之前验证签名、有效期,以及版本不低于已安装版本。下载归档所用的主机不被信任。密钥及其预先承诺的后继密钥公布于仓库的 SECURITY.md 中。
节点不支持 Hub 的某项功能,或 Hub 需要更新的 anet 时,会以一句话说明并给出应安装的发布版本(Hub 应答中的 required_anet)。
弃用
功能在提高次版本号的发布中移除。发布说明会列出该功能,移除后的调用以一句说明替代方式的语句应答,且替代方式在移除该功能的发布中已经存在。
文档版本
文档针对当前发布版本发布,描述该版本的行为。英文为源文本,中文为其译文。