Skip to content

Commit efa1e97

Browse files
authored
Merge branch 'master' into fix/dup_bids-id_force-syn
2 parents a2a6877 + f7abb18 commit efa1e97

34 files changed

+781
-417
lines changed

.github/workflows/build-test-publish.yml

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,20 @@ name: CI
22

33
on:
44
push:
5+
branches:
6+
- master
7+
- main
8+
- maint/*
9+
tags:
10+
- '*'
511
pull_request:
12+
branches:
13+
- master
14+
- main
15+
- maint/*
616
schedule:
7-
- cron: 0 0 * * 0
17+
# 9am EST / 10am EDT Mondays
18+
- cron: 0 14 * * 0
819
# Allow job to be triggered manually from GitHub interface
920
workflow_dispatch:
1021

@@ -49,18 +60,32 @@ jobs:
4960
AFNI_IMSAVE_WARNINGS: NO
5061
AFNI_TTATLAS_DATASET: /opt/afni/atlases
5162
AFNI_PLUGINPATH: /opt/afni/plugins
63+
MARKS: ${{ matrix.marks }}
64+
DEPENDS: ${{ matrix.dependencies }}
5265
strategy:
53-
max-parallel: 6
66+
fail-fast: false
5467
matrix:
55-
python-version: ["3.9", "3.10", "3.11", "3.12"]
56-
marks: ["not slow"]
68+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
69+
dependencies: ["latest", "pre"]
70+
marks: ["fast"]
5771
include:
5872
- python-version: "3.9"
59-
marks: "slow and not veryslow"
73+
dependencies: "min"
74+
marks: "fast"
75+
- python-version: "3.9"
76+
dependencies: "latest"
77+
marks: "slow"
6078
- python-version: "3.12"
79+
dependencies: "latest"
6180
marks: "veryslow"
81+
exclude:
82+
- python-version: "3.9"
83+
dependencies: "pre"
84+
- python-version: "3.10"
85+
dependencies: "pre"
6286

6387
steps:
88+
- uses: actions/checkout@v4
6489
- uses: actions/cache@v4
6590
with:
6691
path: /var/lib/apt
@@ -89,18 +114,22 @@ jobs:
89114
curl -O https://afni.nimh.nih.gov/pub/dist/bin/misc/@update.afni.binaries && \
90115
tcsh @update.afni.binaries -package linux_ubuntu_16_64 -bindir ${AFNI_HOME}
91116
fi
117+
ls -l ${AFNI_HOME}
118+
echo "PATH=${AFNI_HOME}:$PATH" | tee -a $GITHUB_ENV
92119
93120
- name: Git settings (pacify DataLad)
94121
run: |
95122
git config --global user.name 'NiPreps Bot'
96123
git config --global user.email '[email protected]'
124+
- name: Install the latest version of uv
125+
uses: astral-sh/setup-uv@v5
97126
- name: Set up Python ${{ matrix.python-version }}
98127
uses: conda-incubator/setup-miniconda@v3
99128
with:
100129
auto-update-conda: true
101130
auto-activate-base: true
102131
python-version: ${{ matrix.python-version }}
103-
channels: https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/,conda-forge
132+
channels: https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/,conda-forge,defaults
104133
- uses: actions/cache@v4
105134
id: conda
106135
env:
@@ -110,22 +139,15 @@ jobs:
110139
~/conda_pkgs_dir
111140
/home/runner/.cache/pip
112141
key: python-${{ matrix.python-version }}-${{ env.CACHE_NUM }}
113-
restore-keys: |
114-
python-${{ matrix.python-version }}-${{ env.CACHE_NUM }}
115142
- name: Install DataLad
116143
run: |
117-
conda install git-annex=*=alldep* pip
118-
pip install datalad datalad-osf
144+
conda install git-annex=*=alldep*
145+
uv tool install datalad --with=datalad-next --with=datalad-osf
146+
uv tool install datalad-osf --with=datalad-next
119147
- name: Install fsl and ANTs
120148
run: |
121-
conda install fsl-fugue fsl-topup ants
122-
- uses: actions/checkout@v4
123-
- name: Install dependencies
124-
timeout-minutes: 5
125-
run: |
126-
pip install .[tests]
127-
128-
149+
# libitk 5.4.1+ segfaults with ants 2.5.4
150+
conda install fsl-fugue fsl-topup ants 'libitk=5.4.0'
129151
- uses: actions/cache@v4
130152
with:
131153
path: ~/.cache/templateflow
@@ -134,7 +156,7 @@ jobs:
134156
tf-cache-
135157
- name: Get TemplateFlow's required objects
136158
run: |
137-
python tools/cache_templateflow.py
159+
uv run tools/cache_templateflow.py
138160
139161
- uses: actions/cache@v4
140162
with:
@@ -198,25 +220,23 @@ jobs:
198220
mkdir -p $( dirname $FS_LICENSE )
199221
echo "b2VzdGViYW5Ac3RhbmZvcmQuZWR1CjMwNzU2CiAqQ1MzYkJ5VXMxdTVNCiBGU2kvUGJsejJxR1V3Cg==" | base64 -d > $FS_LICENSE
200222
201-
- name: Run pytest with coverage
223+
- name: Install tox
202224
run: |
203-
export PATH=${AFNI_HOME}:$PATH
204-
export FSLDIR=${CONDA_PREFIX}
205-
pytest -v --cov sdcflows --cov-report xml:cov.xml --doctest-modules -n auto sdcflows \
206-
--durations=20 --durations-min=10 -m "$MARKS"
207-
env:
208-
MARKS: ${{ matrix.marks }}
225+
uv tool install tox --with=tox-uv --with=tox-gh-actions
226+
- name: Show tox config
227+
run: tox c
228+
- name: Run tox
229+
run: tox -v --exit-and-dump-after 1200
209230

210-
- uses: codecov/codecov-action@v4
231+
- uses: codecov/codecov-action@v5
211232
with:
212-
file: cov.xml
213233
token: ${{ secrets.CODECOV_TOKEN }}
214234
if: ${{ always() }}
215235

216236
publish:
217237
name: Publish released package to pypi.org
218238
environment: release-pypi
219-
if: github.event.action == 'published'
239+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
220240
runs-on: ubuntu-latest
221241
needs: [build-package, test]
222242
permissions:

.maint/update_requirements.py

Lines changed: 0 additions & 44 deletions
This file was deleted.

CHANGES.rst

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
2.12.0 (March 21, 2025)
2+
=======================
3+
Feature release in the 2.12.x series.
4+
5+
This release migrates from the deprecated ``niworkflows.reporting``
6+
module to the ``nireports`` package.
7+
8+
* FIX: AttributeError for _ApplyCoeffsFieldInputSpec (#481)
9+
* ENH: Allow running SyN SDC without using prior (#480)
10+
* ENH: Allow estimated and fallback TotalReadoutTime (#477)
11+
* RF: Transition from niworkflows reporting interfaces (#473)
12+
* DOC: Fix broken link [skip ci] (#482)
13+
* MNT: Add `defaults` to `conda` channels in `build-test-publish` GHA (#474)
14+
* MNT: Update `niworkflows` version to 1.11.0 (#478)
15+
16+
17+
2.11.0 (December 18, 2024)
18+
==========================
19+
Feature release in the 2.11.x series.
20+
21+
This release supports numpy 2 and Python 3.13.
22+
23+
* FIX: Normalize BIDS-URIs to subject-relative (#458)
24+
* FIX: Only fit high-frequency spline for SyN-SDC (#457)
25+
* ENH: Allow Jacobian correction to be toggled on/off (#462)
26+
* ENH: Dilate fmap and bold masks during coregistration (#463)
27+
* TEST: Clear registry consistently to avoid order dependency (#464)
28+
* DOC: Plot correct workflow in init_syn_preprocessing_wf docstring (#460)
29+
* CI: Drop CircleCI, using GHA only (#459)
30+
31+
132
2.10.0 (July 04, 2024)
233
======================
334
Feature release in the 2.10.x series.

docs/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"nilearn",
4949
"nipy",
5050
"nitime",
51+
"nireports",
5152
"pandas",
5253
"seaborn",
5354
"skimage",

docs/methods.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ Direct B0 mapping sequences
7676
Some MR schemes such as :abbr:`SEI (spiral-echo imaging)` can directly
7777
reconstruct an estimate of *the fieldmap in Hz*, :math:`V(i,j,k)`.
7878
These *fieldmaps* are described with more detail `here
79-
<https://cni.stanford.edu/wiki/GE_Processing#Fieldmaps>`__.
79+
<https://cni.su.domains/wiki/index.php?title=GE_Processing#Fieldmaps>`__.
8080

8181
.. _sdc_phasediff :
8282

docs/requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,3 @@ sphinx >= 7.2.2
1818
sphinx-argparse
1919
sphinxcontrib-apidoc
2020
templateflow
21-
traits < 6.4

env.yml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,28 @@ name: sdcflows
22
channels:
33
- https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/
44
- conda-forge
5-
# Update this ~yearly; last updated April 2023
5+
# Update this ~yearly; last updated Mar 2025
66
dependencies:
7-
- python=3.10
7+
- python=3.12
88
# Intel Math Kernel Library for numpy
9-
- mkl=2022.1
10-
- mkl-service=2.4
9+
- mkl=2024.2.2
10+
- mkl-service=2.4.2
1111
# Base scientific python stack; required by FSL, so pinned here
1212
- numpy=1.26
13-
- scipy=1.11
14-
- matplotlib=3.8
15-
- pandas=2.1
16-
- h5py=3.8
13+
- scipy=1.15
14+
- matplotlib=3.9
15+
- pandas=2.2
16+
- h5py=3.13
1717
# Dependencies compiled against numpy, best to stick with conda
18-
- scikit-image=0.22
18+
- scikit-image=0.25
1919
# Utilities
20-
- graphviz=6.0
20+
- graphviz=11.0
2121
# Workflow dependencies: ANTs
22-
- ants=2.4.4
23-
# Workflow dependencies: FSL (versions pinned in 6.0.6.2)
24-
- fsl-fugue=2201.2
25-
- fsl-topup=2203.1
22+
- ants=2.5
23+
# 5.4.1 and 5.4.2 cause segfaults with ants
24+
# Try to remove this ASAP
25+
# https://github.com/conda-forge/ants-feedstock/issues/19
26+
- libitk=5.4.0
27+
# Workflow dependencies: FSL (versions pinned in 6.0.7.13)
28+
- fsl-fugue=2201.5
29+
- fsl-topup=2203.5

min-requirements.txt

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)