Skip to content

{bio}[foss/2025b] nglview v4.0, MDTraj v1.11.0, PyTables v3.10.2, ...#24560

Merged
Micket merged 3 commits intoeasybuilders:developfrom
pavelToman:20251114113016_new_pr_nglview40
Nov 19, 2025
Merged

{bio}[foss/2025b] nglview v4.0, MDTraj v1.11.0, PyTables v3.10.2, ...#24560
Micket merged 3 commits intoeasybuilders:developfrom
pavelToman:20251114113016_new_pr_nglview40

Conversation

@pavelToman
Copy link
Collaborator

@pavelToman pavelToman commented Nov 14, 2025

(created using eb --new-pr)
resolves vscentrum/vsc-software-stack#573

…5b.eb, PyTables-3.10.2-foss-2025b.eb, MDAnalysis-2.10.0-foss-2025b.eb, Biopython-1.86-gfbf-2025b.eb, mrcfile-1.5.4-gfbf-2025b.eb
@github-actions github-actions bot added the 2025b issues & PRs related to 2025b common toolchains label Nov 14, 2025
@github-actions
Copy link

github-actions bot commented Nov 14, 2025

Updated software Biopython-1.86-gfbf-2025b.eb

Diff against Biopython-1.85-gfbf-2025a.eb

easybuild/easyconfigs/b/Biopython/Biopython-1.85-gfbf-2025a.eb

diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.85-gfbf-2025a.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.86-gfbf-2025b.eb
index 4d6b206f61..34f3125cd6 100644
--- a/easybuild/easyconfigs/b/Biopython/Biopython-1.85-gfbf-2025a.eb
+++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.86-gfbf-2025b.eb
@@ -5,7 +5,7 @@
 easyblock = 'PythonPackage'
 
 name = 'Biopython'
-version = '1.85'
+version = '1.86'
 
 homepage = 'https://www.biopython.org'
 description = """Biopython is a set of freely available tools for biological
@@ -14,15 +14,15 @@ description = """Biopython is a set of freely available tools for biological
  applications which address the needs of current and future work in
  bioinformatics. """
 
-toolchain = {'name': 'gfbf', 'version': '2025a'}
+toolchain = {'name': 'gfbf', 'version': '2025b'}
 
 source_urls = ['https://biopython.org/DIST']
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['5dafab74059de4e78f49f6b5684eddae6e7ce46f09cfa059c1d1339e8b1ea0a6']
+checksums = ['93a50b586a4d2cec68ab2f99d03ef583c5761d8fba5535cb8e81da781d0d92ff']
 
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
 ]
 
 # Run only tests that don't require internet connection
@@ -34,8 +34,7 @@ sanity_check_paths = {
              'lib/python%(pyshortver)s/site-packages/BioSQL']
 }
 
-# extra check to ensure numpy dependency is available
-sanity_check_commands = ["python -c 'import Bio.MarkovModel'"]
+sanity_check_commands = ["python -c 'import Bio.motifs'"]
 
 options = {'modulename': 'Bio'}
 
Diff against Biopython-1.84-gfbf-2024a.eb

easybuild/easyconfigs/b/Biopython/Biopython-1.84-gfbf-2024a.eb

diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.84-gfbf-2024a.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.86-gfbf-2025b.eb
index 24bcaebb25..34f3125cd6 100644
--- a/easybuild/easyconfigs/b/Biopython/Biopython-1.84-gfbf-2024a.eb
+++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.86-gfbf-2025b.eb
@@ -5,7 +5,7 @@
 easyblock = 'PythonPackage'
 
 name = 'Biopython'
-version = '1.84'
+version = '1.86'
 
 homepage = 'https://www.biopython.org'
 description = """Biopython is a set of freely available tools for biological
@@ -14,15 +14,15 @@ description = """Biopython is a set of freely available tools for biological
  applications which address the needs of current and future work in
  bioinformatics. """
 
-toolchain = {'name': 'gfbf', 'version': '2024a'}
+toolchain = {'name': 'gfbf', 'version': '2025b'}
 
 source_urls = ['https://biopython.org/DIST']
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['60fbe6f996e8a6866a42698c17e552127d99a9aab3259d6249fbaabd0e0cc7b4']
+checksums = ['93a50b586a4d2cec68ab2f99d03ef583c5761d8fba5535cb8e81da781d0d92ff']
 
 dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
 ]
 
 # Run only tests that don't require internet connection
@@ -34,8 +34,7 @@ sanity_check_paths = {
              'lib/python%(pyshortver)s/site-packages/BioSQL']
 }
 
-# extra check to ensure numpy dependency is available
-sanity_check_commands = ["python -c 'import Bio.MarkovModel'"]
+sanity_check_commands = ["python -c 'import Bio.motifs'"]
 
 options = {'modulename': 'Bio'}
 

Updated software MDAnalysis-2.10.0-foss-2025b.eb

Diff against MDAnalysis-2.9.0-foss-2025a.eb

easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2025a.eb

diff --git a/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2025a.eb b/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.10.0-foss-2025b.eb
index e8bc587283..628eb16c23 100644
--- a/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2025a.eb
+++ b/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.10.0-foss-2025b.eb
@@ -1,30 +1,29 @@
-##
-# Author:    Robert Mijakovic <robert.mijakovic@lxp.lu>
-##
 easyblock = 'PythonBundle'
 
 name = 'MDAnalysis'
-version = '2.9.0'
+version = '2.10.0'
 
 homepage = 'https://www.mdanalysis.org/'
 description = """MDAnalysis is an object-oriented Python library to analyze trajectories from molecular dynamics (MD)
 simulations in many popular formats."""
 
-toolchain = {'name': 'foss', 'version': '2025a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 
 builddependencies = [
-    ('Cython', '3.1.1'),
+    ('Cython', '3.1.2'),
 ]
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),
-    ('matplotlib', '3.10.3'),
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('matplotlib', '3.10.5'),
     ('tqdm', '4.67.1'),
     ('mrcfile', '1.5.4'),  # needed by GridDataFormats
-    ('Biopython', '1.85'),  # optional
+    ('Biopython', '1.86'),  # optional
     ('networkx', '3.5'),  # optional
     ('Seaborn', '0.13.2'),  # optional
-    ('scikit-learn', '1.7.0'),  # optional
+    ('scikit-learn', '1.7.1'),  # optional
+    ('hypothesis', '6.136.6'),  # tests
 ]
 
 exts_list = [
@@ -54,16 +53,21 @@ exts_list = [
         'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
         'checksums': ['6b7a9be247cd99331e8840c9012d0ed7a86874fe110983bbaed00eb39459e7a8'],
     }),
+    ('mdanalysistests', version, {
+        'modulename': 'MDAnalysisTests',
+        'checksums': ['286b8678e19195093a19b57b26d76b8274415d33ac23fc872355639fcb49beef'],
+    }),
     ('mdanalysis', version, {
         'modulename': 'MDAnalysis',
-        'patches': ['MDAnalysis-2.9.0_fix-numpy-array.patch'],
         'use_pip_extras': 'analysis',
-        'checksums': [
-            {'mdanalysis-2.9.0.tar.gz': 'fe7a4ac33e7a5c1001d954667d7e630aeb26cab6f8917fdbac6ffad903999497'},
-            {'MDAnalysis-2.9.0_fix-numpy-array.patch':
-             'bb6393cf9ebda8a8e1f0607a743fb7e20d754107c34fcf95c59354e7e8982de4'},
-        ],
+        'checksums': ['5cef1f1eba4b25cbf9dd4045f08eeab293bb9577b970aa96132f14491312d877'],
     }),
 ]
 
+sanity_check_commands = [
+    "export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 && "
+    "pytest --disable-pytest-warnings --numprocesses %(parallel)s "
+    "--pyargs MDAnalysisTests -p no:warnings --dist=loadscope"
+]
+
 moduleclass = 'bio'
Diff against MDAnalysis-2.9.0-foss-2024a.eb

easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2024a.eb

diff --git a/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2024a.eb b/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.10.0-foss-2025b.eb
index 686b85e742..628eb16c23 100644
--- a/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.9.0-foss-2024a.eb
+++ b/easybuild/easyconfigs/m/MDAnalysis/MDAnalysis-2.10.0-foss-2025b.eb
@@ -1,30 +1,29 @@
-##
-# Author:    Robert Mijakovic <robert.mijakovic@lxp.lu>
-##
 easyblock = 'PythonBundle'
 
 name = 'MDAnalysis'
-version = '2.9.0'
+version = '2.10.0'
 
 homepage = 'https://www.mdanalysis.org/'
 description = """MDAnalysis is an object-oriented Python library to analyze trajectories from molecular dynamics (MD)
 simulations in many popular formats."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 
 builddependencies = [
-    ('Cython', '3.0.10'),
+    ('Cython', '3.1.2'),
 ]
 dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),
-    ('matplotlib', '3.9.2'),
-    ('tqdm', '4.66.5'),
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('matplotlib', '3.10.5'),
+    ('tqdm', '4.67.1'),
     ('mrcfile', '1.5.4'),  # needed by GridDataFormats
-    ('Biopython', '1.84'),  # optional
-    ('networkx', '3.4.2'),  # optional
+    ('Biopython', '1.86'),  # optional
+    ('networkx', '3.5'),  # optional
     ('Seaborn', '0.13.2'),  # optional
-    ('scikit-learn', '1.5.2'),  # optional
+    ('scikit-learn', '1.7.1'),  # optional
+    ('hypothesis', '6.136.6'),  # tests
 ]
 
 exts_list = [
@@ -54,11 +53,21 @@ exts_list = [
         'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
         'checksums': ['6b7a9be247cd99331e8840c9012d0ed7a86874fe110983bbaed00eb39459e7a8'],
     }),
+    ('mdanalysistests', version, {
+        'modulename': 'MDAnalysisTests',
+        'checksums': ['286b8678e19195093a19b57b26d76b8274415d33ac23fc872355639fcb49beef'],
+    }),
     ('mdanalysis', version, {
         'modulename': 'MDAnalysis',
         'use_pip_extras': 'analysis',
-        'checksums': ['fe7a4ac33e7a5c1001d954667d7e630aeb26cab6f8917fdbac6ffad903999497'],
+        'checksums': ['5cef1f1eba4b25cbf9dd4045f08eeab293bb9577b970aa96132f14491312d877'],
     }),
 ]
 
+sanity_check_commands = [
+    "export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 && "
+    "pytest --disable-pytest-warnings --numprocesses %(parallel)s "
+    "--pyargs MDAnalysisTests -p no:warnings --dist=loadscope"
+]
+
 moduleclass = 'bio'

Updated software MDTraj-1.11.0-foss-2025b.eb

Diff against MDTraj-1.11.0-foss-2025a.eb

easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025a.eb

diff --git a/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025a.eb b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025b.eb
index 3ce18156f7..9fd989c780 100644
--- a/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025a.eb
+++ b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025b.eb
@@ -1,5 +1,3 @@
-# Updated: Pavel Tomanek (INUITS)
-
 easyblock = 'PythonBundle'
 
 name = 'MDTraj'
@@ -8,33 +6,39 @@ version = '1.11.0'
 homepage = 'https://mdtraj.org'
 description = "Read, write and analyze MD trajectories with only a few lines of Python code."
 
-toolchain = {'name': 'foss', 'version': '2025a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'openmp': True}
 
-builddependencies = [
-    ('Cython', '3.1.1'),
-]
+builddependencies = [('Cython', '3.1.2')]
+
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),
-    ('netcdf4-python', '1.7.2'),
     ('zlib', '1.3.1'),
-    ('networkx', '3.5'),  # optional
-    ('PyTables', '3.10.2'),  # optional
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('netcdf4-python', '1.7.2'),  # optional+tests
+    ('networkx', '3.5'),  # optional+tests
+    ('PyTables', '3.10.2'),  # optional+tests
 ]
 
 exts_list = [
-    ('pyparsing', '3.2.3', {
-        'checksums': ['b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be'],
+    ('pyparsing', '3.2.5', {
+        'checksums': ['2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6'],
+    }),
+    ('gsd', '4.2.0', {
+        'checksums': ['eb197abd735e98817bcdc1ee34e4968231d572da48c097b3ccf316be828cf86a'],
+    }),
+    ('pytest_rerunfailures', '16.1', {
+        'checksums': ['c38b266db8a808953ebd71ac25c381cb1981a78ff9340a14bcb9f1b9bff1899e'],
     }),
     ('mdtraj', version, {
+        'runtest': "cd tests && pytest -v --numprocesses %(parallel)s",
+        'source_urls': ['https://github.com/mdtraj/mdtraj/archive/'],
+        'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s-github.tar.gz'}],
+        'testinstall': True,
         'use_pip_extras': 'optional',
-        'checksums': ['2cf0ed2ee9a603dc4599743b1806e1387c655e2a1e9d013841b99fb137ad852e'],
+        'checksums': ['fefca787f882d0716a7aeb01b4d8e30caddbd2be0b2893acfa7201c31d13c786'],
     }),
 ]
 
-# The unit tests of MDTraj are a pain to get to work: they require
-# a massive number of extra dependencies. See
-# https://github.com/mdtraj/mdtraj/blob/master/devtools/conda-recipe/meta.yaml
-
 moduleclass = 'chem'
Diff against MDTraj-1.10.3-foss-2023b.eb

easybuild/easyconfigs/m/MDTraj/MDTraj-1.10.3-foss-2023b.eb

diff --git a/easybuild/easyconfigs/m/MDTraj/MDTraj-1.10.3-foss-2023b.eb b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025b.eb
index a9d4d79928..9fd989c780 100644
--- a/easybuild/easyconfigs/m/MDTraj/MDTraj-1.10.3-foss-2023b.eb
+++ b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.11.0-foss-2025b.eb
@@ -1,40 +1,44 @@
-# Updated: Pavel Grochal (INUITS)
-
 easyblock = 'PythonBundle'
 
 name = 'MDTraj'
-version = '1.10.3'
+version = '1.11.0'
 
 homepage = 'https://mdtraj.org'
 description = "Read, write and analyze MD trajectories with only a few lines of Python code."
 
-toolchain = {'name': 'foss', 'version': '2023b'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'openmp': True}
 
-builddependencies = [
-    ('Cython', '3.0.10'),
-]
+builddependencies = [('Cython', '3.1.2')]
+
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
-    ('netcdf4-python', '1.7.1.post2'),
-    ('zlib', '1.2.13'),
-    ('networkx', '3.2.1'),  # optional
-    ('PyTables', '3.9.2'),  # optional
+    ('zlib', '1.3.1'),
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('netcdf4-python', '1.7.2'),  # optional+tests
+    ('networkx', '3.5'),  # optional+tests
+    ('PyTables', '3.10.2'),  # optional+tests
 ]
 
 exts_list = [
-    ('pyparsing', '3.2.3', {
-        'checksums': ['b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be'],
+    ('pyparsing', '3.2.5', {
+        'checksums': ['2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6'],
+    }),
+    ('gsd', '4.2.0', {
+        'checksums': ['eb197abd735e98817bcdc1ee34e4968231d572da48c097b3ccf316be828cf86a'],
+    }),
+    ('pytest_rerunfailures', '16.1', {
+        'checksums': ['c38b266db8a808953ebd71ac25c381cb1981a78ff9340a14bcb9f1b9bff1899e'],
     }),
     ('mdtraj', version, {
+        'runtest': "cd tests && pytest -v --numprocesses %(parallel)s",
+        'source_urls': ['https://github.com/mdtraj/mdtraj/archive/'],
+        'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s-github.tar.gz'}],
+        'testinstall': True,
         'use_pip_extras': 'optional',
-        'checksums': ['d14a35009263725b784c436a8ac63fb6ceeb2bb366a526715dac6590d21025e5'],
+        'checksums': ['fefca787f882d0716a7aeb01b4d8e30caddbd2be0b2893acfa7201c31d13c786'],
     }),
 ]
 
-# The unit tests of MDTraj are a pain to get to work: they require
-# a massive number of extra dependencies. See
-# https://github.com/mdtraj/mdtraj/blob/master/devtools/conda-recipe/meta.yaml
-
 moduleclass = 'chem'

Updated software mrcfile-1.5.4-gfbf-2025b.eb

Diff against mrcfile-1.5.4-gfbf-2025a.eb

easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025a.eb

diff --git a/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025a.eb b/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025b.eb
index 5f0ab7c1f9..d64f9fb557 100644
--- a/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025a.eb
+++ b/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025b.eb
@@ -18,16 +18,19 @@ any compiled libraries except numpy. You can use it interactively to inspect
 files, correct headers and so on, or in scripts and larger software packages to
 provide basic MRC file I/O functions. """
 
-toolchain = {'name': 'gfbf', 'version': '2025a'}
+toolchain = {'name': 'gfbf', 'version': '2025b'}
 
 sources = [SOURCELOWER_TAR_GZ]
 checksums = ['8fa9eb2e237d87d99b301c61bf02854dd85a451db25eefcbe142c09b36d8d601']
 
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
 ]
 
+testinstall = True
+runtest = 'pytest -vvvs tests'
+
 sanity_check_paths = {
     'files': [],
     'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s']
Diff against mrcfile-1.5.0-gfbf-2023b.eb

easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.0-gfbf-2023b.eb

diff --git a/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.0-gfbf-2023b.eb b/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025b.eb
index 3ba6b58dfb..d64f9fb557 100644
--- a/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/m/mrcfile/mrcfile-1.5.4-gfbf-2025b.eb
@@ -1,8 +1,8 @@
-# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2022/11
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2025/03
 easyblock = 'PythonPackage'
 
 name = 'mrcfile'
-version = '1.5.0'
+version = '1.5.4'
 
 homepage = 'https://github.com/ccpem/mrcfile'
 description = """mrcfile is a Python implementation of the MRC2014 file format, which is used in
@@ -18,16 +18,19 @@ any compiled libraries except numpy. You can use it interactively to inspect
 files, correct headers and so on, or in scripts and larger software packages to
 provide basic MRC file I/O functions. """
 
-toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchain = {'name': 'gfbf', 'version': '2025b'}
 
 sources = [SOURCELOWER_TAR_GZ]
-checksums = ['9e8196b8a33aa5b5237b43336cb9d08b6058b8127ea668d63b84d58bca795ec1']
+checksums = ['8fa9eb2e237d87d99b301c61bf02854dd85a451db25eefcbe142c09b36d8d601']
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
+    ('Python', '3.13.5'),
+    ('SciPy-bundle', '2025.07'),
 ]
 
+testinstall = True
+runtest = 'pytest -vvvs tests'
+
 sanity_check_paths = {
     'files': [],
     'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s']

Updated software nglview-4.0-foss-2025b.eb

Diff against nglview-3.1.4-foss-2025a.eb

easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2025a.eb

diff --git a/easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2025a.eb b/easybuild/easyconfigs/n/nglview/nglview-4.0-foss-2025b.eb
index 0f38da5bd0..4361354eee 100644
--- a/easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2025a.eb
+++ b/easybuild/easyconfigs/n/nglview/nglview-4.0-foss-2025b.eb
@@ -1,31 +1,45 @@
 easyblock = 'PythonBundle'
 
 name = 'nglview'
-version = '3.1.4'
+version = '4.0'
 
 homepage = 'https://github.com/arose/nglview'
 description = "IPython widget to interactively view molecular structures and trajectories."
 
-toolchain = {'name': 'foss', 'version': '2025a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 
 builddependencies = [
-    ('nodejs', '22.16.0'),
+    ('nodejs', '22.17.1'),
 ]
 
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),
-    ('JupyterLab', '4.4.4'),
-    ('JupyterNotebook', '7.4.4'),
-    ('ASE', '3.25.0'),  # optional
-    ('MDAnalysis', '2.9.0'),  # optional
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('JupyterLab', '4.4.9'),
+    ('JupyterNotebook', '7.4.7'),
+    ('ASE', '3.26.0'),  # optional
+    ('MDAnalysis', '2.10.0'),  # optional
     ('MDTraj', '1.11.0'),  # optional
 ]
 
+local_pytest_cmd = (
+    "pytest -v "
+    "--deselect tests/test_show.py::test_show_schrodinger "
+    "--deselect tests/test_widget.py::test_existing_js_files "
+    "--deselect tests/test_movie_maker.py::test_movie_maker "
+    "tests"
+)
+
 exts_list = [
     (name, version, {
         'use_pip_extras': 'ase,MDAnalysis,mdtraj',
-        'checksums': ['e12b725c92add01174a933899db84bd63beba266d8fa9c3d2926ea453fa0829d'],
+        # unpin numpy - pinned due to ParmEd
+        # https://github.com/ParmEd/ParmEd/issues/1406
+        'preinstallopts': "sed -i 's/numpy<2.3/numpy/' setup.py && ",
+        'testinstall': True,
+        'runtest': local_pytest_cmd,
+        'checksums': ['2c0cff2c5b1e2a0a72e3393087ce44ae0308524c5aa5f95357812d3edbc26e83'],
     }),
 ]
 
Diff against nglview-3.1.4-foss-2023b.eb

easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2023b.eb

diff --git a/easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2023b.eb b/easybuild/easyconfigs/n/nglview/nglview-4.0-foss-2025b.eb
index 215172b7ba..4361354eee 100644
--- a/easybuild/easyconfigs/n/nglview/nglview-3.1.4-foss-2023b.eb
+++ b/easybuild/easyconfigs/n/nglview/nglview-4.0-foss-2025b.eb
@@ -1,31 +1,45 @@
 easyblock = 'PythonBundle'
 
 name = 'nglview'
-version = '3.1.4'
+version = '4.0'
 
 homepage = 'https://github.com/arose/nglview'
 description = "IPython widget to interactively view molecular structures and trajectories."
 
-toolchain = {'name': 'foss', 'version': '2023b'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 
 builddependencies = [
-    ('nodejs', '20.9.0'),
+    ('nodejs', '22.17.1'),
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('SciPy-bundle', '2023.11'),
-    ('JupyterLab', '4.2.0'),
-    ('JupyterNotebook', '7.2.0'),
-    ('ASE', '3.23.0'),  # optional
-    ('MDAnalysis', '2.7.0'),  # optional
-    ('MDTraj', '1.10.3'),  # optional
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('JupyterLab', '4.4.9'),
+    ('JupyterNotebook', '7.4.7'),
+    ('ASE', '3.26.0'),  # optional
+    ('MDAnalysis', '2.10.0'),  # optional
+    ('MDTraj', '1.11.0'),  # optional
 ]
 
+local_pytest_cmd = (
+    "pytest -v "
+    "--deselect tests/test_show.py::test_show_schrodinger "
+    "--deselect tests/test_widget.py::test_existing_js_files "
+    "--deselect tests/test_movie_maker.py::test_movie_maker "
+    "tests"
+)
+
 exts_list = [
     (name, version, {
         'use_pip_extras': 'ase,MDAnalysis,mdtraj',
-        'checksums': ['e12b725c92add01174a933899db84bd63beba266d8fa9c3d2926ea453fa0829d'],
+        # unpin numpy - pinned due to ParmEd
+        # https://github.com/ParmEd/ParmEd/issues/1406
+        'preinstallopts': "sed -i 's/numpy<2.3/numpy/' setup.py && ",
+        'testinstall': True,
+        'runtest': local_pytest_cmd,
+        'checksums': ['2c0cff2c5b1e2a0a72e3393087ce44ae0308524c5aa5f95357812d3edbc26e83'],
     }),
 ]
 

Updated software PyTables-3.10.2-foss-2025b.eb

Diff against PyTables-3.10.2-foss-2025a.eb

easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025a.eb

diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025a.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025b.eb
index a24aa9be57..eeb365a7fc 100644
--- a/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025a.eb
+++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025b.eb
@@ -12,19 +12,20 @@ description = """PyTables is a package for managing hierarchical datasets and de
  disk resources so that data takes much less space (specially if on-flight compression is used) than other solutions
  such as relational or object oriented databases."""
 
-toolchain = {'name': 'foss', 'version': '2025a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'usempi': True}
 
 builddependencies = [
-    ('pkgconf', '2.3.0'),
-    ('CMake', '3.31.3'),
-    ('Cython', '3.1.1'),
-    ('scikit-build-core', '0.11.1'),
+    ('pkgconf', '2.4.3'),
+    ('CMake', '4.0.3'),
+    ('Cython', '3.1.2'),
+    ('scikit-build-core', '0.11.5'),
 ]
 
 dependencies = [
-    ('Python', '3.13.1'),
-    ('SciPy-bundle', '2025.06'),  # provides numexpr
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
     ('HDF5', '1.14.6'),
     ('LZO', '2.10'),
     ('Blosc', '1.21.6'),
@@ -36,15 +37,19 @@ exts_list = [
     ('ndindex', '1.10.0', {
         'checksums': ['20e3a2f0a8ed4646abf0f13296aab0b5b9cc8c5bc182b71b5945e76eb6f558bb'],
     }),
-    ('blosc2', '3.5.1', {
+    ('blosc2', '3.6.1', {
         'preinstallopts': "USE_SYSTEM_BLOSC2=ON ",
-        'checksums': ['5d72f7a9a8b3b523c588be9d66e9e7f2463483716c4c01e5056c1f7e37167f85'],
+        'runtest': "pytest -v",
+        'testinstall': True,
+        'checksums': ['0b6f05311fbee9e9dc23bd7f53a8690af3b60eef640a059f1eb624ca6699cc59'],
     }),
     ('tables', version, {
         'patches': [
             'PyTables-3.8.0_fix-libs.patch',
             'PyTables-3.9.2_fix-find-blosc2-dep.patch',
         ],
+        'runtest': "cd .. && python -m tables.tests.test_all",
+        'testinstall': True,
         'checksums': [
             {'tables-3.10.2.tar.gz': '2544812a7186fadba831d6dd34eb49ccd788d6a83f4e4c2b431b835b6796c910'},
             {'PyTables-3.8.0_fix-libs.patch': '7a1e6fa1f9169e52293e2b433a4302fa13c5d31e7709cd4fe0e087199b9e3f8a'},
Diff against PyTables-3.10.2-foss-2024a.eb

easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2024a.eb

diff --git a/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2024a.eb b/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025b.eb
index 25a142e0b1..eeb365a7fc 100644
--- a/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2024a.eb
+++ b/easybuild/easyconfigs/p/PyTables/PyTables-3.10.2-foss-2025b.eb
@@ -1,6 +1,3 @@
-# http://www.pytables.org/usersguide/installation.html
-# updated: Denis Kristak (INUITS)
-
 easyblock = 'PythonBundle'
 
 name = 'PyTables'
@@ -15,39 +12,44 @@ description = """PyTables is a package for managing hierarchical datasets and de
  disk resources so that data takes much less space (specially if on-flight compression is used) than other solutions
  such as relational or object oriented databases."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025b'}
 toolchainopts = {'usempi': True}
 
 builddependencies = [
-    ('pkgconf', '2.2.0'),
-    ('CMake', '3.29.3'),
-    ('Cython', '3.0.10'),
-    ('scikit-build-core', '0.10.6'),
+    ('pkgconf', '2.4.3'),
+    ('CMake', '4.0.3'),
+    ('Cython', '3.1.2'),
+    ('scikit-build-core', '0.11.5'),
 ]
 
 dependencies = [
-    ('Python', '3.12.3'),
-    ('SciPy-bundle', '2024.05'),  # provides numexpr
-    ('HDF5', '1.14.5'),
+    ('Python', '3.13.5'),
+    ('Python-bundle-PyPI', '2025.07'),
+    ('SciPy-bundle', '2025.07'),
+    ('HDF5', '1.14.6'),
     ('LZO', '2.10'),
     ('Blosc', '1.21.6'),
-    ('Blosc2', '2.17.0'),
+    ('Blosc2', '2.19.0'),
     ('py-cpuinfo', '9.0.0'),
 ]
 
 exts_list = [
-    ('ndindex', '1.9.2', {
-        'checksums': ['b8658a06e52d6c47445c2ec11d292e1d52c3af259214c8b52e3a1aab733daa72'],
+    ('ndindex', '1.10.0', {
+        'checksums': ['20e3a2f0a8ed4646abf0f13296aab0b5b9cc8c5bc182b71b5945e76eb6f558bb'],
     }),
-    ('blosc2', '3.2.0', {
-        'preinstallopts': """USE_SYSTEM_BLOSC2=ON """,
-        'checksums': ['db38f2265cd7938cbdc7b029420d2d5b65fcb8f91ce00bb6d6bdac63194d62cc'],
+    ('blosc2', '3.6.1', {
+        'preinstallopts': "USE_SYSTEM_BLOSC2=ON ",
+        'runtest': "pytest -v",
+        'testinstall': True,
+        'checksums': ['0b6f05311fbee9e9dc23bd7f53a8690af3b60eef640a059f1eb624ca6699cc59'],
     }),
     ('tables', version, {
         'patches': [
             'PyTables-3.8.0_fix-libs.patch',
             'PyTables-3.9.2_fix-find-blosc2-dep.patch',
         ],
+        'runtest': "cd .. && python -m tables.tests.test_all",
+        'testinstall': True,
         'checksums': [
             {'tables-3.10.2.tar.gz': '2544812a7186fadba831d6dd34eb49ccd788d6a83f4e4c2b431b835b6796c910'},
             {'PyTables-3.8.0_fix-libs.patch': '7a1e6fa1f9169e52293e2b433a4302fa13c5d31e7709cd4fe0e087199b9e3f8a'},

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

Maybe worth noting: mdtraj goes a bit insane during tests. I saw a short-time load of >23 on an 8 core / 16 thread machine. I don't know if we're able to limit that though.

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

Failure in PyZMQ, maybe due to ZeroMQ


Test report by @Thyre
FAILED
Build succeeded for 9 out of 14 (total: 21 mins 51 secs) (6 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor (zen4), 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: Linuxversion6.17.7-arch1-1(linux@archlinux)(gcc(GCC)15.2.120250813,GNUld(GNUBinutils)2.45.0)#1SMPPREEMPT_DYNAMICSun,02Nov202517:27:22+0000), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: Linuxversion6.17.7-arch1-1(linux@archlinux)(gcc(GCC)15.2.120250813,GNUld(GNUBinutils)2.45.0)#1SMPPREEMPT_DYNAMICSun,02Nov202517:27:22+0000), Python 3.13.7
See https://gist.github.com/Thyre/ff75601c8a1e4f9d2124b166b665b5a4 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 8 out of 8 (total: 26 mins 1 secs) (6 easyconfigs in total)
ZAM054 - Linux Zorin OS 18, x86_64, 12th Gen Intel(R) Core(TM) i7-1260P (skylake), 1 x NVIDIA NVIDIA GeForce MX550, 580.95.05, Python 3.12.3
See https://gist.github.com/Thyre/5de10d0c1c21f578180c1f37d2c15237 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 8 out of 8 (total: 49 mins 17 secs) (6 easyconfigs in total)
Framework - Linux Fedora Linux 43, x86_64, AMD Ryzen AI 7 350 w/ Radeon 860M (zen5), 1 x AMD Krackan [Radeon 840M / 860M Graphics] (device id: 0x1114, gfx: gfx1152, driver: Linuxversion6.17.7-300.fc43.x86_64(mockbuild@d49b948bbfce45ee82827ac76e852536)(gcc(GCC)15.2.120251022(RedHat15.2.1-3),GNUldversion2.45-1.fc43)#1SMPPREEMPT_DYNAMICSunNov215:30:09UTC2025), Python 3.14.0
See https://gist.github.com/Thyre/56305bebf09beefb89db3c09454b1df9 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

Test report by @Thyre
SUCCESS
Build succeeded for 17 out of 17 (total: 54 mins 58 secs) (6 easyconfigs in total)
jrc0901.jureca - Linux Rocky Linux 9.6, AArch64, ARM UNKNOWN (neoverse_v2), 1 x NVIDIA NVIDIA GH200 480GB, 580.95.05, Python 3.9.21
See https://gist.github.com/Thyre/1b2f9a6ed00bb484c9fdbc04927b39e8 for a full test report.

@Thyre
Copy link
Collaborator

Thyre commented Nov 14, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@Thyre: 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=24560 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24560 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3532490621 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
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 6 out of 6 (total: 42 mins 14 secs) (6 easyconfigs in total)
jsczen3c3.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/44587394213764e1106cd0f1780a35be for a full test report.

@pavelToman
Copy link
Collaborator Author

Maybe worth noting: mdtraj goes a bit insane during tests. I saw a short-time load of >23 on an 8 core / 16 thread machine. I don't know if we're able to limit that though.

It seems MDTraj use either xdist for testing so I add the -n flag to the test command, could help here: f0d04c7

@pavelToman
Copy link
Collaborator Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Collaborator

@pavelToman: 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=24560 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24560 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

- notification for comment with ID 3533206893 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
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 6 out of 6 (total: 41 mins 34 secs) (6 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/0325db728ae46872ae4149fd5fe81f26 for a full test report.

@pavelToman
Copy link
Collaborator Author

Test report by @pavelToman
SUCCESS
Build succeeded for 6 out of 6 (total: 55 mins 41 secs) (6 easyconfigs in total)
node4201.shinx.os - Linux RHEL 9.6, x86_64, AMD EPYC 9654 96-Core Processor, Python 3.9.21
See https://gist.github.com/pavelToman/d63acf2e109422fe2823351e9efb201c for a full test report.

@pavelToman
Copy link
Collaborator Author

Test report by @pavelToman
SUCCESS
Build succeeded for 6 out of 6 (total: 58 mins 29 secs) (6 easyconfigs in total)
node4003.donphan.os - Linux RHEL 9.6, x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz, 1 x NVIDIA NVIDIA A2, 580.95.05, Python 3.9.21
See https://gist.github.com/pavelToman/e394c0511f3a4db12c2cdb16f61d337c for a full test report.

@pavelToman
Copy link
Collaborator Author

Test report by @pavelToman
SUCCESS
Build succeeded for 29 out of 29 (total: 2 hours 12 mins 52 secs) (6 easyconfigs in total)
node4307.litleo.os - Linux RHEL 9.6, x86_64, AMD EPYC 9454P 48-Core Processor, Python 3.9.21
See https://gist.github.com/pavelToman/15ba06a6138c68ae478f1b401f31883f for a full test report.

@Micket Micket added this to the next release (5.2.0?) milestone Nov 18, 2025
Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

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

lgtm

@Micket
Copy link
Contributor

Micket commented Nov 18, 2025

Test report by @Micket
SUCCESS
Build succeeded for 7 out of 7 (6 easyconfigs in total)
vera-icelake-build - Linux Rocky Linux 9.6, x86_64, Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz, Python 3.9.21
See https://gist.github.com/Micket/2e6f62e0f6daaa600013a7cdd068c7c6 for a full test report.

@Micket Micket merged commit 920768b into easybuilders:develop Nov 19, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025b issues & PRs related to 2025b common toolchains ready-to-review update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pyiron + nglview

4 participants