rewrite the README #6

Merged
cristhian merged 1 commits from readme-rewrite into main 2026-09-15 09:58:11 +00:00
Owner

Summary

The README had drifted out of agreement with itself, and was close to twice the length of dora-webcam's for a node with fewer knobs.

Two things it got wrong

  • It contradicted itself about the types. The manifest section said image is std/core/v1/UInt8 and depth/camera_info are std/core/v1/Float32 — four lines above a table correctly saying both are std/media/v1/Image. Left over from before the migration.
  • The producer example taught the old form. It showed pa.array(frame.ravel()) plus {width, height, encoding} metadata. That is still decoded, but a producer written from it and declaring the matching type fails dora validate, because compatibility is directional. It now shows the Image struct.

What was cut

1749 words to 1007, comparable to dora-webcam's 909. What went was rationale, not reference: why dataflow_webcam.yml carries no strict_types, how a producer migrates its manifest, the full explanation of what a git: node needs and why Gitea's organization visibility matters. Each of those already lives in the file it explains or in the commit that made the decision; none of it belongs in front of someone trying to wire a node.

What stayed is what a consumer needs: the wiring block, the inputs table, the encodings, the environment variables, build and test. The git: anonymous-access requirement survives as one sentence, because it is the difference between the example working and not.

Validation

Every encoding, environment variable and CLI flag in the new text was checked against the code rather than carried over:

  • image encodings match decode.SUPPORTED
  • depth encodings match depth.DEPTH_DTYPES
  • the struct in the example matches decode.IMAGE_TYPE
  • VIEW_WIDTH, VIEW_HEIGHT, VIEW_DEPTH_MIN_MM, VIEW_DEPTH_MAX_MM are the four the code reads; --view-width and --view-height are the two flags it defines

pymarkdown clean, 41 tests, ruff clean.

# Summary The README had drifted out of agreement with itself, and was close to twice the length of dora-webcam's for a node with fewer knobs. ## Two things it got wrong - **It contradicted itself about the types.** The manifest section said `image` is `std/core/v1/UInt8` and `depth`/`camera_info` are `std/core/v1/Float32` — four lines above a table correctly saying both are `std/media/v1/Image`. Left over from before the migration. - **The producer example taught the old form.** It showed `pa.array(frame.ravel())` plus `{width, height, encoding}` metadata. That is still decoded, but a producer written from it and *declaring* the matching type fails `dora validate`, because compatibility is directional. It now shows the `Image` struct. ## What was cut 1749 words to 1007, comparable to dora-webcam's 909. What went was rationale, not reference: why `dataflow_webcam.yml` carries no `strict_types`, how a producer migrates its manifest, the full explanation of what a `git:` node needs and why Gitea's organization visibility matters. Each of those already lives in the file it explains or in the commit that made the decision; none of it belongs in front of someone trying to wire a node. What stayed is what a consumer needs: the wiring block, the inputs table, the encodings, the environment variables, build and test. The `git:` anonymous-access requirement survives as one sentence, because it is the difference between the example working and not. ## Validation Every encoding, environment variable and CLI flag in the new text was checked against the code rather than carried over: - image encodings match `decode.SUPPORTED` - depth encodings match `depth.DEPTH_DTYPES` - the struct in the example matches `decode.IMAGE_TYPE` - `VIEW_WIDTH`, `VIEW_HEIGHT`, `VIEW_DEPTH_MIN_MM`, `VIEW_DEPTH_MAX_MM` are the four the code reads; `--view-width` and `--view-height` are the two flags it defines `pymarkdown` clean, 41 tests, `ruff` clean.
cristhian added 1 commit 2026-09-15 09:57:01 +00:00
rewrite the README
validate / validate (pull_request) Successful in 59m14s
8c3b3aac92
It had drifted out of agreement with itself. The manifest section still said
`image` is std/core/v1/UInt8 and depth and camera_info are std/core/v1/Float32,
four lines above a table correctly saying both are std/media/v1/Image, and the
worked example for a producer showed the flat-buffer form the node moved away
from. Someone following it would have written a producer that fails validate.

It was also close to twice the length of the one next door, mostly rationale:
why a dataflow carries no strict_types, how a producer migrates, what a git:
node needs and why. That belongs in the file it explains or in the commit that
made the decision, not in front of someone trying to wire a node.

1007 words, from 1749. Every encoding, environment variable and CLI flag in it
was checked against the code.
cristhian merged commit 4de1f4b7b2 into main 2026-09-15 09:58:11 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: liria/dora-image-view#6