Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
42f9307
fix(cloud-sync): dispatch SyncOptions via toCell(){:}, not nonexisten…
audristroyer Jun 12, 2026
4cae5dd
fix(cloud-api): route finalize_compute_session to /advance, not nonex…
audristroyer Jun 12, 2026
f64c7f3
ci(symmetry): add tests/+ndi/+symmetry/requirements.txt so installReq…
audristroyer Jun 12, 2026
86379c7
security(fun): prevent shell injection via PATHNAME in convertoldnsd2ndi
audristroyer Jun 12, 2026
ee783d6
security(cloud): restrict NDI cloud secrets/profile files to owner (c…
audristroyer Jun 12, 2026
a030c83
security(document): replace eval() of property names with safe field …
audristroyer Jun 12, 2026
f85caf9
perf(document): memoize readblankdefinition JSON definition reads
audristroyer Jun 12, 2026
6be5761
ci: SHA-pin GitHub Actions and drop stale add-cloud-api-testing trigger
audristroyer Jun 12, 2026
0ca82af
chore: remove superseded dead code (authenticate/login/logoutOriginal…
audristroyer Jun 12, 2026
6ccd7fc
build(validator): rebuild Java validator off jitpack with GA deps + C…
audristroyer Jun 12, 2026
1077381
test(symmetry): add time_convert cross-language artifacts (+time name…
audristroyer Jun 12, 2026
5210c69
review: harden memoization init, secrets-perm verification, fix clock…
audristroyer Jun 12, 2026
6ab7b64
docs: add audit remediation results doc for the NDI-matlab branch
audristroyer Jun 12, 2026
193c4d1
docs: add reviewer/next-agent context banner (part of the 9-PR 2026-0…
audristroyer Jun 12, 2026
4885b14
Remove unused Java schema validator (ndi.validate + ndi-validator-java)
claude Jun 15, 2026
f0e332f
Move assignPropertyPath/getfieldpath into ndi.util
claude Jun 15, 2026
bf1fe24
Rename compute finalize -> advance to match the cloud API
claude Jun 15, 2026
5ca1fa9
De-duplicate symmetry requirements onto tests/+ndi/+symmetry
claude Jun 15, 2026
2377c06
Fix time_convert cell-array bug; make time symmetry assert (MATLAB-re…
claude Jun 15, 2026
4171832
Update GitHub badges [skip ci]
github-actions[bot] Jun 15, 2026
533dabe
ci: authenticate matbox GitHub API calls (GITHUB_TOKEN) to fix dep-in…
claude Jun 15, 2026
65ef1aa
ci: restore tests/requirements.txt (revert symmetry de-dup)
claude Jun 15, 2026
d8b43f3
Update GitHub badges [skip ci]
github-actions[bot] Jun 15, 2026
7a34241
test(symmetry/time): give scenarioReferent a working eq/ne
claude Jun 15, 2026
33b055e
test(symmetry/time): use a real ndi.element referent; drop bespoke sc…
claude Jun 15, 2026
c42a31e
test(symmetry/time): normalize empty msg/epoch in readArtifacts compare
claude Jun 15, 2026
a5823da
Update GitHub badges [skip ci]
github-actions[bot] Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/badges/code_issues.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion .github/badges/tests.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0

Expand All @@ -25,15 +25,15 @@ jobs:
echo "DISPLAY=:99" >> $GITHUB_ENV

- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: '3.11'

- name: Install mkdocs and mkdocs-material
run: pip install mkdocs mkdocs-material

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: 'latest'
cache: true
Expand All @@ -43,10 +43,10 @@ jobs:
Signal_Processing_Toolbox

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Build Documentation (MATLAB)
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
with:
command: |
mkdir('tools');
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/prepare-release-modular.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ on:
jobs:
validate_version:
name: Validate version number
uses: ehennestad/matbox-actions/.github/workflows/validate-version-job.yml@v1
uses: ehennestad/matbox-actions/.github/workflows/validate-version-job.yml@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
version: ${{ inputs.version }}
ref_name: ${{ github.ref_name }}

configure_test_matrix:
name: Configure release test matrix
uses: ehennestad/matbox-actions/.github/workflows/create-matrix-job.yml@v1
uses: ehennestad/matbox-actions/.github/workflows/create-matrix-job.yml@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
tools_directory: tools
needs_python: false
Expand All @@ -38,7 +38,7 @@ jobs:
MATLABVersion: [R2024b, latest]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Start virtual display server
if: runner.os == 'Linux'
Expand All @@ -48,7 +48,7 @@ jobs:
echo "DISPLAY=:99" >> $GITHUB_ENV

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: ${{ matrix.MATLABVersion }}
products: |
Expand All @@ -57,10 +57,10 @@ jobs:
Signal_Processing_Toolbox

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Run tests
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -77,7 +77,7 @@ jobs:

# Save the contents of the report directory from each release into an artifact.
- name: Save report directory
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
if: always()
with:
name: reports-${{ matrix.MATLABVersion }}
Expand All @@ -86,7 +86,7 @@ jobs:
release:
name: Package toolbox and create draft release
needs: [test, validate_version]
uses: ehennestad/matbox-actions/.github/workflows/package-toolbox-job.yml@v1
uses: ehennestad/matbox-actions/.github/workflows/package-toolbox-job.yml@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
version_number: ${{ needs.validate_version.outputs.version_number }}
source_directory: src/ndi
Expand All @@ -97,6 +97,6 @@ jobs:
verify_installation:
name: Verify toolbox installation
needs: [release, validate_version]
uses: ehennestad/matbox-actions/.github/workflows/verify-installation-job.yml@v1
uses: ehennestad/matbox-actions/.github/workflows/verify-installation-job.yml@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
toolbox_name: ${{ needs.release.outputs.toolbox_name }}
23 changes: 14 additions & 9 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,14 @@ jobs:
run_tests:
name: Run tests (MATLAB ${{ inputs.matlab_release || 'latest' }})
runs-on: ubuntu-latest
# matbox dependency resolution calls the GitHub API; authenticate so the
# requests aren't unauthenticated-rate-limited (which surfaced as webread
# timeouts when several jobs install in parallel).
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Check out repo
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Start virtual display server
if: runner.os == 'Linux'
Expand All @@ -54,7 +59,7 @@ jobs:
echo "DISPLAY=:99" >> $GITHUB_ENV

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: ${{ inputs.matlab_release || 'latest' }}
cache: true
Expand All @@ -68,15 +73,15 @@ jobs:
run: git clone https://github.com/VH-Lab/NDIcalc-vis-matlab.git ../NDIcalc-vis-matlab

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Check code and upload report
uses: ehennestad/matbox-actions/check-code@v1
uses: ehennestad/matbox-actions/check-code@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
source_directory: 'src'

- name: Run tests
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand All @@ -89,7 +94,7 @@ jobs:
testToolboxNoCloud()

- name: Restore MATLAB Path
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand All @@ -98,20 +103,20 @@ jobs:

- name: Commit SVG badges if updated
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository )
uses: ehennestad/matbox-actions/push-badges@v1
uses: ehennestad/matbox-actions/push-badges@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1
with:
pr-ref: ${{ github.event.pull_request.head.ref }}
pr-repo: ${{ github.event.pull_request.head.repo.full_name }}

- name: Upload code coverage report to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@b9fd7d16f6d7d1b5d2bec1a2887e65ceed900238 # v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: docs/reports/codecoverage.xml

# Publish test results
- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@v2
uses: EnricoMi/publish-unit-test-result-action@c950f6fb443cb5af20a377fd0dfaa78838901040 # v2
if: always()
with:
files: "docs/reports/test-results.xml"
16 changes: 6 additions & 10 deletions .github/workflows/test-cloud-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ on:
# Allows for manually running this workflow from the Actions tab
workflow_dispatch:

push:
branches:
- add-cloud-api-testing # todo: remove this branch when merged

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
Expand All @@ -26,10 +22,10 @@ jobs:
environment: [prod, dev]
steps:
- name: Check out repo
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: latest
cache: true
Expand All @@ -38,10 +34,10 @@ jobs:
run: git clone https://github.com/VH-Lab/NDIcalc-vis-matlab.git ../NDIcalc-vis-matlab

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Run tests
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand All @@ -58,12 +54,12 @@ jobs:

# Publish test results
- name: Publish test results
uses: mikepenz/action-junit-report@v4
uses: mikepenz/action-junit-report@db71d41eb79864e25ab0337e395c352e84523afe # v4
with:
report_paths: 'docs/reports/test-results.xml'

- name: Restore MATLAB Path
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand Down
17 changes: 11 additions & 6 deletions .github/workflows/test-cloud-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,21 @@ jobs:
run_tests:
name: Cloud CI ${{ matrix.part }}
runs-on: ubuntu-latest
# matbox dependency resolution calls the GitHub API; authenticate so the
# requests aren't unauthenticated-rate-limited (which surfaced as webread
# timeouts when several jobs install in parallel).
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
fail-fast: false
matrix:
part: [1, 2, 3]
steps:
- name: Check out repo
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: latest
cache: true
Expand All @@ -44,10 +49,10 @@ jobs:
run: git clone https://github.com/VH-Lab/NDIcalc-vis-matlab.git ../NDIcalc-vis-matlab

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Run tests
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
with:
command: |
setenv("NDI_CLOUD_USERNAME", "${{ secrets.NDI_CLOUD_USERNAME }}")
Expand All @@ -62,14 +67,14 @@ jobs:

# Publish test results
- name: Publish test results
uses: mikepenz/action-junit-report@v4
uses: mikepenz/action-junit-report@db71d41eb79864e25ab0337e395c352e84523afe # v4
if: always()
with:
report_paths: 'docs/reports/test-results.xml'
check_name: 'Cloud CI ${{ matrix.part }} test results'

- name: Restore MATLAB Path
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand Down
15 changes: 10 additions & 5 deletions .github/workflows/test-symmetry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,14 @@ jobs:
run_tests:
name: Run symmetry tests
runs-on: ubuntu-latest
# matbox.installRequirements resolves git deps via the GitHub API;
# authenticate so the requests aren't unauthenticated-rate-limited
# (which surfaced as a webread timeout to api.github.com).
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Check out repo
uses: actions/checkout@v4
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

- name: Start virtual display server
if: runner.os == 'Linux'
Expand All @@ -27,7 +32,7 @@ jobs:
echo "DISPLAY=:99" >> $GITHUB_ENV

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v2
uses: matlab-actions/setup-matlab@aa8bbc7b76daa63c5d456d1430cbd6cb5b626ab4 # v2
with:
release: latest
cache: true
Expand All @@ -37,15 +42,15 @@ jobs:
Signal_Processing_Toolbox

- name: Install MatBox
uses: ehennestad/matbox-actions/install-matbox@v1
uses: ehennestad/matbox-actions/install-matbox@8fe220fbaec9e119ec5081eb917c8e016e275f1e # v1

- name: Download test datasets
run: |
curl -L -o /tmp/69a8705aa9ab25373cdc6563.tgz \
https://github.com/Waltham-Data-Science/file-passing/raw/refs/heads/main/69a8705aa9ab25373cdc6563.tgz

- name: Run symmetry tests
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
with:
command: |
setenv("NDI_CLOUD_USERNAME", "${{ secrets.NDI_CLOUD_USERNAME }}")
Expand Down Expand Up @@ -92,7 +97,7 @@ jobs:
assert(all(~[results.Failed]), "Some symmetry tests failed")

- name: Restore MATLAB Path
uses: matlab-actions/run-command@v2
uses: matlab-actions/run-command@37b454c384483087929a3d652be474ba585a9659 # v2
if: always()
with:
command: |
Expand Down
Loading