Skip to content

Test for MNE-Tools actions#13971

Draft
tsbinns wants to merge 129 commits into
mne-tools:mainfrom
tsbinns:test_tools
Draft

Test for MNE-Tools actions#13971
tsbinns wants to merge 129 commits into
mne-tools:mainfrom
tsbinns:test_tools

Conversation

@tsbinns

@tsbinns tsbinns commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Testing to get an idea of how the actions being implemented in MNE-Tools behave (mne-tools/mne-tools#20).

@tsbinns

tsbinns commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Have now tested here all the actions implemented so far in mne-tools, save the old env checking.

There are a couple differences between what happens currently and what the actions do, but only cosmetic, nothing that should affect the function. A summary of differences below:

Syncing dependencies to env yaml

  • Formatting of some specifiers/markers changes because the actions uses packaging's Request object to get str reprs, which has its own ordering logic. However, this is just a cosmetic thing, and it still functions as an env file.

Citation generation

  • Action switches to using pyyaml to format CITATION.CFF instead of manually constructing this. However, pyyaml's behaviour is to not indent lists, e.g.:
# `pyyaml` formatting
my-list:
- item

# current formatting
my-list:
  - item

AFAIK, there isn't a way to get pyyaml to add this indentation. Both are valid yaml formats, just a visual thing, but it does produce a big diff to what there is currently.

  • pyyaml also doesn't wrap multi-word strings in quotes, as is currently done, but this isn't required for the yaml to be valid.

  • Action takes keywords from pyproject.toml, which don't match what is currently used in the citation. Idea was to simplify the args that need to be passed to the action (as specifying loads of keywords gets cumbersome) and this info can be encoded in pyproject.toml.

Codemeta generation

  • Action uses keywords encoded in pyproject.toml rather than requiring these to be passed as args, as well as supported OSs (which can be extracted from the classifier field) and package description. Again, just trying to simplify args by using info already encoded somewhere.

  • Action uses json.dump() to construct codemeta.json rather than manually building this. Ends up fixing some indent and spacing inconsistencies in author names. A cosmetic improvement, but does generate a big diff.

@larsoner

Copy link
Copy Markdown
Member

Those whitespace changes would be okay but in its current form this is a bit tough to review since it just shows a diff... WDYT about putting all of those actions in the autofix.ci job? That way all the proposed changes will actually be committed? I think it's the way we'll probably want to use it in practice anyway, and will facilitate seeing the diffs (e.g., with whitespace changes ommitted or not).

Comment thread .github/workflows/sync_dependencies_to_environment_file.yml Outdated
Comment thread .github/workflows/autofix.yml Outdated
Comment thread .github/workflows/spec_zero.yml Outdated
Comment thread .extended_metadata.yaml
Comment thread CITATION.cff Outdated
Comment thread codemeta.json
@drammock

Copy link
Copy Markdown
Member

+1 to mark for merge-when-green after the TODOs in the last review! also make sure the other repos using e.g. setup_xvfb.sh have migrated to use mne-tools for those

@tsbinns

tsbinns commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

@drammock I addressed those final review comments, but porting the tools in mne-tools/mne-gui-addons#47 led to some changes in the mne-tools repo proposed in mne-tools/mne-tools#33, and also a realisation some things could be done cleaner. The changes are:

  • Calling a check-qt-import action rather than curling and executing the script in GHA workflows.
  • Activating the conda env in the tests workflow so that it can be used in the `check-qt-import' action.
  • Making sure the scripts in mne-tools already have the executable binary set, so removes those chmod +x lines.

Once mne-tools/mne-tools#33 is merged, we should switch the action calls here back from my fork to mne-tools proper.

There's also the question of typing-extensions being included in the README dependency syncing, because there isn't a way to exclude this in the mne-tools script currently.

I won't be able to do anything on this next week, so I don't mind if we hold off on merging this until then.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants