Semantic Versioning for Workflows and Rules [VF UG]
Introduction
Situation until VidiFlow 23.2
Until version 23.2, VidiFlow did not use semantic versioning for workflows and rules. Every time a workflow or rule was saved, a new major version was created (1.0, 2.0, 3.0…).
At the same time, there was the feature of using the so-called "LATEST" version when calling up workflows. This is practical because not all calls have to be adjusted every time the workflow or rule is changed.
On the other hand, this feature leads to runtime errors in a situation, where a workflow or rule is modified in a way, that the contract changes significantly, e.g. by adding mandatory input or output parameters. If the execution call of the workflows is not adapted to the changed contract, runtime failures occur.
Additionally, using a rule in a workflow was restricted to the “LATEST” version of that rule implicitly since you were unable to specify any rule version at all.
Changes in VidiFlow 23.3
VidiFlow 23.3 introduces Semantic Versioning for Workflows and Rules. This means that when saving rules or workflows without changes to the input and output parameters, a new minor version is created (e.g. 1.0 becomes 1.1). However, if the call interface is changed, e.g. by adding, changing or deleting parameters, a new major version is created (1.0 becomes 2.0).
The feature to use the "LATEST" version was also adapted: Using the keyword “LATEST” is only supported for migration time. Instead, it is possible to use the latest version on a major version, e.g. one can specify to use version "2.LATEST" to always use the latest minor version with major version 2. From that perspective, the major version part can also be seen as the contract version, the creation of a new major version creates a changed contract.
If a workflow is called using “2.LATEST” and a new major version 3.0 is created, then the calls must be adapted accordingly in order to use the correct parameters. When this is done, the version can be used with “3.LATEST”.
As a consequence of this new “x.LATEST” handling, you are now forced to select a version for each rule used in a workflow. But you can also use a dedicated rule version if you want to, which was not possible previously.
Migration
No explicit migration is needed to make use of semantic versioning. All VidiFlow API are compatible to the old and new terminology including using “LATEST” and “x.LATEST”.
The toolkits to select versions and rules in ConfigPortal are adapted to show “x.LATEST” for all existing major versions of the workflow or rule. In the case that the version keyword “LATEST” is used when opening a use case page in CP, it is automatically converted to “x.LATEST” (with x being the latest major version currently existing) and marked red. In most cases, no changes are required by the user, after saving the page, the migration is done. It is also possible to not save the changes and keep “LATEST”.
If a workflow that is calling other workflows or rules is opened in the VidiFlow Workflow Designer, all calls using “LATEST” are also implicitly converted to use “x.LATEST”. After saving the workflow, it is converted to make use of semantic versioning.