Skip to content

Diagram figures and notation spec: re-verify and regenerate against each DataJoint release #266

Description

@dimitri-yatsenko

The committed diagram SVGs and the diagram.md § Visual Encoding table both describe a renderer that no released DataJoint produces. This issue tracks bringing them back in step at the next release, as a recurring once-per-major.minor step rather than a one-off.

Why it is out of step

  • The figures and the spec table encode notation from datajoint-python #1534 and #1544. Both are merged; the latest release (v2.3.2, 2026-07-21) predates them.
  • datajoint-python #1545 changes collapsed-edge rendering: an edge between two collapsed nodes no longer inherits the attributes of an arbitrary member of its foreign-key bundle, and every bundle edge renders uniformly. pipeline-modules-collapsed.svg will change when this ships — all four of its bundle edges become uniform, lab → session most visibly, because its bundle mixes a primary and a secondary foreign key.

Earlier figure-only PRs (#255, #256, #259, #263) already committed output from the unreleased renderer, so this is not new. What is new is that #265 puts the notation at spec depth, where a reader is entitled to treat the table as normative for the version they installed.

Steps, once the renderer changes ship in a release

  1. Re-verify § Visual Encoding's edge-style rows and theme hex triples against _DIAGRAM_THEMES in the released package.
  2. Regenerate the committed figures: python scripts/gen_pipeline_diagrams.py (see the module docstring for the database setup). --check reports drift and exits non-zero.
  3. Confirm the collapsed-view prose in explanation/data-pipelines.md still matches. It deliberately attributes no meaning to weight or line style on a collapsed edge, so it should need no change — worth confirming rather than assuming.

Once per major.minor, not per patch, following the pattern #210 established for notebook version banners.

Known non-signal in step 2

Tooltip padding is emitted as   by the pydot that produced the current figures and as literal spaces by pydot 4.0.1. That shows up as a whole-file diff with no visual change, and nothing pins pydot. Check the pydot version before reading a padding-only diff as renderer drift.

Distinct from that: before #1545 the collapsed figure was genuinely not byte-reproducible across environments, because the bundle edge style depended on graph traversal order. After #1545 it is.

Not this issue

#246 covers documenting the modernized style itself and closes with #265.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions