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
- Re-verify § Visual Encoding's edge-style rows and theme hex triples against
_DIAGRAM_THEMES in the released package.
- 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.
- 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.
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.minorstep rather than a one-off.Why it is out of step
pipeline-modules-collapsed.svgwill change when this ships — all four of its bundle edges become uniform,lab → sessionmost 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
_DIAGRAM_THEMESin the released package.python scripts/gen_pipeline_diagrams.py(see the module docstring for the database setup).--checkreports drift and exits non-zero.explanation/data-pipelines.mdstill 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.