Compatibility#
-
enum visionflow::compatible::Level#
The compatibility level.
Values:
-
enumerator kFullyCompatible = 1#
Fully compatible.
User perspective: No manual action is required after upgrade. Legacy project data and trained models can still be used directly with essentially unchanged results.
Technical perspective: Only version number update is needed; no explicit upgrade workflow is required.
-
enumerator kRequiresManualIntervention = 2#
Requires manual intervention.
User perspective: Manual actions are needed after upgrade. Runtime behavior may have minor differences, and users may need light adjustments to restore expected usage.
Technical perspective: Explicit upgrade workflow is required, such as executing conversion functions.
-
enumerator kIncompatible = 3#
Incompatible.
User perspective: Data/model behavior changed significantly, so preserving old data or models has no practical value.
Technical perspective: Compatibility upgrade cannot be performed.
-
enumerator kFullyCompatible = 1#
-
enum visionflow::compatible::Aspect#
The aspect of compatibility from the user’s perspective or technical perspective.
Values:
-
enumerator kUserProject = 1#
User-project compatibility.
Describes how a change affects users when they operate project data, for example whether a tool model in an existing project needs relabeling, retraining, or view adjustments after upgrade.
-
enumerator kUserModel = 2#
User-model compatibility.
Describes how a change affects users when they reuse trained models, for example whether legacy models still run inference correctly and whether results remain fully consistent.
-
enumerator kTechnical = 3#
Technical compatibility.
Describes whether legacy data can be handled transparently by runtime mechanisms, or requires explicit upgrade logic to transform old project data into the new format.
-
enumerator kUserProject = 1#
-
std::vector<std::string> visionflow::compatible::query_upgrade_path(const std::string &old_version, const std::string &new_version, const std::vector<std::string> &modules = {}, Aspect aspect = kUserProject)#
Query the update path from the old version to the new version.
- Parameters:
old_version – The old library version which the project created by.
new_version – The new library version which the project will be upgraded to.
modules – The modules list in the project. All modules will be included if this list is empty.
aspect – The aspect of compatibility from the user’s perspective or technical perspective.
- Returns:
std::vector<std::string> The upgrade path.
-
Level visionflow::compatible::compatibility_level(const std::string &old_version, const std::string &new_version, const std::vector<std::string> &modules = {}, Aspect aspect = kUserProject)#
Get compatibility level between two versions.
- Parameters:
old_version – The old version (The project data version).
new_version – The new library version.
modules – The modules list in the project. All modules will be included if this list is empty.
aspect – The aspect of compatibility from the user’s perspective or technical perspective.
- Returns:
Level The compatibility level.
-
std::string visionflow::compatible::compatibility_info(const std::string &old_version, const std::string &new_version, const std::vector<std::string> &modules = {})#
Get the compatibility information between two versions.
- Parameters:
old_version – The old version (The project data version).
new_version – The new library version.
modules – The modules list in the project. All modules will be included if this list is empty.
- Returns:
std::string The compatibility information encoded in JSON format.
-
std::string visionflow::compatible::compatibility_history(const std::string &version = {})#
Get the whole compatibility records(with json format) about all history versions.
- Parameters:
version – The version of the compatibility records. If this parameter is not set, all versions will be returned.
- Returns:
std::string The compatibility records encoded in JSON format.
-
std::vector<std::string> visionflow::compatible::matched_compatibility_description(const std::string &old_version, const std::string &new_version, Level compat_level, const std::vector<std::string> &modules = {}, Aspect aspect = kUserProject)#
Get the descriptions of compatibility issues that match the specified level.
This interface does not handle full compatibility compressed-path cases.
- Parameters:
old_version – The old version (The project data version).
new_version – The new library version.
compat_level – The compatibility level to match.
modules – The modules list in the project. All modules will be included if this list is empty.
aspect – The aspect of compatibility from the user’s perspective or technical perspective.
- Returns:
std::vector<std::string> The descriptions of matching compatibility issues.