版本兼容性与自动升级#

兼容性记录和查询#

VisionFlow 将与旧版本的兼容性区分为以下6个等级:

  • L1-效果级完全兼容:即对用户的使用完全或几乎没有负面影响;

  • L2-数据级完全兼容:数据上没有不兼容之处,但具体指标表现、算法效果等方面可能存在影响;

  • L3-数据级逻辑自动兼容:新版本的库可以无需做任何工作即可打开旧版本的数据,但打开后不能 再退回使用旧版本的库;

  • L4-数据级升级自动兼容:通过提供的专用的升级逻辑对旧版本的数据后,可以使用新版本的库打开; 升级一定意味着功能发生了变化,一定意味着对原有功能的或多或少的破坏;每一个升级自动兼容 一定对应一段特定的自动升级逻辑,自动升级逻辑会有意对原有的数据进行必要的修改,无论该数据 是否实际使用到了。

  • L5-不兼容:新版本的库不再兼容该旧版本的工程(但你仍有可能通过导出数据再导入到新的工程中的形式 复用旧工程中的数据。

  • L6-不可识别:该版本的库已经完全不支持对应的数据版本,完全无法识别;这种情况仅发生在某个库 版本中没有关于被打开的数据版本的兼容性记录时;

此外,为了降低单一工具功能发生更改时对不同用户的影响,我们也会在每个版本详细记录和区分不同工具 的兼容性,从而避免用户没有使用到的工具的变化对用户造成不兼容影响。

VisionFlow提供了多种方式查询兼容信息:

  1. 你可以查阅文档中附带的 版本兼容性 了解当前版本的库与 旧版本库创建的工程的兼容性关系;

  2. 你可以找到 VisionFlow 库中附带的命令行工具并执行 visionflow.exe compatibility 来查看各个 历史版本之间的兼容性关系;

  3. 你可以找到 VisionFlow 库中附带的命令行工具并执行 visionflow.exe compatible <project_path.vlow> 来查看某个具体的工程与当前库版本之间的兼容性关系及升级路径;

  4. 你可以通过 visionflow::Project 中兼容性相关的接口获取某个具体工程与当前库版本 的兼容性等级和兼容性信息,具体请查看相关接口;

  5. 你还可以通过调用 Compatibility 列出的接口获得任意工程无关或有关 (需要给出工程中包含的工具的信息)的兼容性信息。

自动升级#

对于兼容性等级在 L4 及以上的工程,必须要先进行升级才能打开。虽然VisionFlow的每一个版本都只能能够将 前一个或有限个版本的工程直接自动升级上来, 但一般情况下,VisionFlow都支持对工程进行链式升级,例如,您当前的 工程是由 V1 的库创建的, 你想升级到 V3 的库,但是 V3 可能只支持从 V2 升级上来,这时,你可以先 下载 V2 版本的库,并将工程先升级到 V2 版本,在使用 V3 版本的库将工程升级到 V3

同样的你可以通过接口 visionflow::Project::UpgradePath() 或者执行命令行工具 visionflow.exe compatible <project_path.vlow> 查询某个工程到当前库的版本的升级路径,并根据返回的路径, 依次下载升级路径上的每一个库版本对工程进行升级。