refactor: split the opencv-plot viewer into its own dataflow
validate / validate (push) Successful in 59m2s
validate / validate (pull_request) Successful in 59m0s

dataflow.yml is now the camera alone, so running it no longer pulls
dora-hub over pip or needs a display. dataflow_plot.yml adds the viewer
on image_bgr for when the stream should be looked at.

dora 1.0 resolves an input's source only within the same descriptor, so
the camera node is declared in both files rather than shared, and the two
are run one at a time. CI validates both, which is what catches an output
rename that breaks only the viewer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A65jaxrPXMN9EhBDMmMWb2
This commit is contained in:
cesar
2026-09-08 14:11:25 -03:00
co-authored by Claude Opus 5
parent 86b7a1a8f7
commit 483da05a98
5 changed files with 69 additions and 25 deletions
+10 -6
View File
@@ -1,5 +1,5 @@
# Checks the dataflow against the typed contract in dora-node.yml. This runs no
# node, so it needs neither a camera nor the ZED SDK.
# Checks both dataflows against the typed contract in dora-node.yml. This runs
# no node, so it needs neither a camera nor the ZED SDK.
name: validate
on: [push, pull_request]
@@ -26,7 +26,11 @@ jobs:
- run: dora --version
# strict_types: true in dataflow.yml turns a type warning into a non-zero
# exit, so a mismatched annotation fails here rather than at runtime.
- name: Validate the dataflow
run: dora validate dataflow.yml
# strict_types: true in each dataflow turns a type warning into a
# non-zero exit, so a mismatched annotation fails here rather than at
# runtime. The plot file is checked too: it wires the same outputs, and a
# rename that breaks only the viewer should still fail the build.
- name: Validate the dataflows
run: |
dora validate dataflow.yml
dora validate dataflow_plot.yml