dataflow_webcam.yml shipped with a caveat saying it validated but could not be run, because a git: node could not be fetched. The liria organization is public now, so it can — and running it turned up a second problem.
Changes
The example is verified. dora clones dora-webcam at the pinned tag, builds both nodes, and runs them against a real camera to a clean exit. The caveat is replaced with that fact.
The pin moves to v0.1.1.v0.1.0's own documentation shows an ssh:// URL, which dora cannot authenticate, so anyone copying the wiring out of that tag would have hit exactly the failure this example exists to show the absence of. The code in the two tags is identical.
pytest is scoped to tests/.dora run vendors a git: node's source into git/ inside the checkout, and pytest collected that node's tests too: running the example and then the suite reported 67 tests, 26 of them another project's. A failure there would have turned this repository red for a reason nobody would find quickly.
What a git: node does require is still documented, because it is not obvious: anonymous read access, which on Gitea means a public organization and not merely a public repository. A repository inside a private organization is internal and answers an anonymous clone with 401 even when the repository itself is marked public.
Validation
CI=true CAPTURE_FRAMES=20 dora run dataflow_webcam.yml --uv — both nodes finish successfully, clone included
dora validate clean on the gate dataflow and the manifest
41 tests (not 67), ruff clean, pymarkdown clean
# Summary
`dataflow_webcam.yml` shipped with a caveat saying it validated but could not be run, because a `git:` node could not be fetched. The `liria` organization is public now, so it can — and running it turned up a second problem.
## Changes
- **The example is verified.** dora clones dora-webcam at the pinned tag, builds both nodes, and runs them against a real camera to a clean exit. The caveat is replaced with that fact.
- **The pin moves to `v0.1.1`.** `v0.1.0`'s own documentation shows an `ssh://` URL, which dora cannot authenticate, so anyone copying the wiring out of that tag would have hit exactly the failure this example exists to show the absence of. The code in the two tags is identical.
- **pytest is scoped to `tests/`.** `dora run` vendors a `git:` node's source into `git/` inside the checkout, and pytest collected that node's tests too: running the example and then the suite reported **67 tests, 26 of them another project's**. A failure there would have turned this repository red for a reason nobody would find quickly.
What a `git:` node does require is still documented, because it is not obvious: **anonymous** read access, which on Gitea means a public *organization* and not merely a public repository. A repository inside a private organization is internal and answers an anonymous clone with `401` even when the repository itself is marked public.
## Validation
- [x] `CI=true CAPTURE_FRAMES=20 dora run dataflow_webcam.yml --uv` — both nodes finish successfully, clone included
- [x] `dora validate` clean on the gate dataflow and the manifest
- [x] 41 tests (not 67), `ruff` clean, `pymarkdown` clean
The example carried a caveat saying it validated but could not be run, because
a `git:` node could not be fetched. The organization is public now, so it can:
dora clones dora-webcam at the pinned tag, builds both nodes, and runs them
against a real camera to a clean exit.
The pin moves to v0.1.1, whose documentation shows the https URL. v0.1.0 points
at an ssh:// URL that dora cannot authenticate, so anyone copying the wiring out
of that tag would have hit the failure this example exists to demonstrate the
absence of.
What a `git:` node does require is still recorded, since it is not obvious:
anonymous read, which on Gitea means a public organization and not merely a
public repository.
`dora run` vendors a `git:` node's source into git/ inside the checkout, and
pytest collected that node's tests along with these: running the webcam example
and then the test suite reported 67 tests, 26 of them another project's. A
failure there would have gone red here, for a reason no one would find quickly.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
dataflow_webcam.ymlshipped with a caveat saying it validated but could not be run, because agit:node could not be fetched. Theliriaorganization is public now, so it can — and running it turned up a second problem.Changes
v0.1.1.v0.1.0's own documentation shows anssh://URL, which dora cannot authenticate, so anyone copying the wiring out of that tag would have hit exactly the failure this example exists to show the absence of. The code in the two tags is identical.tests/.dora runvendors agit:node's source intogit/inside the checkout, and pytest collected that node's tests too: running the example and then the suite reported 67 tests, 26 of them another project's. A failure there would have turned this repository red for a reason nobody would find quickly.What a
git:node does require is still documented, because it is not obvious: anonymous read access, which on Gitea means a public organization and not merely a public repository. A repository inside a private organization is internal and answers an anonymous clone with401even when the repository itself is marked public.Validation
CI=true CAPTURE_FRAMES=20 dora run dataflow_webcam.yml --uv— both nodes finish successfully, clone includeddora validateclean on the gate dataflow and the manifestruffclean,pymarkdownclean