Execution Engine Changelog
Below you can find the changelog for the Execution Engine.
Execution Engine v1.8.0 | inference v1.1.1
Additive change + one breaking change due to bug fix with minimal expected impact.
This release extends the Execution Engine so that steps gated by control flow (e.g. after a ContinueIf block) can run even when they have no data-derived lineage -- i.e. when they do not receive batch-oriented inputs from upstream steps. Existing workflows are unaffected.
What changed:
- Control flow lineage -- The compiler now tracks lineage that comes from control flow steps. A new notion of control flow lineage support is used when a step has no batch-oriented data inputs but is preceded by control flow steps.
- Loosened compatibility check -- Previously,
verify_compatibility_of_input_data_lineage_with_control_flow_lineageraised an error for any step that had control flow predecessors but no data-derived lineage. That check is now relaxed. - New step patterns -- Steps that are triggered only by control flow and do not consume batch data now run correctly.
Batch.remove_by_indiceswith nested batches (behavioral fix) -- NestedBatchelements are now recursively filtered when removing indices.
Execution Engine v1.7.0 | inference v0.59.0
Breaking change regarding step errors in workflows. Workflow blocks interacting with Roboflow platform which fail due to client misconfiguration will now raise ClientCausedStepExecutionError instead of StepExecutionError.
Scenarios affected:
- Block using Roboflow model defines invalid model ID -- now raises
ClientCausedStepExecutionErrorwith status code 400. - Block using Roboflow model defines invalid API key -- now raises
ClientCausedStepExecutionErrorwith status code 401. - Block using Roboflow model defines model which does not exist -- now raises
ClientCausedStepExecutionErrorwith status code 404.
It is possible to bring back the legacy behaviour by setting DEFAULT_WORKFLOWS_STEP_ERROR_HANDLER=legacy.
Execution Engine v1.6.0 | inference v0.53.0
This release introduces upgrades and new features with no changes required to existing workflows. Some blocks may need to be upgraded to take advantage of the latest Execution Engine capabilities.
Key changes:
- Auto Batch Casting -- When a SIMD input receives scalar data, the Execution Engine automatically casts it into a batch. This removes the previous limitation that caused compilation errors.
- Dimensionality collapse blocks may now operate on scalars.
- Blocks can now create output batches from scalars or collapse batches into scalars.
- New manifest method
get_parameters_enforcing_auto_batch_casting(...)for blocks that decrease dimensionality without defining batch-oriented inputs.
Execution Engine v1.5.0 | inference v0.38.0
- Exposed new parameter
executorin the init method ofBaseExecutionEngineclass for injecting aThreadPoolExecutor. This improves performance by reducing thread spawning.
Execution Engine v1.4.0 | inference v0.29.0
- Added new kind --
secretto represent credentials. - Fixed issue with results serialization introduced in
v1.3.0. - Fixed Execution Engine bug with preparing inputs for steps where
accepts_empty_input()was being ignored for non-SIMD steps.
Execution Engine v1.3.0 | inference v0.27.0
- Introduced kind serializers and deserializers, decoupling Workflows plugins from the Execution Engine.
- Workflows Compiler and Execution Engine were enhanced to support batch-oriented inputs of any kind.
- New input type
WorkflowBatchInputintroduced (superset ofWorkflowImageandWorkflowVideoMetadata). - New selector type annotation
Selector(...)introduced to replace the older annotation types. - New manifest methods:
get_parameters_accepting_batches()andget_parameters_accepting_batches_and_scalars().
Execution Engine v1.2.0 | inference v0.23.0
- The
video_metadatakind has been deprecated. Theimagekind has been extended to support the same metadata asvideo_metadata. - New class methods
WorkflowImageData.copy_and_replace(...)andWorkflowImageData.create_crop(...)introduced.