跳到主要内容

版本兼容性

Workflow 项目的 devDependencies.workflow-code 必须是精确 SemVer,例如 "0.2.7""0.2.7-20260826001"^0.2.70.2.xworkspace:*、本地路径和其它 range 都会在加载项目时被拒绝。精确声明记录项目实际开发和验证时使用的 Core,不等于要求宿主 patch 与它完全相同。

运行兼容性只比较 major.minor:宿主 Core 与项目 Core 的这两段相同即可运行,patch 和预发布标识不参与先后判断。0.2.00.2.990.2.4-202608260010.2.4-beta.1 都属于 0.2.x 兼容线;无论宿主 patch 较新还是较旧都可直接运行。0.1.x0.2.x1.2.x 属于不同兼容线,任一 major 或 minor 变化都会在用户模块执行前阻断,并显示项目精确版本、宿主实际版本及所需兼容线。

这意味着 patch 发布不得引入需要新兼容线的破坏性 Core API;此类变化必须提升 minor。日期 Alpha(X.Y.Z-YYYYMMDDNNN)、betarc 也遵循同一规则,不再比较日期序号或预发布顺序。

宿主防呆

  • Desktop 在 package.json 精确绑定 Core 与 CLI,并把实际打包版本写入 build-info.json。普通运行、恢复、定时任务、参数解析和结构检查都使用该 Core 版本校验项目;不兼容时应升级到携带所需 major.minor Core 的 Desktop。
  • CLI 精确绑定一个 Core 版本,并把 peer 范围限制到该 Core 的同一 minor,例如 Core 0.2.7 对应 >=0.2.0 <0.3.0runjsonstructureresolve-params 会先校验实际安装的 Core、CLI 自身绑定和项目精确 Core 声明。
  • Server 精确绑定 Core,并在普通、流式、调试、参数解析、恢复和定时任务等执行入口统一校验项目。项目的精确 @workflow-code/cli 仍用于复现开发工具链,不替代 Core 运行兼容判断。

内置项目

内置项目发布索引除 minDesktopVersion 外,还必须原子声明发布包使用的精确组件:

{
"components": {
"core": "0.2.7",
"cli": "0.2.9"
}
}

Desktop 只选择同时满足最低 Desktop 版本、Core 同 major.minor 和 CLI 同 major.minor 的发布。下载后,项目 package.json 中精确的 workflow-code@workflow-code/cli 必须和索引逐字一致。旧索引可以被解析,但缺少 components 时不会被新 Desktop 选中,因此不会把未知运行时组合安装进当前宿主。

Desktop 0.1.22 是首个支持 Core 0.2.xprojectInfo.dataStorage.mode 数据存储声明的版本。采用 Core 0.2.x 的内置项目发布索引必须设置 minDesktopVersion: "0.1.22";较旧 Desktop 会在安装或运行前阻断,而不是尝试使用旧存储 API。

下表由 release metadata 自动生成,不需要维护人工版本矩阵。

当前 release metadata 中还没有包含组件版本的 Desktop 或 Server 发布记录。