Skip to content

Commit c1d70c5

Browse files
committed
Merge remote-tracking branch 'upstream/main' into add_emg_support
2 parents 97397a7 + 19da4aa commit c1d70c5

Some content is hidden

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

53 files changed

+1548
-584
lines changed

.github/release.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
changelog:
2+
exclude:
3+
authors:
4+
- dependabot[bot]
5+
- pre-commit-ci[bot]
6+
- github-actions[bot]

.github/workflows/cffconvert.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Check out a copy of the repository
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v5
1818

1919
- name: Check whether the citation metadata from CITATION.cff is valid
2020
uses: citation-file-format/[email protected]

.github/workflows/release.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,18 @@ jobs:
1818
package:
1919
runs-on: ubuntu-latest
2020
steps:
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v5
2222
with:
2323
fetch-depth: 0
2424
fetch-tags: true
25-
- uses: actions/setup-python@v5
25+
- uses: actions/setup-python@v6
2626
with:
27-
python-version: '3.12'
27+
python-version: '3.13'
2828
- name: Install dependencies
2929
run: |
3030
python -m pip install --upgrade pip
31-
pip install build twine
31+
pip check
32+
python -m pip install build twine
3233
- run: python -m build --sdist --wheel
3334
- run: twine check --strict dist/*
3435
- uses: actions/upload-artifact@v4
@@ -47,7 +48,7 @@ jobs:
4748
name: pypi
4849
url: https://pypi.org/p/mne-bids
4950
steps:
50-
- uses: actions/download-artifact@v4
51+
- uses: actions/download-artifact@v5
5152
with:
5253
name: dist
5354
path: dist

.github/workflows/unit_tests.yml

Lines changed: 74 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,24 @@ jobs:
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
python-version: ["3.12"]
22+
python-version: ["3.13"]
2323
steps:
24-
- uses: actions/checkout@v4
24+
- uses: actions/checkout@v5
2525
with:
2626
fetch-depth: 0
2727
fetch-tags: true
2828
- name: Set up Python ${{ matrix.python-version }}
29-
uses: actions/setup-python@v5
29+
uses: actions/setup-python@v6
3030
with:
3131
python-version: ${{ matrix.python-version }}
3232
- uses: actions/cache@v4
3333
with:
3434
path: ${{ env.pythonLocation }}
35-
key: style-0-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
35+
key: style-2-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
3636
- name: Install dependencies
3737
run: |
3838
python -m pip install --upgrade pip
39+
pip check
3940
python -m pip install ruff
4041
- name: Display versions and environment information
4142
run: |
@@ -50,24 +51,25 @@ jobs:
5051
fail-fast: false
5152
matrix:
5253
os: [ubuntu-latest]
53-
python-version: ["3.10", "3.12"] # Oldest and newest supported versions
54+
python-version: ["3.10", "3.13"] # Oldest and newest supported versions
5455
steps:
5556
- name: Set up Python ${{ matrix.python-version }}
56-
uses: actions/setup-python@v5
57+
uses: actions/setup-python@v6
5758
with:
5859
python-version: ${{ matrix.python-version }}
5960

6061
- uses: actions/cache@v4
6162
with:
6263
path: ${{ env.pythonLocation }}
63-
key: build-1-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
64+
key: build-3-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
6465

6566
- name: Install dependencies
6667
run: |
6768
python -m pip install --upgrade pip
69+
pip check
6870
python -m pip install build twine
6971
70-
- uses: actions/checkout@v4
72+
- uses: actions/checkout@v5
7173
with:
7274
fetch-depth: 0
7375
fetch-tags: true
@@ -86,7 +88,7 @@ jobs:
8688
- name: Remove sdist install
8789
run: python -m pip uninstall -y mne-bids
8890

89-
- uses: actions/checkout@v4
91+
- uses: actions/checkout@v5
9092
with:
9193
fetch-depth: 0
9294
fetch-tags: true
@@ -105,7 +107,7 @@ jobs:
105107
- name: Remove wheel install
106108
run: python -m pip uninstall -y mne-bids
107109

108-
- uses: actions/checkout@v4
110+
- uses: actions/checkout@v5
109111
with:
110112
fetch-depth: 0
111113
fetch-tags: true
@@ -126,22 +128,23 @@ jobs:
126128
# For GitHub "required" CI checks, add in branch protection:
127129
#
128130
# 8 checks:
129-
# for each machine type (ubuntu, macos, macos-13, windows):
130-
# (NOTE: macos-13=x86_64, macos>13=arm64)
131+
# for each machine type (ubuntu, macos, windows):
131132
# 3.10 / mne-stable / full / validator-stable
132-
# 3.12 / mne-stable / full / validator-stable
133+
# 3.13 / mne-stable / full / validator-stable
133134
#
134-
# 3 additional checks with alternative MNE-Python and BIDS validator versions:
135-
# ubuntu / 3.12 / mne-main / full / validator-main
136-
# ubuntu / 3.10 / mne-prev / full / validator-stable
137-
# ubuntu / 3.12 / mne-stable / minimal / validator-stable
135+
# 4 additional checks with alternative MNE-Python and BIDS validator versions:
136+
# ubuntu / 3.13 / mne-main / full / validator-main --> to test cutting edge of everything
137+
# ubuntu / 3.10 / mne-prev / full / validator-stable --> to test last supported of everything
138+
# ubuntu / 3.13 / mne-stable / minimal / validator-stable --> to test a minimal installation
139+
# ubuntu / 3.12 / mne-stable / full / validator-main-schema --> to test next-gen BIDS validator
140+
# macos-15-intel / 3.13 / mne-stable / full / validator-stable --> to test macos x86_64
138141
timeout-minutes: 60
139142
runs-on: ${{ matrix.os }}
140143
strategy:
141144
fail-fast: false
142145
matrix:
143-
os: [ubuntu-latest, macos-latest, macos-13, windows-latest]
144-
python-version: ["3.10", "3.12"] # Oldest and newest supported versions
146+
os: [ubuntu-latest, macos-latest, windows-latest]
147+
python-version: ["3.10", "3.13"] # Oldest and newest supported versions
145148
mne-version: [mne-stable]
146149
mne-bids-install: [full]
147150
bids-validator-version: [validator-stable]
@@ -150,7 +153,7 @@ jobs:
150153
# special test runs running only on single CI systems to save resources
151154
# Test development versions
152155
- os: ubuntu-latest
153-
python-version: "3.12"
156+
python-version: "3.13"
154157
mne-version: mne-main
155158
mne-bids-install: full
156159
bids-validator-version: validator-main
@@ -162,41 +165,60 @@ jobs:
162165
bids-validator-version: validator-stable
163166
# Test minimal mne-bids install
164167
- os: ubuntu-latest
165-
python-version: "3.12"
168+
python-version: "3.13"
166169
mne-version: mne-stable
167170
mne-bids-install: minimal
168171
bids-validator-version: validator-stable
169-
172+
# Test next gen BIDS schema validator
173+
- os: ubuntu-latest
174+
python-version: "3.12"
175+
mne-version: mne-stable
176+
mne-bids-install: full
177+
bids-validator-version: validator-main-schema
178+
# Test macos on x86_64 architecture
179+
- os: macos-15-intel
180+
python-version: "3.13"
181+
mne-version: mne-stable
182+
mne-bids-install: full
183+
bids-validator-version: validator-stable
170184

171185
env:
172186
TZ: Europe/Berlin
173187
FORCE_COLOR: true
174188
steps:
175-
- uses: actions/checkout@v4
189+
- uses: actions/checkout@v5
176190
with:
177191
fetch-depth: 0
178192
fetch-tags: true
179193

180-
- name: Set up Node.js
181-
uses: actions/setup-node@v4
194+
- name: Set up Node.js (validator-stable and validator-main)
195+
if: matrix.bids-validator-version == 'validator-stable' || matrix.bids-validator-version == 'validator-main'
196+
uses: actions/setup-node@v6
182197
with:
183198
node-version: 20
184199

200+
- name: Set up deno (validator-main-schema)
201+
if: matrix.bids-validator-version == 'validator-main-schema'
202+
uses: denoland/setup-deno@v2
203+
with:
204+
deno-version: v1.x
205+
185206
- name: Set up Python ${{ matrix.python-version }}
186-
uses: actions/setup-python@v5
207+
uses: actions/setup-python@v6
187208
with:
188209
python-version: ${{ matrix.python-version }}
189210

190211
- name: Restore cache
191212
uses: actions/cache@v4
192213
with:
193214
path: ${{ env.pythonLocation }}
194-
key: test-0-${{ env.pythonLocation }}-${{ env.os }}-${{ hashFiles('pyproject.toml') }}
215+
key: test-2-${{ env.pythonLocation }}-${{ env.os }}-${{ hashFiles('pyproject.toml') }}
195216

196217
- name: Install Python dependencies using pip
197218
# This would be nicer once this feature is implemented: https://github.com/pypa/pip/issues/11440
198219
run: |
199220
python -m pip install --upgrade pip
221+
pip check
200222
python -m pip install -e .[test]
201223
202224
- name: Install MNE (stable)
@@ -222,6 +244,18 @@ jobs:
222244
run: |
223245
npm install -g bids-validator
224246
247+
- name: Install BIDS validator (main-schema)
248+
if: matrix.bids-validator-version == 'validator-main-schema'
249+
# Follow documentation here:
250+
# - https://github.com/bids-standard/bids-validator/tree/master/bids-validator/src
251+
# - https://github.com/bids-standard/bids-examples/blob/7c18d6840982518a0251cfeb59fe5c4610099ea1/.github/workflows/validate_datasets.yml#L69-L75
252+
#
253+
# Note: in the future, we may want to make it easy to use:
254+
# - a different version of the validator (stable, main)
255+
# - a different version of the schema (stable, main)
256+
run: |
257+
deno install -Agf https://github.com/bids-standard/bids-validator/raw/deno-build/bids-validator.js
258+
225259
- name: Download BIDS validator (main)
226260
if: matrix.bids-validator-version == 'validator-main'
227261
run: |
@@ -244,14 +278,16 @@ jobs:
244278
popd
245279
246280
- name: Display versions and environment information
281+
shell: bash
247282
run: |
248283
echo $TZ
249284
date
250-
echo "npm"; npm --version
285+
echo "(npm version)"; npm --version
251286
echo "node"; node --version
252-
echo "bids-validator"; bids-validator --version
253-
echo "python"; python --version
254-
which python
287+
echo "(deno version)"; deno --version || echo ""
288+
echo "(bids-validator version)"; bids-validator --version
289+
echo "(python version)"; python --version
290+
echo "(which python)"; which python
255291
mne sys_info
256292
257293
- name: Install MNE-BIDS (minimal)
@@ -265,7 +301,7 @@ jobs:
265301
# Only run on a limited set of jobs
266302
- name: Run pytest without testing data
267303
run: make test
268-
if: ${{ matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' && matrix.mne-version == 'mne-main' }}
304+
if: ${{ matrix.python-version == '3.13' && matrix.os == 'ubuntu-latest' && matrix.mne-version == 'mne-main' }}
269305

270306
# Get testing data
271307
- run: ./tools/get_testing_version.sh
@@ -275,7 +311,7 @@ jobs:
275311

276312
- uses: actions/cache@v4
277313
with:
278-
key: ${{ env.TESTING_VERSION }}
314+
key: testing_data-1-${{ env.TESTING_VERSION }}
279315
path: ~/mne_data
280316
name: 'Cache testing data'
281317

@@ -299,23 +335,24 @@ jobs:
299335
strategy:
300336
fail-fast: false
301337
matrix:
302-
python-version: ["3.12"]
338+
python-version: ["3.13"]
303339
steps:
304-
- uses: actions/checkout@v4
340+
- uses: actions/checkout@v5
305341
with:
306342
fetch-depth: 0
307343
fetch-tags: true
308344
- name: Set up Python ${{ matrix.python-version }}
309-
uses: actions/setup-python@v5
345+
uses: actions/setup-python@v6
310346
with:
311347
python-version: ${{ matrix.python-version }}
312348
- uses: actions/cache@v4
313349
with:
314350
path: ${{ env.pythonLocation }}
315-
key: build_docs-1-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
351+
key: build_docs-3-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}
316352
- name: Install dependencies
317353
run: |
318354
python -m pip install --upgrade pip
355+
pip check
319356
python -m pip install --upgrade https://github.com/mne-tools/mne-python/archive/refs/heads/main.zip
320357
python -m pip install -e .[test,doc]
321358
- name: Build the documentation

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Alex Rockhill <[email protected]> <[email protected]>
55
Alexandre Gramfort <[email protected]>
66
Alexandre Gramfort <[email protected]> <[email protected]>
77
Ariel Rokem <[email protected]>
8+
Bruno Aristimunha <[email protected]>
89
Chris Holdgraf <[email protected]>
910
1011
Clemens Brunner <[email protected]>

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
3-
rev: v0.11.0
3+
rev: v0.14.1
44
hooks:
55
- id: ruff
66
name: ruff mne_bids/
@@ -21,7 +21,7 @@ repos:
2121
files: ^examples/
2222

2323
- repo: https://github.com/pre-commit/pre-commit-hooks
24-
rev: v5.0.0
24+
rev: v6.0.0
2525
hooks:
2626
- id: trailing-whitespace
2727
- id: end-of-file-fixer
@@ -33,7 +33,7 @@ repos:
3333
- id: check-docstring-first
3434

3535
- repo: https://github.com/pappasam/toml-sort
36-
rev: v0.24.2
36+
rev: v0.24.3
3737
hooks:
3838
- id: toml-sort-fix
3939
files: pyproject.toml

CITATION.cff

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,25 @@ authors:
206206
family-names: Gerçek
207207
affiliation: 'University of Geneva, Department of Fundamental Neuroscience'
208208
orcid: 'https://orcid.org/0000-0003-1063-6769'
209+
- given-names: Matthias
210+
family-names: Dold
211+
affiliation: 'Donders Institute for Brain, Cognition and Behaviour, Radboud University, Nijmegen, Netherlands'
212+
orcid: 'https://orcid.org/0009-0003-1477-4912'
213+
- given-names: Harrison
214+
family-names: Ritz
215+
affiliation: 'Princeton Neuroscience Institute, Princeton University, Princeton, USA'
216+
orcid: 'https://orcid.org/0009-0003-1477-4912'
217+
- given-names: Alex
218+
family-names: Lopez Marquez
219+
affiliation: 'Institut Guttmann, Barcelona, Spain'
220+
orcid: 'https://orcid.org/0000-0002-3353-280X'
221+
- given-names: Nathan
222+
family-names: Azrak
223+
orcid: 'https://orcid.org/0000-0001-7695-4634'
224+
- given-names: Bruno
225+
family-names: Aristimunha
226+
affiliation: 'Université Paris-Saclay, LISN, Inria TAU/INRIA Nerv, France'
227+
orcid: 'https://orcid.org/0000-0001-5258-2995'
209228
- given-names: Alexandre
210229
family-names: Gramfort
211230
affiliation: 'Université Paris-Saclay, Inria, CEA, Palaiseau, France'

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,4 @@ Please also cite one of the following papers to credit BIDS, depending on which
5858
- [EEG-BIDS](https://doi.org/10.1038/s41597-019-0104-8)
5959
- [iEEG-BIDS](https://doi.org/10.1038/s41597-019-0105-7)
6060
- [NIRS-BIDS](https://doi.org/10.31219/osf.io/7nmcp)
61+
- [Motion-BIDS](https://doi.org/10.1038/s41597-024-03559-8)

0 commit comments

Comments
 (0)