@@ -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
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
0 commit comments