Tracking issue for the NDI-python side of the 2026-06 NDI ecosystem audit. The
NDI-matlab half merged as VH-Lab/NDI-matlab#828 (DID halves:
VH-Lab/DID-matlab#148, VH-Lab/DID-python#24). This captures the changes there
that need an NDI-python counterpart, plus what was deliberately not changed.
Symmetry parity (so the cross-language tests agree)
-
Time time_convert symmetry (audit item 28) — MATLAB is now the reference. NDI-matlab:
- fixed a real
ndi.time.syncgraph/time_convert bug (the same-referent/different-clock
path indexed the cell-array epoch_clock with == instead of cellfun(@(x) eq(x,...)));
- rebuilt the symmetry referent as a real
ndi.element (the bespoke scenarioReferent
lacked ==, so every same-referent conversion returned empty);
- made
makeArtifacts/time assert each case equals scenario.expected()
(MATLAB-authoritative) instead of silently skipping.
The shared scenario spec (scenarioStruct) is unchanged. Action: ensure the Python
_time_scenario/_SpecRef produces the same conversions and asserts the same expected
values; treat the MATLAB scenario as the source of truth.
-
Compute finalize → advance rename. NDI-matlab renamed
finalizeSession/FinalizeSession/finalize_compute_session →
advanceSession/AdvanceSession/advance_compute_session to match the cloud API
(swagger exposes only POST /compute/{sessionId}/advance; there is no /finalize).
Action: rename the NDI-python cloud client's equivalent finalize call to advance.
-
Symmetry CI infra. The cross-language symmetry workflow is driven from NDI-python.
NDI-matlab fixed its side (authenticated GITHUB_TOKEN for matbox dependency resolution;
tests/+ndi/+symmetry/requirements.txt present). Action: confirm the NDI-python-driven
workflow passes against the updated NDI-matlab main.
Deferred — cross-client, not changed (need a joint decision)
Deferred — NDI-matlab-side (FYI, no NDI-python action)
requirements.txt SHA-pinning (needs matbox @sha verification), GenBank vocabulary dedup →
git-LFS, and a bulk error()-identifier rewrite were flagged but not done on the MATLAB side;
listed here only so the audit's full deferral set is in one place.
Tracking issue for the NDI-python side of the 2026-06 NDI ecosystem audit. The
NDI-matlab half merged as VH-Lab/NDI-matlab#828 (DID halves:
VH-Lab/DID-matlab#148, VH-Lab/DID-python#24). This captures the changes there
that need an NDI-python counterpart, plus what was deliberately not changed.
Symmetry parity (so the cross-language tests agree)
Time
time_convertsymmetry (audit item 28) — MATLAB is now the reference. NDI-matlab:ndi.time.syncgraph/time_convertbug (the same-referent/different-clockpath indexed the cell-array
epoch_clockwith==instead ofcellfun(@(x) eq(x,...)));ndi.element(the bespokescenarioReferentlacked
==, so every same-referent conversion returned empty);makeArtifacts/timeassert each case equalsscenario.expected()(MATLAB-authoritative) instead of silently skipping.
The shared scenario spec (
scenarioStruct) is unchanged. Action: ensure the Python_time_scenario/_SpecRefproduces the same conversions and asserts the same expectedvalues; treat the MATLAB
scenarioas the source of truth.Compute
finalize→advancerename. NDI-matlab renamedfinalizeSession/FinalizeSession/finalize_compute_session→advanceSession/AdvanceSession/advance_compute_sessionto match the cloud API(swagger exposes only
POST /compute/{sessionId}/advance; there is no/finalize).Action: rename the NDI-python cloud client's equivalent
finalizecall toadvance.Symmetry CI infra. The cross-language symmetry workflow is driven from NDI-python.
NDI-matlab fixed its side (authenticated
GITHUB_TOKENfor matbox dependency resolution;tests/+ndi/+symmetry/requirements.txtpresent). Action: confirm the NDI-python-drivenworkflow passes against the updated NDI-matlab
main.Deferred — cross-client, not changed (need a joint decision)
NDI_CLOUD_*env vars; both NDI-matlab and NDI-python deferred removing this "for parity."Decide and change together.
timestampdatenum-vs-epoch (cross-ref). DID-level decision ([Note / no action required] What it would take to move away from MATLAB datenums for timebases/timestamps VH-Lab/DID-matlab#147) onthe stored time representation; affects time handling broadly. Track here so NDI-python is in the loop.
Deferred — NDI-matlab-side (FYI, no NDI-python action)
requirements.txtSHA-pinning (needs matbox@shaverification), GenBank vocabulary dedup →git-LFS, and a bulk
error()-identifier rewrite were flagged but not done on the MATLAB side;listed here only so the audit's full deferral set is in one place.