diff --git a/Dockerfile b/Dockerfile
index 87c5b39fc..3f37fb086 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -23,17 +23,17 @@
# SOFTWARE.
# Ubuntu 22.04 LTS - Jammy
-ARG BASE_IMAGE=ubuntu:jammy-20230308
+ARG BASE_IMAGE=ubuntu:jammy-20240125
#
-# fMRIPrep wheel
+# Build wheel
#
FROM python:slim AS src
RUN pip install build
RUN apt-get update && \
apt-get install -y --no-install-recommends git
-COPY . /src/fmriprep
-RUN python -m build /src/fmriprep
+COPY . /src
+RUN python -m build /src
#
# Download stages
@@ -96,9 +96,16 @@ RUN mkdir /opt/convert3d && \
# Micromamba
FROM downloader as micromamba
+
+# Install a C compiler to build extensions when needed.
+# traits<6.4 wheels are not available for Python 3.11+, but build easily.
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends build-essential && \
+ apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+
WORKDIR /
# Bump the date to current to force update micromamba
-RUN echo "2023.04.05"
+RUN echo "2024.02.06"
RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba
ENV MAMBA_ROOT_PREFIX="/opt/conda"
@@ -112,7 +119,7 @@ RUN micromamba create -y -f /tmp/env.yml && \
# Check if this is still necessary when updating the base image.
ENV PATH="/opt/conda/envs/fmriprep/bin:$PATH" \
UV_USE_IO_URING=0
-RUN npm install -g svgo@^3.0.4 bids-validator@^1.13.1 && \
+RUN npm install -g svgo@^3.2.0 bids-validator@^1.14.0 && \
rm -r ~/.npm
#
@@ -249,7 +256,7 @@ RUN curl -L -H "Accept: application/octet-stream" https://api.github.com/repos/e
&& chmod +x /usr/local/bin/msm
# Installing FMRIPREP
-COPY --from=src /src/fmriprep/dist/*.whl .
+COPY --from=src /src/dist/*.whl .
RUN pip install --no-cache-dir $( ls *.whl )[container,test]
RUN find $HOME -type d -exec chmod go=u {} + && \
diff --git a/docs/installation.rst b/docs/installation.rst
index 5420d1427..a812fcf30 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -85,12 +85,12 @@ nipype_.
not handled by the Python's packaging system (Pypi) used to deploy
the ``fmriprep`` package:
-- FSL_ (version 6.0.6.2)
-- ANTs_ (version 2.4.4)
-- AFNI_ (version 23.1.05)
-- `C3D `_ (version 1.3.0)
+- FSL_ (version 6.0.7.7)
+- ANTs_ (version 2.5.1)
+- AFNI_ (version 24.0.05)
+- `C3D `_ (version 1.4.0)
- FreeSurfer_ (version 7.3.2)
-- `bids-validator `_ (version 1.8.0)
+- `bids-validator `_ (version 1.14.0)
- `connectome-workbench `_ (version 1.5.0)
Not running on a local machine? - Data transfer
diff --git a/env.yml b/env.yml
index ac9bc2e9b..b5e0a33d8 100644
--- a/env.yml
+++ b/env.yml
@@ -2,36 +2,36 @@ name: fmriprep
channels:
- https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/
- conda-forge
-# Update this ~yearly; last updated April 2023
+# Update this ~yearly; last updated Jan 2024
dependencies:
- - python=3.10
+ - python=3.11
# Needed for svgo and bids-validator; consider moving to deno
- - nodejs=18
+ - nodejs=20
# Intel Math Kernel Library for numpy
- - mkl=2022.1
- - mkl-service=2.4
+ - mkl=2023.2.0
+ - mkl-service=2.4.0
# git-annex for templateflow users with DataLad superdatasets
- git-annex=*=alldep*
# Base scientific python stack; required by FSL, so pinned here
- numpy=1.26
- scipy=1.11
- matplotlib=3.8
- - pandas=2.1
+ - pandas=2.2
- h5py=3.10
# Dependencies compiled against numpy, best to stick with conda
- nitime=0.10
- scikit-image=0.22
- - scikit-learn=1.3
+ - scikit-learn=1.4
# Utilities
- - graphviz=6.0
+ - graphviz=9.0
- pandoc=3.1
# Workflow dependencies: ANTs
- - ants=2.5.0
- # Workflow dependencies: FSL (versions pinned in 6.0.7.4)
+ - ants=2.5
+ # Workflow dependencies: FSL (versions pinned in 6.0.7.7)
- fsl-bet2=2111.4
- fsl-flirt=2111.2
- fsl-fast4=2111.3
- - fsl-fugue=2201.3
+ - fsl-fugue=2201.4
- fsl-mcflirt=2111.0
- fsl-miscmaths=2203.2
- fsl-topup=2203.2
diff --git a/requirements.txt b/requirements.txt
index 60ea70687..dd51ea4d6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -17,17 +17,17 @@ arrow==1.3.0
# via codecarbon
astor==0.8.1
# via formulaic
-attrs==23.1.0
+attrs==23.2.0
# via
# niworkflows
# sdcflows
-bids-validator==1.13.1
+bids-validator==1.14.0
# via pybids
-bokeh==3.3.1
+bokeh==3.3.4
# via tedana
boto==2.49.0
# via datalad
-certifi==2023.11.17
+certifi==2024.2.2
# via
# requests
# sentry-sdk
@@ -46,7 +46,7 @@ click==8.1.7
# codecarbon
# nipype
# pybids
-codecarbon==2.3.1
+codecarbon==2.3.4
# via
# fmriprep
# fmriprep (pyproject.toml)
@@ -54,20 +54,20 @@ contourpy==1.2.0
# via
# bokeh
# matplotlib
-cryptography==41.0.7
+cryptography==42.0.2
# via secretstorage
cycler==0.12.1
# via matplotlib
-datalad==0.19.4
+datalad==0.19.6
# via
# datalad-next
# datalad-osf
# fmriprep (pyproject.toml)
-datalad-next==1.0.2
+datalad-next==1.2.0
# via datalad-osf
datalad-osf==0.3.0
# via fmriprep (pyproject.toml)
-distro==1.8.0
+distro==1.9.0
# via datalad
docopt==0.6.2
# via num2words
@@ -77,13 +77,11 @@ fasteners==0.19
# via datalad
filelock==3.13.1
# via nipype
-fonttools==4.45.0
+fonttools==4.48.1
# via matplotlib
formulaic==0.5.2
# via pybids
-fuzzywuzzy==0.18.0
- # via codecarbon
-greenlet==3.0.1
+greenlet==3.0.3
# via sqlalchemy
h5py==3.10.0
# via nitransforms
@@ -91,11 +89,11 @@ humanize==4.9.0
# via
# datalad
# datalad-next
-idna==3.4
+idna==3.6
# via requests
-imageio==2.33.0
+imageio==2.33.1
# via scikit-image
-importlib-metadata==7.0.0
+importlib-metadata==7.0.1
# via keyring
importlib-resources==6.1.1
# via
@@ -118,7 +116,7 @@ jeepney==0.8.0
# via
# keyring
# secretstorage
-jinja2==3.1.2
+jinja2==3.1.3
# via
# bokeh
# niworkflows
@@ -144,14 +142,14 @@ looseversion==1.3.0
# nipype
# niworkflows
# smriprep
-lxml==4.9.3
+lxml==5.1.0
# via
# nilearn
# prov
# svgutils
mapca==0.0.4
# via tedana
-markupsafe==2.1.3
+markupsafe==2.1.5
# via jinja2
matplotlib==3.8.2
# via
@@ -165,8 +163,10 @@ migas==0.4.0
# via
# fmriprep
# sdcflows
-more-itertools==10.1.0
- # via jaraco-classes
+more-itertools==10.2.0
+ # via
+ # datalad-next
+ # jaraco-classes
msgpack==1.0.7
# via datalad
networkx==3.2.1
@@ -174,7 +174,7 @@ networkx==3.2.1
# nipype
# prov
# scikit-image
-nibabel==5.1.0
+nibabel==5.2.0
# via
# fmriprep
# fmriprep (pyproject.toml)
@@ -188,7 +188,7 @@ nibabel==5.1.0
# sdcflows
# smriprep
# tedana
-nilearn==0.10.2
+nilearn==0.10.3
# via
# mapca
# nireports
@@ -224,7 +224,7 @@ niworkflows==1.10.0
# smriprep
num2words==0.5.13
# via pybids
-numpy==1.26.2
+numpy==1.26.4
# via
# bokeh
# contourpy
@@ -268,7 +268,7 @@ packaging==23.2
# niworkflows
# scikit-image
# smriprep
-pandas==2.1.3
+pandas==2.2.0
# via
# bokeh
# codecarbon
@@ -281,21 +281,21 @@ pandas==2.1.3
# pybids
# seaborn
# tedana
-patool==2.0.0
+patool==2.1.1
# via datalad
-pillow==10.1.0
+pillow==10.2.0
# via
# bokeh
# imageio
# matplotlib
# scikit-image
-platformdirs==4.1.0
+platformdirs==4.2.0
# via datalad
prometheus-client==0.19.0
# via codecarbon
prov==2.0.0
# via nipype
-psutil==5.9.6
+psutil==5.9.8
# via
# codecarbon
# fmriprep
@@ -313,7 +313,7 @@ pybids==0.16.4
# templateflow
pycparser==2.21
# via cffi
-pydot==1.4.2
+pydot==2.0.0
# via nipype
pynvml==11.5.0
# via codecarbon
@@ -329,9 +329,9 @@ python-dateutil==2.8.2
# nipype
# pandas
# prov
-python-gitlab==4.2.0
+python-gitlab==4.4.0
# via datalad
-pytz==2023.3.post1
+pytz==2024.1
# via
# apscheduler
# pandas
@@ -341,6 +341,8 @@ pyyaml==6.0.1
# nireports
# niworkflows
# smriprep
+rapidfuzz==3.6.1
+ # via codecarbon
rdflib==7.0.0
# via
# nipype
@@ -363,7 +365,7 @@ scikit-image==0.22.0
# via
# niworkflows
# sdcflows
-scikit-learn==1.3.2
+scikit-learn==1.4.0
# via
# mapca
# nilearn
@@ -386,13 +388,13 @@ sdcflows==2.8.0
# via
# fmriprep
# fmriprep (pyproject.toml)
-seaborn==0.13.0
+seaborn==0.13.2
# via
# nireports
# niworkflows
secretstorage==3.3.3
# via keyring
-sentry-sdk==1.39.0
+sentry-sdk==1.40.1
# via fmriprep
simplejson==3.19.2
# via nipype
@@ -406,7 +408,7 @@ smriprep==0.13.2
# via
# fmriprep
# fmriprep (pyproject.toml)
-sqlalchemy==2.0.23
+sqlalchemy==2.0.25
# via pybids
svgutils==0.3.4
# via
@@ -428,13 +430,14 @@ threadpoolctl==3.2.0
# via
# scikit-learn
# tedana
-tifffile==2023.9.26
+tifffile==2024.1.30
# via scikit-image
toml==0.10.2
# via
# fmriprep
+ # fmriprep (pyproject.toml)
# sdcflows
-tornado==6.3.3
+tornado==6.4
# via bokeh
tqdm==4.66.1
# via
@@ -448,18 +451,18 @@ traits==6.3.2
# sdcflows
transforms3d==0.4.1
# via niworkflows
-types-python-dateutil==2.8.19.14
+types-python-dateutil==2.8.19.20240106
# via arrow
-typing-extensions==4.8.0
+typing-extensions==4.9.0
# via
# datalad
# formulaic
# sqlalchemy
-tzdata==2023.3
+tzdata==2023.4
# via pandas
tzlocal==5.2
# via apscheduler
-urllib3==2.1.0
+urllib3==2.2.0
# via
# requests
# sentry-sdk