Skip to content

Commit

Permalink
MNT: Update environment pins (#3226)
Browse files Browse the repository at this point in the history
## Changes proposed in this pull request

Updates pins for:

1) Python (3.11)
2) NodeJS (20)
3) Scipy numeric stack (conda)
4) ANTs (conda)
5) FSL (conda)
6) Python dependencies (pip)

## Documentation that should be reviewed

Third party dependencies.
  • Loading branch information
effigies authored Feb 29, 2024
1 parent 6830894 commit b4cced1
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 65 deletions.
21 changes: 14 additions & 7 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand All @@ -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

#
Expand Down Expand Up @@ -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 {} + && \
Expand Down
10 changes: 5 additions & 5 deletions docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 <https://sourceforge.net/projects/c3d/>`_ (version 1.3.0)
- FSL_ (version 6.0.7.7)
- ANTs_ (version 2.5.1)
- AFNI_ (version 24.0.05)
- `C3D <https://sourceforge.net/projects/c3d/>`_ (version 1.4.0)
- FreeSurfer_ (version 7.3.2)
- `bids-validator <https://github.com/bids-standard/bids-validator>`_ (version 1.8.0)
- `bids-validator <https://github.com/bids-standard/bids-validator>`_ (version 1.14.0)
- `connectome-workbench <https://www.humanconnectome.org/software/connectome-workbench>`_ (version 1.5.0)

Not running on a local machine? - Data transfer
Expand Down
22 changes: 11 additions & 11 deletions env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit b4cced1

Please sign in to comment.