Repository navigation
Update button: package table with tick boxes; bridge catch-up with NDI-matlab main - #347
Merged
Merged
Conversation
…49b1a266) MATLAB rebuilt its Update button around a package table; the bridge entries for check, install, checkOnStartup and ndiPane had drifted and updateDialog, packageStatus, pullRepo and findCalculators had none. - ndi.update.packageStatus: one row per package (NDI-python, each ~/.ndi/tools clone; one "installer" row for installer installs) with MATLAB's fields, notes, levels and Selectable/Selected rules. - ndi.update.install(Packages=...): update only the named packages; unknown names raise ndi:update:install:unknownPackage; only changes in the named packages need consent; main is required only when NDI-python is named. Pulls go through _pull_repo (MATLAB's pullRepo): stash with a ref check, git pull --no-edit, stash pop. - ndi.update.check: dependencies gain CurrentVersion, LatestVersion and Url; Calculators / CalculatorUpdateAvailable are present and empty (NDI-python has no calculator clones). - ndi.gui.nav.update_dialog: the modal Qt package table (pure helpers table_data, note_text, update_button_state; UpdateDialog; ask), and NdiPane.check_for_updates uses it, installing the ticked packages. - Bridge: new entries for packageStatus, pullRepo (ported_differently), findCalculators (matlab_only) and updateDialog; check, install, checkOnStartup and ndiPane bumped with what was ported; epochid2element and filename2epochid bumped (NDI-matlab's fixes are no-ops here); setup bumped to fd7ddbf06 (all changes are in the unported vhlab legacy importer). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011v7R5rnKYwncJkrNZRXhtw
Contributor
Author
|
That function came in with NDI-matlab#1079, and its port and bridge entry are in #345. The Generated by Claude Code |
stevevanhooser
pushed a commit
that referenced
this pull request
Oct 31, 2026
Resolves the CHANGELOG conflict with #347 by keeping both entries. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011v7R5rnKYwncJkrNZRXhtw
stevevanhooser
pushed a commit
that referenced
this pull request
Oct 31, 2026
…branch #347 already re-examined the ndi.fun.epoch and ndi.setup bridge entries against NDI-matlab main, so its versions of those two files are kept and this branch's duplicate notes are dropped. CHANGELOG keeps every entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011v7R5rnKYwncJkrNZRXhtw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The bridge checks on
mainfail on NDI-matlab's Update-button rework (19b8ab573, 3bc99bf85, 749b1a266):updateDialog,packageStatus,pullRepoandfindCalculatorshad no bridge entries;check,install,checkOnStartupandndiPanehad drifted;epochid2element,filename2epochidandsetuphad also drifted.Bumping hashes without porting would have claimed parity Python didn't have, so this ports the change.
What
ndi.update.packageStatus(new): one row per package, with MATLAB's fields, notes, levels and tick rules.~/.ndi/tools.ndi.update.install(Packages=[...])updates only the named packages.ndi:update:install:unknownPackage."NDI-python"is named."NDI-python"alone pulls main and runsndi_install.pywithout--update, so the dependency clones aren't touched.~/.ndi/tools, where the.pthfile already points._pull_repo, MATLAB'spullRepo. It stashes edits (with a ref check, so an older stash is never popped), runsgit pull --no-edit, thenstash pop. Local commits are merged rather than refused by--ff-only.ndi.update.check:CurrentVersion,LatestVersionandUrl.Calculators/CalculatorUpdateAvailableexist but are always empty / False. NDI-python has no NDIcalc clones; it getsndicalc-vis-matlabfrom pip.ndi.gui.nav.update_dialog(new): the modal Qt package table.table_data,note_text,update_button_state.UpdateDialogcarries MATLAB's property names;ask()opens it and returns the choice.NdiPane.check_for_updatesopens it and installs the ticked packages. The old confirm-boxupdate_dialog()goes, as MATLAB's old dialogs did.packageStatus,pullRepo(ported_differently),findCalculators(matlab_only),updateDialog.check,install,checkOnStartup,ndiPane.epochid2elementandfilename2epochid: MATLAB's fixes for repeated ids/filenames are no-ops here, since Python already returns every match.setup: every change since 03c79fa48 is in+conv/+vhlab, the Stacy legacy importer, which has no Python port.Testing
New
tests/test_update_package_status.py(18 tests):packageStatuson real throwaway git clones: up to date; behind; your changes left unticked; changes in a package that isn't updating; an untracked file in the way; another branch. Also installer and pip installs.install(Packages=...):--update;NdiPane.check_for_updatesinstalls only the ticked packages.Existing update tests still pass (59 in the update group).
Full suite: 6477 passed. One failure each in bridge completeness and bridge drift remains:
+ndi/+daq/+fun/ingestEpochDocuments.m;daq.systemandsessionhave moved in NDI-matlab.Both are fixed by Ingest: progress bars and parallel per-epoch work (mirrors NDI-matlab#1079) #345, which ports those. With Ingest: progress bars and parallel per-epoch work (mirrors NDI-matlab#1079) #345 and this PR merged, the bridge checks pass against NDI-matlab main.
Generated by Claude Code