You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
π€ Filed by an agent at @adelorme's request, at merge time for the EEGLAB test-port stack (#329β#372).
Umbrella issue recording what was and was not examined before the stack was merged, and tracking the follow-up work.
What was merged
43 linear PRs (#329β#370, #372; #371 closed as an abandoned sibling), 57 commits, 387 files, +37,673 / β866, merged with zero divergence from develop @ 1f4c74f0.
Tip CI green on the full matrix (Python 3.10/3.11/3.12 ubuntu, 3.12 macOS + Windows, ruff+ty, pre-commit, docs), run 2026-09-14. Merge-base was develop HEAD at merge time, so that run tested exactly the tree that landed.
External parity harness (parity_repo): EEGPrep vs live MATLAB/EEGLAB through eeglabcompat, 13 subjects Γ 7 pipeline stages. Import and re-referencing exactly identical; ASR/ICA β€ 0.000014 Β΅V; two MATLAB R2026a ICLabel outliers reproduced identically on unmodified develop, confirming they predate this work. The harness drives 18 entry points, 8 of which this stack modifies: pop_loadset, pop_saveset, pop_select, pop_reref, pop_epoch, pop_rmbase, eeg_interp, eeg_picard. See Record parity harness provenance and confirm ASR rejection modeΒ #392 for provenance and one open question about ASR rejection mode.
Stated plainly so future debugging starts from an accurate picture. No line-by-line review of the source was performed before merging, and the parity harness cannot reach the following, which together account for the large majority of the changed files:
Also outside harness reach: apply_eegfilt_legacy / _legacy_firls (reached only from pop_eegfilt and sigprocfunc/eegfilt; clean_artifacts uses its own filtering) and _cluster_kmeans / kmeans_st.
Additional context: of the 99 new/changed test files, 0 reference matlab, octave, eeglabcompat, or pytest.mark.parity β they are Python self-consistency tests. PRs #329β#331 ran 5 CI checks rather than 9, so the bottom of the stack never ran the test suite on its own.
#391 carries the highest residual risk: new code, outside the harness path, tested only against fixtures generated by the same commits that read them.
Note on PR titles
26 of the 42 content PRs add more source lines than test lines under "Port β¦ tests" titles β #347 adds 1,404 source lines across 35 files under "Port current EEGLAB numerical utility tests". Titles that name the dominant content would let reviewers allocate attention correctly at triage time. Several PRs did this well (#363 "Implement CORRMAP component matching", #364 "Add standalone FieldTrip-style statistics", #369 "Implement standalone LIMO workflows").
π€ Filed by an agent at @adelorme's request, at merge time for the EEGLAB test-port stack (#329β#372).
Umbrella issue recording what was and was not examined before the stack was merged, and tracking the follow-up work.
What was merged
43 linear PRs (#329β#370, #372; #371 closed as an abandoned sibling), 57 commits, 387 files, +37,673 / β866, merged with zero divergence from
develop@1f4c74f0.docs/source/changelog.rstModified source by subsystem:
studyfunc16 files (+2,358/β214),popfunc35 (+1,298/β253),adminfunc3 (+368/β19),sigprocfunc15 (+214/β33),resources27 (+183/β48), top-level__init__.py(+140),guifunc6 (+105/β34),statistics4 (+69/β11),miscfunc3 (+58/β6),plugins/firfilt1 (+44/β4),timefreqfunc2 (+3/β3),plugins/clean_rawdata1 (+3).What was verified before merging
developHEAD at merge time, so that run tested exactly the tree that landed.parity_repo): EEGPrep vs live MATLAB/EEGLAB througheeglabcompat, 13 subjects Γ 7 pipeline stages. Import and re-referencing exactly identical; ASR/ICA β€ 0.000014 Β΅V; two MATLAB R2026a ICLabel outliers reproduced identically on unmodifieddevelop, confirming they predate this work. The harness drives 18 entry points, 8 of which this stack modifies:pop_loadset,pop_saveset,pop_select,pop_reref,pop_epoch,pop_rmbase,eeg_interp,eeg_picard. See Record parity harness provenance and confirm ASR rejection modeΒ #392 for provenance and one open question about ASR rejection mode.What was NOT reviewed
Stated plainly so future debugging starts from an accurate picture. No line-by-line review of the source was performed before merging, and the parity harness cannot reach the following, which together account for the large majority of the changed files:
studyfunc(STUDY, LIMO, clustering, measure plots).setonlymiscfuncguifuncstatisticsAlso outside harness reach:
apply_eegfilt_legacy/_legacy_firls(reached only frompop_eegfiltandsigprocfunc/eegfilt;clean_artifactsuses its own filtering) and_cluster_kmeans/kmeans_st.Additional context: of the 99 new/changed test files, 0 reference
matlab,octave,eeglabcompat, orpytest.mark.parityβ they are Python self-consistency tests. PRs #329β#331 ran 5 CI checks rather than 9, so the bottom of the stack never ran the test suite on its own.Follow-up
eegfiltfiltfiltpadlen change#391 carries the highest residual risk: new code, outside the harness path, tested only against fixtures generated by the same commits that read them.
Note on PR titles
26 of the 42 content PRs add more source lines than test lines under "Port β¦ tests" titles β #347 adds 1,404 source lines across 35 files under "Port current EEGLAB numerical utility tests". Titles that name the dominant content would let reviewers allocate attention correctly at triage time. Several PRs did this well (#363 "Implement CORRMAP component matching", #364 "Add standalone FieldTrip-style statistics", #369 "Implement standalone LIMO workflows").