Part of the NDI-matlab did2 migration. Target branch: Vnext.
Scope
The migration window must not break customers running older NDI versions against a shared cloud dataset. Verify that an old client (v1-only) and a new client (V_delta-with-compat) can both read the same cloud dataset before, during, and after migration.
Test harness with two MATLAB processes/configurations:
- Old client: NDI at
main-version (v1-only).
- New client: NDI at
Vnext (V_delta with +ndi/+compat/ layer).
Scenarios:
Scenario 1 — pre-migration coexistence. Both clients read a v1 dataset on the cloud. Both succeed for paths they understand.
Scenario 2 — during migration. New client holds the migrationState lease (issue 11) and is pushing converted docs. Old client attempts reads (must succeed) and writes (must receive 423 Locked).
Scenario 3 — post-migration. Dataset is fully V_delta. New client succeeds on all paths. Old client succeeds on reads thanks to the cloud's existing dual-format tolerance (document_properties.base.* fallback chains in DocumentService) — but may not see V_delta-only fields (e.g., the composite probe_location.location.*). Explicitly: "reads succeed" is the promise; "all fields visible to old client" is not.
Out of scope
Making the old client handle V_delta natively. The compat surface is intentionally one-way.
Dependencies
Issues 10, 11.
Part of the NDI-matlab did2 migration. Target branch:
Vnext.Scope
The migration window must not break customers running older NDI versions against a shared cloud dataset. Verify that an old client (v1-only) and a new client (V_delta-with-compat) can both read the same cloud dataset before, during, and after migration.
Test harness with two MATLAB processes/configurations:
main-version (v1-only).Vnext(V_delta with+ndi/+compat/layer).Scenarios:
Scenario 1 — pre-migration coexistence. Both clients read a v1 dataset on the cloud. Both succeed for paths they understand.
Scenario 2 — during migration. New client holds the
migrationStatelease (issue 11) and is pushing converted docs. Old client attempts reads (must succeed) and writes (must receive 423 Locked).Scenario 3 — post-migration. Dataset is fully V_delta. New client succeeds on all paths. Old client succeeds on reads thanks to the cloud's existing dual-format tolerance (
document_properties.base.*fallback chains inDocumentService) — but may not see V_delta-only fields (e.g., the compositeprobe_location.location.*). Explicitly: "reads succeed" is the promise; "all fields visible to old client" is not.Out of scope
Making the old client handle V_delta natively. The compat surface is intentionally one-way.
Dependencies
Issues 10, 11.