Skip to content

{bio}[foss/2024a] fMRIPrep v25.0.0, Nipype v1.9.2#22732

Merged
smoors merged 18 commits intoeasybuilders:developfrom
moravveji:fmriprep-2024a
Feb 28, 2026
Merged

{bio}[foss/2024a] fMRIPrep v25.0.0, Nipype v1.9.2#22732
smoors merged 18 commits intoeasybuilders:developfrom
moravveji:fmriprep-2024a

Conversation

@moravveji
Copy link
Copy Markdown
Contributor

@moravveji moravveji commented Apr 9, 2025

Remarks:

  • to resolve the versions of dependencies of fMRIPrep, some of dependencies had to be built with slightly older versions than the latest released ones.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2025

Updated software NiBabel-5.2.1-gfbf-2024a.eb

Diff against NiBabel-5.3.2-gfbf-2024a.eb

easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2024a.eb

diff --git a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
index 1679c20614..a173052b66 100644
--- a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2024a.eb
+++ b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonBundle'
 
 name = 'NiBabel'
-version = '5.3.2'
+version = '5.2.1'
 
 homepage = 'https://nipy.github.io/nibabel'
 description = """NiBabel provides read/write access to some common medical and neuroimaging file formats,
@@ -27,7 +27,7 @@ exts_list = [
         'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'],
     }),
     ('nibabel', version, {
-        'checksums': ['0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b'],
+        'checksums': ['b6c80b2e728e4bc2b65f1142d9b8d2287a9102a8bf8477e115ef0d8334559975'],
     }),
 ]
 
Diff against NiBabel-5.3.2-gfbf-2023b.eb

easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2023b.eb b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
index 6a2b44a552..a173052b66 100644
--- a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.3.2-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonBundle'
 
 name = 'NiBabel'
-version = '5.3.2'
+version = '5.2.1'
 
 homepage = 'https://nipy.github.io/nibabel'
 description = """NiBabel provides read/write access to some common medical and neuroimaging file formats,
@@ -9,16 +9,16 @@ description = """NiBabel provides read/write access to some common medical and n
  as well as Philips PAR/REC. We can read and write Freesurfer geometry, and read Freesurfer morphometry and
  annotation files. There is some very limited support for DICOM. NiBabel is the successor of PyNIfTI."""
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 builddependencies = [
-    ('hatchling', '1.18.0'),
+    ('hatchling', '1.24.2'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
-    ('Pillow', '10.2.0'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('Pillow', '10.4.0'),
     ('pydicom', '3.0.1'),
 ]
 
@@ -27,7 +27,7 @@ exts_list = [
         'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'],
     }),
     ('nibabel', version, {
-        'checksums': ['0bdca6503b1c784b446c745a4542367de7756cfba0d72143b91f9ffb78be569b'],
+        'checksums': ['b6c80b2e728e4bc2b65f1142d9b8d2287a9102a8bf8477e115ef0d8334559975'],
     }),
 ]
 
Diff against NiBabel-5.2.0-gfbf-2022b.eb

easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.0-gfbf-2022b.eb

diff --git a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.0-gfbf-2022b.eb b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
index b7b02722e8..a173052b66 100644
--- a/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.0-gfbf-2022b.eb
+++ b/easybuild/easyconfigs/n/NiBabel/NiBabel-5.2.1-gfbf-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonBundle'
 
 name = 'NiBabel'
-version = '5.2.0'
+version = '5.2.1'
 
 homepage = 'https://nipy.github.io/nibabel'
 description = """NiBabel provides read/write access to some common medical and neuroimaging file formats,
@@ -9,13 +9,17 @@ description = """NiBabel provides read/write access to some common medical and n
  as well as Philips PAR/REC. We can read and write Freesurfer geometry, and read Freesurfer morphometry and
  annotation files. There is some very limited support for DICOM. NiBabel is the successor of PyNIfTI."""
 
-toolchain = {'name': 'gfbf', 'version': '2022b'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+builddependencies = [
+    ('hatchling', '1.24.2'),
+]
 
 dependencies = [
-    ('Python', '3.10.8'),
-    ('SciPy-bundle', '2023.02'),
-    ('Pillow', '9.4.0'),
-    ('pydicom', '2.4.4'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('Pillow', '10.4.0'),
+    ('pydicom', '3.0.1'),
 ]
 
 exts_list = [
@@ -23,12 +27,10 @@ exts_list = [
         'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'],
     }),
     ('nibabel', version, {
-        'checksums': ['3df8f1ab981d1bd92f4331d565528d126ab9717fdbd4cfe68f43fcd1c2bf3f52'],
+        'checksums': ['b6c80b2e728e4bc2b65f1142d9b8d2287a9102a8bf8477e115ef0d8334559975'],
     }),
 ]
 
-fix_python_shebang_for = ['bin/*']
-
 sanity_check_paths = {
     'files': ['bin/nib-dicomfs', 'bin/nib-diff', 'bin/nib-ls', 'bin/nib-nifti-dx', 'bin/parrec2nii'],
     'dirs': ['lib/python%(pyshortver)s/site-packages'],

Updated software Nilearn-0.10.4-gfbf-2024a.eb

Diff against Nilearn-0.12.1-gfbf-2024a.eb

easybuild/easyconfigs/n/Nilearn/Nilearn-0.12.1-gfbf-2024a.eb

diff --git a/easybuild/easyconfigs/n/Nilearn/Nilearn-0.12.1-gfbf-2024a.eb b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.4-gfbf-2024a.eb
index d94c229d70..223dae43f1 100644
--- a/easybuild/easyconfigs/n/Nilearn/Nilearn-0.12.1-gfbf-2024a.eb
+++ b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.4-gfbf-2024a.eb
@@ -1,25 +1,28 @@
 easyblock = 'PythonBundle'
 
 name = 'Nilearn'
-version = '0.12.1'
+version = '0.10.4'
 
 homepage = 'https://nilearn.github.io/'
 description = """Nilearn is a Python module for fast and easy statistical learning on NeuroImaging data."""
 
 toolchain = {'name': 'gfbf', 'version': '2024a'}
 
+builddependencies = [
+    ('hatchling', '1.24.2'),
+]
+
 dependencies = [
     ('Python', '3.12.3'),
     ('SciPy-bundle', '2024.05'),
     ('lxml', '5.3.0'),
-    ('NiBabel', '5.3.2'),
+    ('NiBabel', '5.2.1'),
     ('scikit-learn', '1.5.2'),
 ]
 
 exts_list = [
     ('nilearn', version, {
-        'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
-        'checksums': ['2112e1cdf9f7b96e0af87d679997e834ee36534fc0a970811a703700820edc4c'],
+        'checksums': ['9450bd56a776d997b324f45dd18bf96e89bd8d80160974fcc759333fbaea35c2'],
     }),
 ]
 
Diff against Nilearn-0.10.3-gfbf-2023a.eb

easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.3-gfbf-2023a.eb

diff --git a/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.3-gfbf-2023a.eb b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.4-gfbf-2024a.eb
index 5407ba6bd1..223dae43f1 100644
--- a/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.3-gfbf-2023a.eb
+++ b/easybuild/easyconfigs/n/Nilearn/Nilearn-0.10.4-gfbf-2024a.eb
@@ -1,28 +1,28 @@
 easyblock = 'PythonBundle'
 
 name = 'Nilearn'
-version = '0.10.3'
+version = '0.10.4'
 
 homepage = 'https://nilearn.github.io/'
 description = """Nilearn is a Python module for fast and easy statistical learning on NeuroImaging data."""
 
-toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2024a'}
 
 builddependencies = [
-    ('hatchling', '1.18.0'),
+    ('hatchling', '1.24.2'),
 ]
 
 dependencies = [
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-    ('lxml', '4.9.2'),
-    ('NiBabel', '5.2.0'),
-    ('scikit-learn', '1.3.1'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('lxml', '5.3.0'),
+    ('NiBabel', '5.2.1'),
+    ('scikit-learn', '1.5.2'),
 ]
 
 exts_list = [
     ('nilearn', version, {
-        'checksums': ['77819331314c4ca5c15c07634f69f855fafdf9add051b1882e3a600ad52757d8'],
+        'checksums': ['9450bd56a776d997b324f45dd18bf96e89bd8d80160974fcc759333fbaea35c2'],
     }),
 ]
 

('pydot', '3.0.3'),
('NiBabel', '5.2.1'),
('pytest-xdist', '3.6.1'),
('poetry', '1.8.3'),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

poetry doesn't seem needed for Nipype?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

poetry is there to fulfil one of the extensions needed for Nipype. But frankly, I do not recall anymore for which extension that was needed; maybe six or something else.
Is that an accepted justification? Or you prefer that poetry be dropped and that specific extension be added explicitly to list of extensions for Nipype? The drawback of the latter is having duplicate (versions) of the same package in one toolchain under two different PythonBundles.
But, I am open to your suggestion.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@smoors : any updates on my question here? It would be nice to push this PR forwards.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i just checked and indeed poetry is needed for rdflib. there is already an easyconfig available for it: RDFlib-7.0.0-GCCcore-13.3.0.eb, i suggest to just add it as dependency and remove the rdflib and isodate extensions.

note that if poetry is required it should be a build dependency, almost never a runtime dependency.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also looking at this (although installing against 2023a) and tried using the RDFlib dependency but it doesn't satisfy the following prov constraint:

rdflib<7,>=4.2.1

(See trungdong/prov@6f7ae21)

I'm therefore including rdflib and isodate in the bundle but adding poetry to the build deps as @smoors suggests.

Copy link
Copy Markdown
Contributor Author

@moravveji moravveji Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct. I also get the same error with prov:

  >> Extension sanity check command '/software/Python/3.12.3-GCCcore-13.3.0/bin/python -c "import nipype"': OK
  >> Check on requirements for installed Python packages with 'pip check': FAIL
== ... (took 15 secs)
== FAILED: Installation ended unsuccessfully: `/software/Python/3.12.3-GCCcore-13.3.0/bin/python -m pip check` failed:
prov 2.0.1 has requirement rdflib<7,>=4.2.1, but you have rdflib 7.0.0.

@smoors : So, I am keeping the rdflib/6.3.2 and isodate/0.6.1 extensions as they were, but poetry is certainly belongs to the list of builddependencies. Please see 74febee.

@Thyre Thyre added the 2024a issues & PRs related to 2024a common toolchains label Oct 1, 2025
@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 24, 2026

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@smoors: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=22732 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22732 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9837

Test results coming soon (I hope)...

Details

- notification for comment with ID 3952008425 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 4 out of 5 (total: 20 mins 51 secs) (5 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.23
See https://gist.github.com/boegelbot/75d98ccc0a872467fa4f317217099128 for a full test report.

@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 24, 2026

@moravveji the build of fMRIPrep failed due to missing poetry, so i added it as build dep.

@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 25, 2026

looks like in the meantime other versions of NiBabel and Nilearn have been merged

AssertionError: Should not have multi-variant dependencies in easyconfigs:

found 2 variants of 'NiBabel' dependency in easyconfigs using '2024a' toolchain generation
* version: 5.2.1; versionsuffix:  as dep for {'fMRIPrep-25.0.0-foss-2024a.eb', 'Nipype-1.9.2-gfbf-2024a.eb', 'Nilearn-0.10.4-gfbf-2024a.eb'}
* version: 5.3.2; versionsuffix:  as dep for {'MNE-Python-1.10.2-foss-2024a.eb', 'pyprep-0.5.0-foss-2024a.eb', 'Nilearn-0.12.1-gfbf-2024a.eb', 'MOABB-1.2.0-foss-2024a.eb'}

found 2 variants of 'Nilearn' dependency in easyconfigs using '2024a' toolchain generation
* version: 0.10.4; versionsuffix:  as dep for {'fMRIPrep-25.0.0-foss-2024a.eb'}
* version: 0.12.1; versionsuffix:  as dep for {'MNE-Python-1.10.2-foss-2024a.eb', 'pyprep-0.5.0-foss-2024a.eb', 'MOABB-1.2.0-foss-2024a.eb'}

@github-actions github-actions Bot removed the update label Feb 27, 2026
@moravveji
Copy link
Copy Markdown
Contributor Author

looks like in the meantime other versions of NiBabel and Nilearn have been merged

This must have been fixed in e1ef2ad.

@moravveji moravveji changed the title Adding fMRIPrep/25.0.0, Nilearn/0.10.4, Nibabel/5.2.1 and Nipype/1.9.2 for 2024a [bio]{2024a} Adding fMRIPrep v25.0.0, Nipype v1.9.2 Feb 27, 2026
@moravveji
Copy link
Copy Markdown
Contributor Author

This must have been fixed in e1ef2ad.

Hmm ... apparently, there is a confusion in the CI's test step in taking the latest modifications in the fmriprep easyconfig in this PR. In ..., I am specifying ('NiBabel', '5.3.2') as the updated dependency matching the existing version of this module in upstream. However, the build logs contain an error message which still mention the old version:

raise EasyBuildError(error_msg, exit_code=EasyBuildExit.MISSING_DEPENDENCY)
easybuild.tools.build_log.EasyBuildError: Missing dependencies: NiBabel/5.2.1-gfbf-2024a (no easyconfig file or existing module found)

I wonder if for some reason, the modified fmpriprep easyconfig in this PR is not updated on the test hosts which run the CI tests.

Comment thread easybuild/easyconfigs/n/Nipype/Nipype-1.9.2-gfbf-2024a.eb Outdated
@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 28, 2026

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@smoors: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=22732 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22732 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9902

Test results coming soon (I hope)...

Details

- notification for comment with ID 3977141622 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
FAILED
Build succeeded for 1 out of 2 (total: 35 mins 13 secs) (2 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.23
See https://gist.github.com/boegelbot/a48e2ae2de7a976f54470f0b7fcca502 for a full test report.

@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 28, 2026

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@smoors: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=22732 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22732 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9904

Test results coming soon (I hope)...

Details

- notification for comment with ID 3977549049 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 2 out of 2 (total: 33 mins 11 secs) (2 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.7, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.23
See https://gist.github.com/boegelbot/185596b4001de8b8221ac53067112294 for a full test report.

@smoors smoors added this to the next release (5.2.2?) milestone Feb 28, 2026
Copy link
Copy Markdown
Contributor

@smoors smoors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@smoors
Copy link
Copy Markdown
Contributor

smoors commented Feb 28, 2026

Going in, thanks @moravveji!

@smoors smoors merged commit caef6d1 into easybuilders:develop Feb 28, 2026
6 checks passed
@boegel boegel changed the title [bio]{2024a} Adding fMRIPrep v25.0.0, Nipype v1.9.2 {bio}[foss/2024a] fMRIPrep v25.0.0, Nipype v1.9.2 Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains new

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants