Skip to content

Reorganize repository with documentation that will be deployed with actions - #38

Draft
VisLab wants to merge 17 commits into
masterfrom
reorganize
Draft

VisLab wants to merge 17 commits into
masterfrom
reorganize

Conversation

@VisLab

@VisLab VisLab commented Sep 26, 2026

Copy link
Copy Markdown
Owner

No description provided.

VisLab and others added 10 commits September 24, 2026 11:18
- Add AGENTS.md, CLAUDE.md, Copilot pointer, .claude and .vscode settings,
  and status_conduct rules
- Add .gitattributes and renormalize 17 CRLF files to LF (whitespace only)
- Move release history from README.md to CHANGELOG.md
- Extend .gitignore with the standard local-only entries

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
runVEPPrepPipeline.m and runVEPPrepReport.m now use named placeholders
with a comment to set them; the shared PATH_TO_PREP_OUTPUT chains the
pipeline output into the report script.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ESS is retired, so runESSPrepPipeline.m, runESSResampleAndDealias.m and
runESSLevel1ResampleAndDealias.m can no longer run: they drive ESS study
classes that are not part of this repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Patterned on hed-matlab: furo theme, MyST markdown, and
sphinxcontrib-matlabdomain for an API page generated from the .m help
text, deployed to GitHub Pages by .github/workflows/deploy-docs.yaml on
pushes to master.

- docs/user_guide.md is the gh-pages index.md with headings normalized,
  image links made relative, and the dead EEGLAB link fixed
- docs/conf.py reads the version from getPrepVersion.m
- pyproject.toml declares only the docs toolchain
- AGENTS.md, .claude/settings.json and .gitignore cover the docs build

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds how to build and view the Sphinx site locally, and how and when the
deploy workflow publishes it to GitHub Pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
uv misbehaves on Windows. README.md and AGENTS.md now set up the docs
toolchain with python -m venv and python -m pip; the GitHub Actions
workflow keeps using uv.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The default binding listens on all addresses and prints http://[::]:8000/,
which is not an address a browser can open. Binding to 127.0.0.1 prints a
usable URL and keeps the server local.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PREP's help text is written for MATLAB's help command, not as
reStructuredText, so Sphinx mis-rendered it and emitted 15 docutils
warnings. docs/conf.py now wraps each docstring in a literal block,
laid out as help prints it. No .m file changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Rename reporting/showPipelineDefaults.m to showPrepDefaults.m so the file
  matches its function name and the prepPipeline help text that tells users
  to call showPrepDefaults(EEG)
- Delete derived/highPassAndICALinux.m, an unused copy of highPassAndICA.m
  hardwired to cudaica; highPassAndICA takes 'icatype', 'cudaica' instead

The docs build now completes with no warnings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@VisLab
VisLab requested a lite review from Copilot September 26, 2026 17:56
@VisLab
VisLab marked this pull request as draft September 26, 2026 17:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved workflow permission, compatibility, documentation, and source-organization issues remain.

Review effort: Lite
Findings: 1 High severity · 5 Low severity

Open (6)
What changed in this PR

Adds a Sphinx documentation site with GitHub Pages deployment while reorganizing repository guidance, examples, and release metadata.

Changes:

  • Adds user/API documentation, styling, and build tooling.
  • Adds automated documentation deployment.
  • Normalizes source files and removes obsolete examples/helpers.
File Change Review status
README.md Documents documentation builds and publishing. No specific finding.
pyproject.toml Defines documentation dependencies. No specific finding.
PrepPipeline/​utilities/​updateBadChannels.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​struct2str.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​robustReference.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​getPrepVersion.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​findNoisyChannels.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​cleanLineNoise.m Normalizes formatting. No specific finding.
PrepPipeline/​utilities/​blasstLineNoise.m Normalizes formatting. No specific finding.
PrepPipeline/​reporting/​showPrepDefaults.m Adds defaults display functionality. Moderate issue: omits general defaults.
PrepPipeline/​publishPrepReport.m Normalizes formatting. No specific finding.
PrepPipeline/​preplicense.txt Normalizes license text. No specific finding.
PrepPipeline/​pop_prepPipeline.m Normalizes formatting. No specific finding.
PrepPipeline/​interface/​MasterGUI.m Normalizes formatting. No specific finding.
PrepPipeline/​interface/​displayErrors.m Normalizes formatting. No specific finding.
PrepPipeline/​examples/​runVEPPrepReport.m Replaces machine-specific paths. No specific finding.
PrepPipeline/​examples/​runVEPPrepPipeline.m Replaces machine-specific paths. No specific finding.
PrepPipeline/​examples/​runESSResampleAndDealias.m Removes obsolete example. No specific finding.
PrepPipeline/​examples/​runESSPrepPipeline.m Removes obsolete example. No specific finding.
PrepPipeline/​examples/​runESSLevel1ResampleAndDealias.m Removes obsolete example. No specific finding.
PrepPipeline/​eegplugin_prepPipeline.m Normalizes formatting. No specific finding.
PrepPipeline/​derived/​highPassAndICALinux.m Removes Linux-specific helper. Moderate issue: removes a public callable entry point without replacement or notice.
docs/​user_guide.md Adds user documentation. Nits: incorrect install path, output-handle description, parameter spelling/case, and return-value description.
docs/​patch_matlabdomain.py Patches MATLAB-domain compatibility. No specific finding.
docs/​index.rst Adds documentation landing page. No specific finding.
docs/​conf.py Configures Sphinx and MATLAB documentation. No specific finding.
docs/​api.rst Adds API reference directives. Nits: two entries lack extractable MATLAB help text.
docs/​_templates/​quicklinks.html Adds documentation quick links. No specific finding.
docs/​_static/​gh_icon_fix.js Customizes GitHub links. No specific finding.
docs/​_static/​custom.css Adds documentation styling. No specific finding.
CLAUDE.md Adds Claude guidance pointer. No specific finding.
CHANGELOG.md Adds release history. Nit: 0.57.0 release date conflicts with version metadata.
AGENTS.md Adds repository instructions. No specific finding.
.vscode/​settings.json Adds editor settings. No specific finding.
.gitignore Ignores local tooling artifacts. No specific finding.
.github/​workflows/​deploy-docs.yaml Builds and deploys GitHub Pages documentation. Critical issue: build job inherits deployment and OIDC write permissions while executing PR-controlled code.
.github/​instructions/​status_conduct.instructions.md Adds scoped status guidance. No specific finding.
.github/​copilot-instructions.md Adds Copilot guidance. No specific finding.
.gitattributes Defines line-ending and binary handling. No specific finding.
.claude/​settings.json Configures Claude permissions. No specific finding.
.claude/​rules/​status_conduct.md Adds Claude status rules. Nit: duplicates the GitHub instruction source instead of using one canonical source.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/deploy-docs.yaml Outdated
Comment thread CHANGELOG.md Outdated
Comment thread docs/api.rst
Comment thread docs/user_guide.md Outdated
Comment thread docs/user_guide.md Outdated
Comment thread docs/user_guide.md Outdated
- deploy-docs.yaml: read-only by default; only the deploy job gets
  pages: write and id-token: write
- CHANGELOG.md: 0.57.0 release date 3/31/2025, matching getPrepVersion.m
- pop_prepPipeline.m: help block moved after the function line so the API
  docs pick it up (help output unchanged); conf.py strips the link markup
  matlabdomain adds to "See also" lines
- user_guide.md: plugin install names the zip in EEGLABPlugin/, fix
  referenceChannels and rereferencedChannels names, correct where the
  report summary is written

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved critical command-permission exposure and additional documentation and reporting issues remain.

Review effort: Lite
Findings: 1 High severity

Open (1)
Resolved since last review (6)
Previously missed (5)

In code that hasn't changed since last review

Low severity API documentation omits showPrepDefaults

docs/​api.rst:38

The API page claims to document the public entry points, but it omits the newly added reporting.showPrepDefaults function while listing the older defaults printer. Users following the published API will not discover the function referenced by prepPipeline's help text.

Low severity Correct misspelling of embarrassingly

docs/​user_guide.md:31

embarassingly is misspelled in this new user-guide text; use embarrassingly.

This issue also appears in the following locations of the same file:

  • line 107
  • line 199
Low severity Mismatched Markdown delimiters around robust

docs/​user_guide.md:254

The robust inline literal starts with two backticks but closes with a single backtick after an apostrophe, so the generated page will render this markup incorrectly. Use matching Markdown delimiters around robust.

Low severity Document skipReport instead of unsupported skip

docs/​user_guide.md:329

The implementation accepts skipReport (see reportGUI.m and the three strcmpi checks in pop_prepPipeline.m), not skip. Following this new guide and passing reportMode = 'skip' therefore matches none of the execution branches and runs neither PREP nor reporting; document the actual skipReport value.

Low severity Heading does not match publishOn parameter

docs/​user_guide.md:359

This heading does not match the public parameter name (publishOn) used by publishPrepReport and by the surrounding text. Keep the documented spelling/casing consistent so users can map the option to the function signature.

Comment thread .claude/settings.json Outdated
VisLab and others added 3 commits September 27, 2026 06:10
- LICENSE: complete GPL v2 text; PREP is GPL-2.0-or-later
- README.md: licensing table for every component with its own license,
  including the CC BY 4.0 example data, plus the research-use disclaimer
- docs/license_hed_matlab.txt: MIT notice for files copied from hed-matlab
- Remove the unsupported BLASST line-noise option (Apache-2.0 code) and
  its lineNoiseMethod branch

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- runVEPPrepPipeline.m and runVEPPrepReport.m default to examples/data
  and examples/output, and convert the data to double after pop_loadset
  (.fdt files hold 32-bit samples)
- .gitattributes: *.set and *.fdt are binary; .gitignore: examples/output
- README.md: Zenodo DOI badge; citation line breaks that survive
  trailing-whitespace trimming

The example data itself is not in this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- docs/api.rst: list reporting.showPrepDefaults with the other defaults
  functions
- docs/user_guide.md: report mode 'skipReport' (not 'skip'), matching
  pop_prepPipeline; fix the 'robust' literal, the publishOn heading, and
  the spelling of "embarrassingly"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread PrepPipeline/examples/runVEPPrepPipeline.m
Comment thread pyproject.toml Outdated
Comment thread README.md
Comment thread docs/user_guide.md Outdated
Comment thread docs/user_guide.md Outdated
Comment thread docs/user_guide.md Outdated
Comment thread docs/user_guide.md Outdated
VisLab and others added 2 commits September 27, 2026 08:19
- .claude/settings.json: permissions.blockReadsOutsideWorkingDirectories
  is true, so Claude's file tools refuse reads outside the working
  directories. Programs a session runs, such as matlab -batch, are not
  affected; to let Claude read EEGLAB's source, start with --add-dir.
- Drop the git show, grep, head, tail, and cat allow rules: Claude Code
  already runs these read-only commands without a prompt, so the rules
  granted nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- pyproject.toml: require setuptools>=61, the first release that supports
  PEP 621 [project] metadata
- docs/user_guide.md: the default report mode 'normal' generates and
  publishes a report; show removeLineNoise, which fills in defaults, for
  line-noise removal; channelInformation, not channelInfo; describe the
  files publishPrepReport writes instead of a return value
- docs/api.rst: list removeLineNoise

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The defaults reporter has incomplete output, release dates and iteration documentation are inaccurate, and the plugin licensing table omits bundled BLASST code.

Review effort: Balanced
Findings: None

Resolved since last review (7)
Previously missed (2)

In code that hasn't changed since last review

Low severity Add BLASST to the plugin license table

README.md:96

The released 0.57.0 plugin still contains utilities/blasst/ and blasstLineNoise.m, whose headers license BLASST under Apache-2.0, but the table says the zip is covered by the components above and no longer lists BLASST. Add a plugin-only BLASST row so users can determine the license of every file currently distributed in the latest release.

Low severity Enforce the stated maximum reference iterations

docs/​user_guide.md:324

The implementation checks iterations > maxReferenceIterations before each pass, so with the default of 4 a non-converging run performs five iterations and records actualReferenceIterations = 5. Either change the loop guard to enforce four as the maximum or document the current off-by-one behavior; the stated maximum is not currently accurate.

robustReference checked iterations > maxReferenceIterations before each
pass, so the default limit of 4 allowed five passes and recorded
actualReferenceIterations = 5. It now uses >=, so it performs at most
maxReferenceIterations passes. Results change for recordings that never
converge.

CHANGELOG.md: record the fix under Unreleased, and drop the BLASST and
license entries (the changelog records pipeline changes only).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants