Skip to content

Commit f8256cb

Browse files
committed
Merge remote-tracking branch 'upstream/main' into ica_fix
* upstream/main: (230 commits) FIX: Fix ICA.apply when fitted including marked bad channels (mne-tools#13478) FIX: Correctly set the calibration factor in Nihon Kohden reader (mne-tools#13468) [pre-commit.ci] pre-commit autoupdate (mne-tools#13479) MAINT: Update code credit (mne-tools#13477) Fix `versionadded` directive formatting (mne-tools#13471) typo in mailmap (mne-tools#13475) FIX: Fix _plot_topomap channel names plotting when using a mask (mne-tools#13470) FIX: Handle an Eyelink File with blank lines injected throughout file (mne-tools#13469) ENH: adds annotation filtering to raw and ica source figures (mne-tools#13460) MAINT: Restore VTK nightly wheel on Linux and bump changelog checker (mne-tools#13436) [pre-commit.ci] pre-commit autoupdate (mne-tools#13465) FIX: Fix add_reference_channels for passing two channels names (mne-tools#13466) ENH: Add on_missing for combine_channels (mne-tools#13463) Bump the actions group with 2 updates (mne-tools#13464) Move development dependencies into a dependency group (no more extra) (mne-tools#13452) ENH: add on_missing for rename_channels (mne-tools#13456) add advisory board to website (mne-tools#13462) ENH: Support Nihon Kohden EEG-1200A V01.00 (mne-tools#13448) MAINT: Update dependency specifiers (mne-tools#13459) ENH: Add encoding parameter to Nihon Kohden reader (mne-tools#13458) ...
2 parents 540a6e8 + 41d139d commit f8256cb

File tree

609 files changed

+22058
-4240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

609 files changed

+22058
-4240
lines changed

.circleci/config.yml

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ jobs:
3636
- restore_cache:
3737
keys:
3838
- source-cache
39-
- checkout
39+
- checkout:
40+
method: full
4041
- run:
4142
name: Complete checkout
4243
command: |
@@ -93,11 +94,6 @@ jobs:
9394
name: Set BASH_ENV
9495
command: ./tools/circleci_bash_env.sh
9596

96-
- run:
97-
name: check neuromag2ft
98-
command: |
99-
neuromag2ft --version
100-
10197
- run:
10298
name: Install fonts needed for diagrams
10399
command: |
@@ -218,6 +214,9 @@ jobs:
218214
- restore_cache:
219215
keys:
220216
- data-cache-phantom-kit
217+
- restore_cache:
218+
keys:
219+
- data-cache-ds004388
221220
- run:
222221
name: Get data
223222
# This limit could be increased, but this is helpful for finding slow ones
@@ -241,6 +240,7 @@ jobs:
241240
make test-doc;
242241
mkdir -p doc/_build/test-results/test-doc;
243242
cp junit-results.xml doc/_build/test-results/test-doc/junit.xml;
243+
cp coverage.xml doc/_build/test-results/test-doc/coverage.xml;
244244
fi;
245245
# Build docs
246246
- run:
@@ -252,7 +252,7 @@ jobs:
252252
name: Check sphinx log for warnings (which are treated as errors)
253253
when: always
254254
command: |
255-
! grep "^.* (WARNING|ERROR): .*$" sphinx_log.txt
255+
! grep "^.*\(WARNING\|ERROR\): " sphinx_log.txt
256256
- run:
257257
name: Show profiling output
258258
when: always
@@ -285,6 +285,15 @@ jobs:
285285
- store_artifacts:
286286
path: doc/_build/test-results
287287
destination: test-results
288+
# Upload test results to Codecov
289+
- run:
290+
name: Upload test results to Codecov
291+
environment:
292+
CODECOV_TOKEN: fb4c4a94-72d7-4743-bb08-af25b623a29a
293+
command: |
294+
if [[ -f doc/_build/test-results/test-doc/coverage.xml ]]; then
295+
bash <(curl -s https://codecov.io/bash) -f doc/_build/test-results/test-doc/coverage.xml || true
296+
fi
288297
# Save the SG RST
289298
- store_artifacts:
290299
path: doc/auto_examples.zip
@@ -393,6 +402,10 @@ jobs:
393402
key: data-cache-phantom-kit
394403
paths:
395404
- ~/mne_data/MNE-phantom-KIT-data # (1 G)
405+
- save_cache:
406+
key: data-cache-ds004388
407+
paths:
408+
- ~/mne_data/ds004388 # (1.8 G)
396409

397410

398411
linkcheck:
@@ -449,7 +462,11 @@ jobs:
449462
at: /tmp/build
450463
- restore_cache:
451464
keys:
452-
- website-cache
465+
- website-cache-1
466+
- add_ssh_keys:
467+
fingerprints:
468+
# SHA256:N4qvp6MSbXcTz/27xz96VPsNuTDRT92zoRP8EW0I/8I
469+
- "19:fe:1d:c3:c7:af:7e:16:94:4c:e1:e7:0a:56:13:bd"
453470
- run:
454471
name: Set BASH_ENV
455472
command: |
@@ -477,6 +494,7 @@ jobs:
477494
command: |
478495
git config --global user.email "[email protected]";
479496
git config --global user.name "Circle CI";
497+
ssh-add -D && ssh-add ~/.ssh/id_rsa_19fe1dc3c7af7e16944ce1e70a5613bd
480498
cd ~/mne-tools.github.io;
481499
git checkout main
482500
git remote -v
@@ -498,9 +516,9 @@ jobs:
498516
fi;
499517
git push origin main;
500518
- save_cache:
501-
key: website-cache
519+
key: website-cache-1
502520
paths:
503-
- ~/mne_data/MNE-visual_92_categories-data
521+
- ~/mne-tools.github.io
504522

505523
workflows:
506524
default:

.github/CODEOWNERS

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@
3838
# Core sensor-space classes
3939
/mne/epochs.py @drammock @agramfort @mscheltienne @dengemann
4040
/mne/evoked.py @drammock @agramfort @mscheltienne @dengemann
41-
/mne/io/*.* @drammock @cbrnr @agramfort @mscheltienne @dengemann
41+
/mne/io/*.* @drammock @agramfort @mscheltienne @dengemann
4242

4343
# Current-source density
4444
/mne/preprocessing/_csd.py @alexrockhill @dengemann
4545

4646
# Decoding
47-
/mne/decoding/csp.py @cbrnr @agramfort @dengemann
47+
/mne/decoding/csp.py @agramfort @dengemann
4848
/mne/decoding/*.py @jasmainak
4949

5050
# fNIRS
@@ -66,25 +66,25 @@
6666
*gamma*.py @agramfort # related tutorials and examples
6767

6868
# IO
69-
/mne/io/brainvision @sappelhoff @cbrnr @adam2392
69+
/mne/io/brainvision @sappelhoff @adam2392
7070
/mne/io/nirx @rob-luke
7171
/mne/io/snirf @rob-luke
72-
/mne/export @sappelhoff @cbrnr
72+
/mne/export @sappelhoff
7373
/mne/io/eeglab.py @jasmainak
7474
/mne/io/eeglab/tests/test_eeglab.py @jasmainak
7575

7676
# Minimum Norm
7777
/mne/minimum_norm @agramfort
7878

7979
# Preprocessing
80-
/mne/preprocessing/ica.py @cbrnr @adam2392 @agramfort @mscheltienne @dengemann
81-
/mne/preprocessing/infomax_.py @cbrnr @adam2392 @mscheltienne @dengemann
80+
/mne/preprocessing/ica.py @adam2392 @agramfort @mscheltienne @dengemann
81+
/mne/preprocessing/infomax_.py @adam2392 @mscheltienne @dengemann
8282
/mne/preprocessing/*annotate*.py @mscheltienne
8383
/mne/preprocessing/bads.py @mscheltienne
8484
/mne/preprocessing/e*g.py @mscheltienne
8585

8686
# Report
87-
/mne/report @hoechenberger @dengemann @jasmainak
87+
/mne/report @dengemann @jasmainak
8888

8989
# Simulation
9090
/mne/simulation/ @agramfort
@@ -120,9 +120,6 @@
120120
/doc @larsoner @drammock @agramfort @dengemann
121121
/logo @drammock
122122

123-
# Installation documentation
124-
/doc/install @hoechenberger
125-
126123
# Project infrastructure and CIs
127124
/*.* @larsoner @drammock # files in the root directory
128125
/.circleci @larsoner

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# These are supported funding model platforms
2+
3+
# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4+
# patreon: # Replace with a single Patreon username
5+
open_collective: mne-python
6+
# ko_fi: # Replace with a single Ko-fi username
7+
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
# liberapay: # Replace with a single Liberapay username
10+
# issuehunt: # Replace with a single IssueHunt username
11+
# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
# polar: # Replace with a single Polar username
13+
# buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
# thanks_dev: # Replace with a single thanks.dev username
15+
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/workflows/autofix.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ jobs:
1212
name: Autoupdate changelog entry and headers
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@v5
1616
with:
1717
persist-credentials: false
18-
- uses: actions/setup-python@v5
18+
- uses: actions/setup-python@v6
1919
with:
2020
python-version: '3.12'
2121
- run: pip install --upgrade towncrier pygithub gitpython numpy
2222
- run: python ./.github/actions/rename_towncrier/rename_towncrier.py
2323
- run: python ./tools/dev/ensure_headers.py
24-
- uses: autofix-ci/action@ff86a557419858bb967097bfc916833f5647fa8c
24+
- uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27

.github/workflows/check_changelog.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@ on: # yamllint disable-line rule:truthy
55
types: [opened, synchronize, labeled, unlabeled]
66
branches: ["main"]
77

8+
permissions:
9+
contents: read
10+
811
jobs:
912
changelog_checker:
10-
name: Check towncrier entry in doc/changes/devel/
13+
name: Check towncrier entry in doc/changes/dev/
1114
runs-on: ubuntu-latest
1215
steps:
13-
- uses: scientific-python/action-towncrier-changelog@v1
16+
- uses: actions/checkout@v5
17+
with:
18+
persist-credentials: false
19+
- uses: scientific-python/action-towncrier-changelog@v2
1420
env:
1521
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1622
BOT_USERNAME: changelog-bot

.github/workflows/circle_artifacts.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
on: [status] # yamllint disable-line rule:truthy
2+
permissions:
3+
contents: read
4+
statuses: write
25
jobs:
36
circleci_artifacts_redirector_job:
47
if: "${{ startsWith(github.event.context, 'ci/circleci: build_docs') }}"
5-
runs-on: ubuntu-20.04
8+
runs-on: ubuntu-latest
69
name: Run CircleCI artifacts redirector
710
steps:
811
- name: GitHub Action step

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ jobs:
3838

3939
steps:
4040
- name: Checkout repository
41-
uses: actions/checkout@v4
41+
uses: actions/checkout@v5
4242
with:
4343
persist-credentials: false
4444

4545
# Initializes the CodeQL tools for scanning.
4646
- name: Initialize CodeQL
47-
uses: github/codeql-action/init@v3
47+
uses: github/codeql-action/init@v4
4848
with:
4949
languages: ${{ matrix.language }}
5050
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -58,7 +58,7 @@ jobs:
5858
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5959
# If this step fails, then you should remove it and run the build manually (see below)
6060
- name: Autobuild
61-
uses: github/codeql-action/autobuild@v3
61+
uses: github/codeql-action/autobuild@v4
6262

6363
# ℹ️ Command-line programs to run using the OS shell.
6464
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -71,4 +71,4 @@ jobs:
7171
# ./location_of_script_within_repo/buildscript.sh
7272

7373
- name: Perform CodeQL Analysis
74-
uses: github/codeql-action/analyze@v3
74+
uses: github/codeql-action/analyze@v4

.github/workflows/credit.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
GH_TOKEN: ${{ github.token }}
1818
GITHUB_TOKEN: ${{ github.token }}
1919
steps:
20-
- uses: actions/checkout@v4
20+
- uses: actions/checkout@v5
2121
with:
2222
persist-credentials: true
23-
- uses: actions/setup-python@v5
23+
- uses: actions/setup-python@v6
2424
with:
2525
python-version: '3.12'
2626
- run: pip install pygithub -e .
@@ -40,6 +40,6 @@ jobs:
4040
git checkout -b credit
4141
git commit -am "MAINT: Update code credit"
4242
git push origin credit
43-
PR_NUM=$(gh pr create --base main --head credit --title "MAINT: Update code credit" --body "Created by credit [GitHub action](https://github.com/mne-tools/mne-python/actions/runs/${{ github.run_id }})." --label "no-changelog-entry-needed")
43+
PR_NUM=$(gh pr create --base main --head credit --title "MAINT: Update code credit" --body "Created by credit [GitHub action](https://github.com/mne-tools/mne-python/actions/runs/${{ github.run_id }}). <br> <br> *Adjustments may need to be made to \`doc/changes/credit_tools.py\` or \`.mailmap\` etc. to get CircleCI to pass.*" --label "no-changelog-entry-needed")
4444
echo "Opened https://github.com/mne-tools/mne-python/pull/${PR_NUM}" >> $GITHUB_STEP_SUMMARY
4545
if: steps.status.outputs.dirty == 'true'

.github/workflows/release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ jobs:
1616
package:
1717
runs-on: ubuntu-latest
1818
steps:
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@v5
2020
with:
2121
persist-credentials: false
22-
- uses: actions/setup-python@v5
22+
- uses: actions/setup-python@v6
2323
with:
2424
python-version: '3.10'
2525
- name: Install dependencies
@@ -28,7 +28,7 @@ jobs:
2828
pip install build twine
2929
- run: python -m build --sdist --wheel
3030
- run: twine check --strict dist/*
31-
- uses: actions/upload-artifact@v4
31+
- uses: actions/upload-artifact@v5
3232
with:
3333
name: dist
3434
path: dist
@@ -43,7 +43,7 @@ jobs:
4343
name: pypi
4444
url: https://pypi.org/p/mne
4545
steps:
46-
- uses: actions/download-artifact@v4
46+
- uses: actions/download-artifact@v6
4747
with:
4848
name: dist
4949
path: dist

.github/workflows/spec_zero.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: SPEC0
2+
3+
on: # yamllint disable-line rule:truthy
4+
schedule:
5+
- cron: '0 0 * * 1' # At 00:00 every Monday
6+
workflow_dispatch:
7+
inputs:
8+
ssh:
9+
description: 'Enable ssh debugging'
10+
required: false
11+
default: false
12+
type: boolean
13+
14+
jobs:
15+
update_versions:
16+
permissions:
17+
contents: write
18+
pull-requests: write
19+
name: Update dependency versions
20+
runs-on: ubuntu-latest
21+
env:
22+
GH_TOKEN: ${{ github.token }}
23+
GITHUB_TOKEN: ${{ github.token }}
24+
steps:
25+
- uses: actions/checkout@v5
26+
with:
27+
persist-credentials: true
28+
- name: Triage SSH
29+
run: |
30+
if [[ "${{ inputs.ssh }}" == "true" ]] || [[ "$COMMIT_MESSAGE" == *"[actions ssh]"* ]]; then
31+
echo "ENABLE_SSH=true" | tee -a $GITHUB_ENV
32+
else
33+
echo "ENABLE_SSH=false" | tee -a $GITHUB_ENV
34+
fi
35+
- name: Setup Remote SSH Connection
36+
if: env.ENABLE_SSH == 'true'
37+
uses: mxschmitt/action-tmate@v3
38+
timeout-minutes: 10
39+
with:
40+
detached: true
41+
- uses: actions/setup-python@v6
42+
with:
43+
python-version: '3.12'
44+
- run: pip install packaging requests tomlkit
45+
- run: python tools/dev/spec_zero_update_versions.py
46+
- run: |
47+
git diff && git status --porcelain
48+
if [[ $(git status --porcelain) ]]; then
49+
echo "dirty=true" >> $GITHUB_OUTPUT
50+
fi
51+
id: status
52+
- name: Create PR
53+
run: |
54+
set -xeo pipefail
55+
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
56+
git config --global user.name "github-actions[bot]"
57+
git checkout -b spec_zero
58+
git commit -am "MAINT: Update dependency specifiers"
59+
git push origin spec_zero
60+
PR_NUM=$(gh pr create --base main --head spec_zero --title "MAINT: Update dependency specifiers" --body "Created by spec_zero [GitHub action](https://github.com/mne-tools/mne-python/actions/runs/${{ github.run_id }}). <br> <br> *Adjustments may need to be made to shims in \`mne/fixes.py\` in this or another PR. \`git grep TODO VERSION\` is a good starting point for finding potential updates.*" --label "no-changelog-entry-needed")
61+
echo "Opened https://github.com/mne-tools/mne-python/pull/${PR_NUM}" >> $GITHUB_STEP_SUMMARY
62+
if: steps.status.outputs.dirty == 'true'

0 commit comments

Comments
 (0)