Skip to content

{bio}[foss/2025a] ImmuneBuilder v1.2#26028

Open
baverhey wants to merge 3 commits into
easybuilders:developfrom
baverhey:20260519093717_new_pr_ImmuneBuilder12
Open

{bio}[foss/2025a] ImmuneBuilder v1.2#26028
baverhey wants to merge 3 commits into
easybuilders:developfrom
baverhey:20260519093717_new_pr_ImmuneBuilder12

Conversation

@baverhey

@baverhey baverhey commented May 19, 2026

Copy link
Copy Markdown

(created using eb --new-pr)

ImmuneBuilder provides deep-learning models for predicting immune receptor protein structures, including:

ABodyBuilder2
NanoBodyBuilder2
TCRBuilder2

Context & Dependencies

Dependencies

This easyconfig depends on functionality introduced in the following PRs:

ANARCI Patch (Required)
ANARCI-79f6c57-muscle5-compat.patch

Why this patch is required
Upstream ANARCI is not compatible with:

MUSCLE v5 (expects v3 CLI)
modern pip/PEP517 install workflows
Python 3.11+/3.13 packaging

eb --from-pr=25509,25657,26025, 26026,26027
--robot
--robot-paths=$HOME:/apps/easybuild-easyconfigs/easybuild/easyconfigs
ImmuneBuilder-1.2-foss-2025a.eb

##AI
Visual studio Code on auto(10% discount), so could be (Copilot, GPTx 4.1 to 5.5, Grok code Fast1, Gemini 2.5 or Claude ) no model specified. especially for the .patch

@github-actions github-actions Bot added 2025a issues & PRs related to 2025a common toolchains new labels May 19, 2026
@pavelToman

pavelToman commented May 19, 2026

Copy link
Copy Markdown
Collaborator

Hello @baverhey,
thank you for your PR.
There are still some mistakes:

  1. there is ('MUSCLE', '5.1.0', '', ('GCCcore', '14.2.0')), - could be just ('MUSCLE', '5.1.0'), since it is the same toolchain (foss/2025a is based on GCCcore-14.2.0)
  2. there is no need for use_pip = True since EB v5
  3. I can see you add uv-build as an extension, but I can not find why it is there. Also if you need uv-build, there should be crates and easyblock = 'CargoPythonBundle' or the best solution is to create separate easyconfig for uv-build and put it into the builddeps.
  4. you have ('PyTorch', '2.9.1', '-CUDA-12.8.0'), as a dependency - So there should be also the CUDA in the deps and your easyconfig should has -CUDA-12.8.0 versionsuffix.

@github-actions

github-actions Bot commented May 21, 2026

Copy link
Copy Markdown

Updated software expecttest-0.3.0-GCCcore-14.2.0.eb

Diff against expecttest-0.3.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/e/expecttest/expecttest-0.3.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/e/expecttest/expecttest-0.3.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/e/expecttest/expecttest-0.3.0-GCCcore-14.2.0.eb
index 1a63824d5c..02491ce558 100644
--- a/easybuild/easyconfigs/e/expecttest/expecttest-0.3.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/e/expecttest/expecttest-0.3.0-GCCcore-14.2.0.eb
@@ -9,17 +9,17 @@ description = """This library implements expect tests (also known as "golden" te
  the test framework automatically populates the expected output. If the output of the test changes, you can rerun
  the test with the environment variable EXPECTTEST_ACCEPT=1 to automatically update the expected output."""
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 sources = [SOURCE_TAR_GZ]
 checksums = ['6e8512fb86523ada1f94fd1b14e280f924e379064bb8a29ee399950e513eeccd']
 
 builddependencies = [
-    ('binutils', '2.44'),
-    ('poetry', '2.1.3'),
+    ('binutils', '2.42'),
+    ('poetry', '2.1.2'),
 ]
 dependencies = [
-    ('Python', '3.13.5'),
+    ('Python', '3.13.1'),
 ]
 
 moduleclass = 'tools'

Updated software MUSCLE-5.1.0-GCCcore-14.2.0.eb

Diff against MUSCLE-5.1.0-GCCcore-13.3.0.eb

easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-14.2.0.eb
index 754d193b11..08d667c1af 100644
--- a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-14.2.0.eb
@@ -10,7 +10,7 @@ description = """MUSCLE is one of the best-performing multiple alignment program
  learn everything they need to know about MUSCLE in a few minutes-only a handful of
  command-line options are needed to perform common alignment tasks."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 github_account = 'rcedgar'
 source_urls = [GITHUB_LOWER_SOURCE]
@@ -41,3 +41,4 @@ sanity_check_paths = {
 sanity_check_commands = ["muscle -h"]
 
 moduleclass = 'bio'
+

Updated software MUSCLE-5.3-GCCcore-14.2.0.eb

Diff against MUSCLE-5.1.0-GCCcore-13.3.0.eb

easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.3-GCCcore-14.2.0.eb
index 754d193b11..69a4f3817b 100644
--- a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.3-GCCcore-14.2.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'MakeCp'
 
 name = 'MUSCLE'
-version = '5.1.0'
+version = '5.3'
 
 homepage = 'https://drive5.com/muscle/'
 description = """MUSCLE is one of the best-performing multiple alignment programs
@@ -10,28 +10,36 @@ description = """MUSCLE is one of the best-performing multiple alignment program
  learn everything they need to know about MUSCLE in a few minutes-only a handful of
  command-line options are needed to perform common alignment tasks."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 github_account = 'rcedgar'
 source_urls = [GITHUB_LOWER_SOURCE]
-sources = ['%(version)s.tar.gz']
-patches = ['MUSCLE-5.1.0-add_Aarch64_support.patch']
+# GitHub release tag is v5.3, while version is kept as 5.3 for module naming consistency.
+sources = [
+    {'download_filename': 'v%(version)s.tar.gz', 'filename': '%(version)s.tar.gz'},
+    {
+        'filename': 'vcxproj_make.py',
+        'download_filename': 'vcxproj_make.py',
+        'source_urls': ['https://raw.githubusercontent.com/rcedgar/vcxproj_make/806d016'],
+        'extract_cmd': 'cp %s %(builddir)s/muscle-%(version)s/src/',
+    },
+]
 checksums = [
-    {'5.1.0.tar.gz': '2bba8b06e3ccabf6465fa26f459763b2029d7e7b9596881063e3aaba60d9e87d'},
-    {'MUSCLE-5.1.0-add_Aarch64_support.patch': 'aa4c95d8c9dc7205d1d7257f38fce841d49379f87aa88d17df2a1e6ae7ebc9ef'},
+    {'5.3.tar.gz': '74b22a94e630b16015c2bd9ae83aa2be2c2048d3e41f560b2d4a954725c81968'},
+    {'vcxproj_make.py': '902735703004c47705ffa389329378f237fecb154945b489edf6abe260c6694f'},
 ]
 
 builddependencies = [
     ('binutils', '2.42'),
 ]
 
-start_dir = 'src'
+# MUSCLE 5.3 uses vcxproj_make.py to generate Makefile/build rules.
+# Vendor the script as a source to avoid runtime network access.
+start_dir = '.'
+build_cmd = 'cd src && python3 vcxproj_make.py --openmp && sed -i "s/ -static//g" Makefile && make'
 
-# Use build environment defined by EasyBuild
-prebuildopts = "sed -i 's/$(CPPOPTS)/$(CPPOPTS) $(CXXFLAGS) $(CPPFLAGS)/g' Makefile &&"
-buildopts = "CPP=${CXX} CC=${CC}"
 
-files_to_copy = [(['Linux/muscle'], 'bin')]
+files_to_copy = [(['bin/muscle'], 'bin')]
 
 sanity_check_paths = {
     'files': ['bin/muscle'],
@@ -41,3 +49,4 @@ sanity_check_paths = {
 sanity_check_commands = ["muscle -h"]
 
 moduleclass = 'bio'
+

Updated software optree-0.18.0-GCCcore-14.2.0.eb

Diff against optree-0.17.0-GCCcore-14.2.0.eb

easybuild/easyconfigs/o/optree/optree-0.17.0-GCCcore-14.2.0.eb

diff --git a/easybuild/easyconfigs/o/optree/optree-0.17.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/o/optree/optree-0.18.0-GCCcore-14.2.0.eb
index 64c218456f..23085bd3a8 100644
--- a/easybuild/easyconfigs/o/optree/optree-0.17.0-GCCcore-14.2.0.eb
+++ b/easybuild/easyconfigs/o/optree/optree-0.18.0-GCCcore-14.2.0.eb
@@ -1,7 +1,7 @@
 easyblock = 'PythonPackage'
 
 name = 'optree'
-version = '0.17.0'
+version = '0.18.0'
 
 homepage = 'https://optree.readthedocs.io/en/latest/'
 description = "Optimized PyTree Utilities"
@@ -9,7 +9,7 @@ description = "Optimized PyTree Utilities"
 toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 sources = [SOURCE_TAR_GZ]
-checksums = ['5335a5ec44479920620d72324c66563bd705ab2a698605dd4b6ee67dbcad7ecd']
+checksums = ['3804fb6ddc923855db2dc4805b4524c66e00f1ef30b166be4aadd52822b13e06']
 
 builddependencies = [
     ('binutils', '2.42'),
@@ -19,7 +19,6 @@ dependencies = [
     ('Python', '3.13.1'),
 ]
 
-
-preinstallopts = """sed -i 's/^license = "Apache-2.0"/license = {text = "Apache-2.0"}/' pyproject.toml &&"""
+preinstallopts = "sed -i '/^license/d' pyproject.toml && "
 
 moduleclass = 'lib'

Updated software PyTorch-2.9.1-foss-2025a-CUDA-12.8.0.eb

Diff against PyTorch-2.9.1-foss-2024a.eb

easybuild/easyconfigs/p/PyTorch/PyTorch-2.9.1-foss-2024a.eb

diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.9.1-foss-2024a.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.9.1-foss-2025a-CUDA-12.8.0.eb
index 83383bd798..e23f7088e5 100644
--- a/easybuild/easyconfigs/p/PyTorch/PyTorch-2.9.1-foss-2024a.eb
+++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-2.9.1-foss-2025a-CUDA-12.8.0.eb
@@ -1,11 +1,12 @@
 name = 'PyTorch'
 version = '2.9.1'
+versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://pytorch.org/'
 description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration.
 PyTorch is a deep learning framework that puts Python first."""
 
-toolchain = {'name': 'foss', 'version': '2024a'}
+toolchain = {'name': 'foss', 'version': '2025a'}
 
 local_six_version = '1.11.0'
 # This is specific to a (tagged) release.
@@ -25,7 +26,7 @@ sources = [
         # Avoid downloading this during the build, see third_party/NNPACK/cmake/DownloadSix.cmake for the version
         'filename': f'six-{local_six_version}.tar.gz',
         'source_urls': ['https://pypi.python.org/packages/source/s/six'],
-    }
+    },
 ]
 patches = [
     'PyTorch-1.12.1_add-hypothesis-suppression.patch',
@@ -56,37 +57,32 @@ patches = [
     'PyTorch-2.9.0_revert-pybind11-3-change.patch',
     'PyTorch-2.9.0_skip-test_benchmark_on_non_zero_device.patch',
     'PyTorch-2.9.0_skip-test_convolution1-on-H100.patch',
+    'PyTorch-2.9.1_skip-test_dtensor_op_db_nn_functional_multi_head_attention_forward_cpu_float32.patch',
     'PyTorch-2.9.0_skip-test_inductor_all_gather_into_tensor_coalesced.patch',
     'PyTorch-2.9.0_skip-test_original_aten_preserved_pad_mm.patch',
     'PyTorch-2.9.0_skip-test_override-without-CUDA.patch',
-    'PyTorch-2.9.0_skip-tests-requiring-CUDA-12.8.patch',
     'PyTorch-2.9.0_skip-test_unbacked_reduction.patch',
+    'PyTorch-2.9.0_skip-tests-requiring-CUDA-12.8.patch',
     'PyTorch-2.9.0_skip-unexpected-success-in-test_fake_export.patch',
-    'PyTorch-2.9.0_update-exptected-output-for-z3-4.13.0.patch',
     'PyTorch-2.9.1_avoid-multiprocess-tests-hanging-forever.patch',
-    'PyTorch-2.9.1_avoid-using-wrong-libomp.patch',
     'PyTorch-2.9.1_check-device-avail-test_schedule.patch',
     'PyTorch-2.9.1_disable-slow-tests.patch',
-    'PyTorch-2.9.1_dont-print-test-items.patch',
     'PyTorch-2.9.1_fix-hypothesis-deadline.patch',
     'PyTorch-2.9.1_fix-iteration-in-fligh-reporter.patch',
-    'PyTorch-2.9.1_fix-test_dist2-decorators.patch',
     'PyTorch-2.9.1_fix-TestExportOpInfoCPU-with-single-GPU.patch',
+    'PyTorch-2.9.1_fix-test_dist2-decorators.patch',
+    'PyTorch-2.9.1_fix-test_recursion_in_except_handler.patch',
     'PyTorch-2.9.1_GCC14-ARM-workaround.patch',
     'PyTorch-2.9.1_ignore-warning-incompatible-pointer-types.patch',
     'PyTorch-2.9.1_normalize_tree_output.patch',
     'PyTorch-2.9.1_set-test-timeout.patch',
-    'PyTorch-2.9.1_skip-cutlass-addmm-test.patch',
-    'PyTorch-2.9.1_skip-flex-attention-test_block_mask_non_divisible.patch',
+    'PyTorch-2.9.1_skip-bool-bessel-tests.patch',
     'PyTorch-2.9.1_skip-flex-attention-tests-on-unsupported-cpus.patch',
-    'PyTorch-2.9.1_skip-RingFlexAttentionTest.patch',
-    'PyTorch-2.9.1_skip-test_dtensor_op_db_nn_functional_multi_head_attention_forward_cpu_float32.patch',
+    'PyTorch-2.9.1_skip-flex-attention-test_block_mask_non_divisible.patch',
+    'PyTorch-2.9.1_skip-test_checkpoint_save_failure_continues_serving.patch',
+    'PyTorch-2.9.1_skip-test_norm_matrix_degenerate_shapes.patch',
     'PyTorch-2.9.1_skip-tests-requiring-SM90.patch',
-    'PyTorch-2.9.1_increase-tolerance-TestDecomp-matmul.patch',
-    'PyTorch-2.9.1_skip-cpu_repro-tests-failing-on-ARM.patch',
-    'PyTorch-2.9.1_skip-svd-pca-lowrank-tests-on-cpu.patch',
-    'PyTorch-2.9.1_skip-test_optree_graph_break_message.patch',
-    'PyTorch-2.9.1_skip-tests-requiring-MKLDNN.patch',
+    'PyTorch-2.9.1_skip-RingFlexAttentionTest.patch',
 ]
 checksums = [
     {'pytorch-v2.9.1.tar.gz': 'e17504700ebc4c87f9b57059df1c4d790b769458c04db144c7a92aea90f2c92b'},
@@ -138,99 +134,100 @@ checksums = [
      '85e236431d1a5da3fb7fccc2554640898c29f5fab46a41d15b3ab61dd1f924fc'},
     {'PyTorch-2.9.0_skip-test_convolution1-on-H100.patch':
      '704750c7cc08b58779907d608cd4b7505043e394fb27530b16d72a0dc27c277e'},
+    {'PyTorch-2.9.1_skip-test_dtensor_op_db_nn_functional_multi_head_attention_forward_cpu_float32.patch':
+     'e57486cc42f3dbcae29753168febc251d070a283229e2d76ccbdf19fee53f06e'},
     {'PyTorch-2.9.0_skip-test_inductor_all_gather_into_tensor_coalesced.patch':
      '644153d4c1d8267c0631df2902a6dfe8ec2a197f3374f2a2f5654e6bd0edc05e'},
     {'PyTorch-2.9.0_skip-test_original_aten_preserved_pad_mm.patch':
      'ac9e05d296cd5ff938a44662cd022efcc8133c744ca82b045c6a15bc64f67cf4'},
     {'PyTorch-2.9.0_skip-test_override-without-CUDA.patch':
      '967512d1487bf1ad06982cc5b976c0b38ba062c3f3473cb4542c4b9ac0740662'},
-    {'PyTorch-2.9.0_skip-tests-requiring-CUDA-12.8.patch':
-     '6d79aff5291627b86d8fea025bf2379e4065c7d9cbef5cf83452c35922848728'},
     {'PyTorch-2.9.0_skip-test_unbacked_reduction.patch':
      'b51dd5d7c9cfeed946cbc5c7fc22f2e78e1fa52dda55569b957c20ca4ed01fe8'},
+    {'PyTorch-2.9.0_skip-tests-requiring-CUDA-12.8.patch':
+     '6d79aff5291627b86d8fea025bf2379e4065c7d9cbef5cf83452c35922848728'},
     {'PyTorch-2.9.0_skip-unexpected-success-in-test_fake_export.patch':
      '2e73f71ea0f09e613cc4a108893e7948b6daf239e3fe42fd2d3ae5d43c3cf9de'},
-    {'PyTorch-2.9.0_update-exptected-output-for-z3-4.13.0.patch':
-     '5c68e0de73212ed266879f4528a6041ef7ab2f1ac83c6cf7142c4baa78e7664c'},
     {'PyTorch-2.9.1_avoid-multiprocess-tests-hanging-forever.patch':
      '86ce380e69b3b20e010d817889cb1b825b05b4054a045b00f2ac12161b77d7e4'},
-    {'PyTorch-2.9.1_avoid-using-wrong-libomp.patch':
-     '2fc2bb82cce87ba0ce73718b0502735ecdf360ca6bfac4482396f7f1c51c1866'},
     {'PyTorch-2.9.1_check-device-avail-test_schedule.patch':
      '64c28d38ce69147565509add36d310473ce46f14a0a876d38b5049cb7fce9817'},
-    {'PyTorch-2.9.1_disable-slow-tests.patch': '6b365a3531b0ac5446b5f0e8ab924b5e5742cd0331e6d9ec979118a3ef0ffc09'},
-    {'PyTorch-2.9.1_dont-print-test-items.patch': '2b524cf3d557c0672feefc3a7165e5555e549b0720647a84d546f769cea0be07'},
-    {'PyTorch-2.9.1_fix-hypothesis-deadline.patch': 'f7a130669eee9924a303df9e2bd5743ff023a7d994b7a3e43c86dcccf0206c49'},
+    {'PyTorch-2.9.1_disable-slow-tests.patch': '76e6d8f7366b91a0ddc65f73685f2b09988bb5537d10d294f9bb6a48c7fec3d0'},
+    {'PyTorch-2.9.1_fix-hypothesis-deadline.patch':
+     'f7a130669eee9924a303df9e2bd5743ff023a7d994b7a3e43c86dcccf0206c49'},
     {'PyTorch-2.9.1_fix-iteration-in-fligh-reporter.patch':
      'ab408275ec66e836112a50054acc4e789ef38196efeb6137c6061d60d9ac9ead'},
-    {'PyTorch-2.9.1_fix-test_dist2-decorators.patch':
-     'bf4ed805f00775ed33351de7bce40ebf4eac16aff6c61d2e91790982bc43d73b'},
     {'PyTorch-2.9.1_fix-TestExportOpInfoCPU-with-single-GPU.patch':
      'bdddf5a9ba47d57ec96f4bbefc3b85c4904e44de93dc5c7a65bc03e343035ae9'},
+    {'PyTorch-2.9.1_fix-test_dist2-decorators.patch':
+     'bf4ed805f00775ed33351de7bce40ebf4eac16aff6c61d2e91790982bc43d73b'},
+    {'PyTorch-2.9.1_fix-test_recursion_in_except_handler.patch':
+     'e7a64dbdc202151c5bff6aac86d77b0f6e7c52dc3117e3bfe9b57ec1371f87ad'},
     {'PyTorch-2.9.1_GCC14-ARM-workaround.patch': 'ea8a8662e20fae2fb3a74c7f8bf390aba80a598ab37f9131c720d25ebb14965d'},
     {'PyTorch-2.9.1_ignore-warning-incompatible-pointer-types.patch':
      'c4dad43a5d76e292bb0cada56ea05e8cbd522e3e83749cf3b2c15cd1e4ff6d7b'},
     {'PyTorch-2.9.1_normalize_tree_output.patch': '7d5994580339b73c28de595d9e5a0448db97b7d284f17efd18909e4613d170df'},
     {'PyTorch-2.9.1_set-test-timeout.patch': '15fa1149c250b1333b0bc491f659aaf89d5d6eaf6df5ebc81eea545478c1239c'},
-    {'PyTorch-2.9.1_skip-cutlass-addmm-test.patch':
-     '1f81a8a9eea8eda51fc93dff84cd994772febf4fd05d77efbf21b8440dadfd4e'},
-    {'PyTorch-2.9.1_skip-flex-attention-test_block_mask_non_divisible.patch':
-     'd8489c192da549083569e09e5f94d2a83c9e41e111b1322f86512a9c5a58c0d9'},
+    {'PyTorch-2.9.1_skip-bool-bessel-tests.patch': '9c07cddaf4c1b17fe9a54874f10b8edbfb85785c40ac1e3aea11c7f4b5abca69'},
     {'PyTorch-2.9.1_skip-flex-attention-tests-on-unsupported-cpus.patch':
      'e544f765beac7bdb3fc0ada98a3f92fd7e511ed8874de085aa2f213cca769d40'},
-    {'PyTorch-2.9.1_skip-RingFlexAttentionTest.patch':
-     '3cf0b11136fb18c45072687eafd3024d91b504d231a4fa40e04bc62d8d6019c7'},
-    {'PyTorch-2.9.1_skip-test_dtensor_op_db_nn_functional_multi_head_attention_forward_cpu_float32.patch':
-     'e57486cc42f3dbcae29753168febc251d070a283229e2d76ccbdf19fee53f06e'},
+    {'PyTorch-2.9.1_skip-flex-attention-test_block_mask_non_divisible.patch':
+     'd8489c192da549083569e09e5f94d2a83c9e41e111b1322f86512a9c5a58c0d9'},
+    {'PyTorch-2.9.1_skip-test_checkpoint_save_failure_continues_serving.patch':
+     'fa22d7ed5bf20afa4798c8af3ec732b1a3f530ecc4be5c223b3796e839b0b812'},
+    {'PyTorch-2.9.1_skip-test_norm_matrix_degenerate_shapes.patch':
+     'd6082e62696a38dbfbc87c228f7ccb54dba4cfc615ce158f1f3bf77e6e30ff4f'},
     {'PyTorch-2.9.1_skip-tests-requiring-SM90.patch':
      '7db02152db2ae70c0fd4c4602fe381e26a74b8e4f7b16b1a3554b2353d761b10'},
-    {'PyTorch-2.9.1_increase-tolerance-TestDecomp-matmul.patch':
-     'dd82203ce3b6262255aba6b59fb3b547c4c17875d5711f6d3d489aa8f0f59f32'},
-    {'PyTorch-2.9.1_skip-cpu_repro-tests-failing-on-ARM.patch':
-     '99055fde02ca17c1db1cd72f41821387a50901d6cd947161cafa12257b3a1c5a'},
-    {'PyTorch-2.9.1_skip-svd-pca-lowrank-tests-on-cpu.patch':
-     '4fc772293047dc737b99e232b8a8db904aa8e88e3c8b2bcc3602fb723941fb89'},
-    {'PyTorch-2.9.1_skip-test_optree_graph_break_message.patch':
-     '2ef1ad424d5f12a4d0ae06938da623819596cee7c0fb4616008f27583c29494d'},
-    {'PyTorch-2.9.1_skip-tests-requiring-MKLDNN.patch':
-     '03756a8069bad01018f422f41aa24c7c543519fd857db88a0c6de661976c8859'},
+    {'PyTorch-2.9.1_skip-RingFlexAttentionTest.patch':
+     '3cf0b11136fb18c45072687eafd3024d91b504d231a4fa40e04bc62d8d6019c7'},
 ]
 
 osdependencies = [OS_PKG_IBVERBS_DEV]
 
 builddependencies = [
-    ('CMake', '3.29.3'),
-    ('hypothesis', '6.103.1'),
-    ('setuptools', '80.9.0'),
+    ('CMake', '3.31.3'),
+    ('hypothesis', '6.133.2'),
     # For tests
     ('parameterized', '0.9.0'),
     ('pytest-flakefinder', '1.1.0'),
-    ('pytest-rerunfailures', '15.0'),
-    ('pytest-subtests', '0.13.1'),
-    ('tlparse', '0.4.0'),
-    ('optree', '0.14.1'),
+    ('pytest-rerunfailures', '16.1'),
+    ('pytest-shard', '0.1.2'),
+    ('pytest-subtests', '0.15.0'),
+    ('tlparse', '0.4.3'),
+    ('optree', '0.18.0'),
     ('unittest-xml-reporting', '3.1.0'),
 ]
 
 dependencies = [
-    ('Ninja', '1.12.1'),  # Required for JIT compilation of C++ extensions
-    ('Python', '3.12.3'),
-    ('Python-bundle-PyPI', '2024.06'),
-    ('expecttest', '0.2.1'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    # PyTorch is very sensitive to the NCCL & cuDNN versions. (Maybe the same for cuSPARSELt)
+    # Prefer those (listed per CUDA version) in
+    # https://github.com/pytorch/pytorch/blob/main/.github/scripts/generate_binary_build_matrix.py
+    # or https://github.com/pytorch/pytorch/blob/main/.ci/docker/common/install_cuda.sh
+    ('NCCL', '2.27.7', '-CUDA-%(cudaver)s'),
+    ('cuDNN', '9.10.1.4', '-CUDA-%(cudaver)s', SYSTEM),
+    ('magma', '2.9.0', '-CUDA-%(cudaver)s'),
+    ('cuSPARSELt', '0.8.0.4', '-CUDA-%(cudaver)s', SYSTEM),
+    ('NVSHMEM', '3.3.20', '-CUDA-%(cudaver)s'),
+    ('Triton', '3.5.0', versionsuffix),
+    ('Ninja', '1.12.1'),
+    ('Python', '3.13.1'),
+    ('expecttest', '0.3.0'),
     ('GMP', '6.3.0'),
-    ('MPFR', '4.2.1'),
-    ('networkx', '3.4.2'),
-    ('numactl', '2.0.18'),
-    ('Pillow', '10.4.0'),
-    ('protobuf-python', '5.28.0'),
-    ('protobuf', '28.0'),
-    ('pybind11', '2.12.0'),
-    ('PuLP', '2.8.0'),
+    ('MPFR', '4.2.2'),
+    ('networkx', '3.5'),
+    ('numactl', '2.0.19'),
+    ('Pillow', '11.3.0'),
+    ('protobuf-python', '6.31.1'),
+    ('protobuf', '31.1'),
+    ('pybind11', '2.13.6'),
+    ('PuLP', '3.3.0'),
     ('PyYAML', '6.0.2'),
-    ('pyzstd', '0.16.2'),
-    ('SciPy-bundle', '2024.05'),
-    ('sympy', '1.13.3'),
-    ('Z3', '4.13.0',),
+    ('pyzstd', '0.19.0'),
+    ('SciPy-bundle', '2025.06'),
+    ('sympy', '1.14.0'),
+    ('Z3', '4.13.4'),
 ]
 
 prebuildopts = (f"""sed -i '1i set(PYTHON_SIX_SOURCE_DIR "%(builddir)s/six-{local_six_version}")' """
@@ -263,15 +260,11 @@ excluded_tests = {
         'dynamo/test_utils',
         # Packaging test only, not important for us
         'test_license',
-        # No triton
-        'distributed/test_nvshmem_triton',
-        # Occasional segfaults on CPU
-        'inductor/test_flex_attention',
-        'inductor/test_flex_decoding ',
     ]
 }
 
 runtest = (
+    # Disable symbol resolution in stack traces that can cause hangs and slowdowns
     ' TORCH_DISABLE_ADDR2LINE=1'
     ' TORCHINDUCTOR_CUTLASS_DIR=%(start_dir)s/third_party/cutlass'
     ' PYTEST_ADDOPTS=--full-trace'

Updated software parameterized-0.9.0-GCCcore-14.2.0.eb

Diff against parameterized-0.9.0-GCCcore-14.3.0.eb

easybuild/easyconfigs/p/parameterized/parameterized-0.9.0-GCCcore-14.3.0.eb

diff --git a/easybuild/easyconfigs/p/parameterized/parameterized-0.9.0-GCCcore-14.3.0.eb b/easybuild/easyconfigs/p/parameterized/parameterized-0.9.0-GCCcore-14.2.0.eb
index c9f5dbfe09..af4c7f41cb 100644
--- a/easybuild/easyconfigs/p/parameterized/parameterized-0.9.0-GCCcore-14.3.0.eb
+++ b/easybuild/easyconfigs/p/parameterized/parameterized-0.9.0-GCCcore-14.2.0.eb
@@ -6,13 +6,13 @@ version = '0.9.0'
 homepage = 'https://github.com/wolever/parameterized'
 description = " Parameterized testing with any Python test framework "
 
-toolchain = {'name': 'GCCcore', 'version': '14.3.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 sources = [SOURCE_TAR_GZ]
 checksums = ['7fc905272cefa4f364c1a3429cbbe9c0f98b793988efb5bf90aac80f08db09b1']
 
-builddependencies = [('binutils', '2.44')]
+builddependencies = [('binutils', '2.42')]
 
-dependencies = [('Python', '3.13.5')]
+dependencies = [('Python', '3.13.1')]
 
 moduleclass = 'tools'

Updated software pybind11-3.0.0-GCC-14.2.0.eb

Diff against pybind11-3.0.0-llvm-compilers-20.1.8.eb

easybuild/easyconfigs/p/pybind11/pybind11-3.0.0-llvm-compilers-20.1.8.eb

diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-3.0.0-llvm-compilers-20.1.8.eb b/easybuild/easyconfigs/p/pybind11/pybind11-3.0.0-GCC-14.2.0.eb
index 2a6fc49847..28cf484f00 100644
--- a/easybuild/easyconfigs/p/pybind11/pybind11-3.0.0-llvm-compilers-20.1.8.eb
+++ b/easybuild/easyconfigs/p/pybind11/pybind11-3.0.0-GCC-14.2.0.eb
@@ -5,32 +5,31 @@ homepage = 'https://pybind11.readthedocs.io'
 description = """pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa,
  mainly to create Python bindings of existing C++ code."""
 
-toolchain = {'name': 'llvm-compilers', 'version': '20.1.8'}
+toolchain = {'name': 'GCC', 'version': '14.2.0'}
 
 source_urls = ['https://github.com/pybind/pybind11/archive/']
 sources = ['v%(version)s.tar.gz']
 patches = [
     'pybind11-2.10.3_require-catch.patch',
-    'pybind11-3.0.0_fix-nvcc-build-failure.patch',
 ]
 checksums = [
     {'v3.0.0.tar.gz': '453b1a3e2b266c3ae9da872411cadb6d693ac18063bd73226d96cfb7015a200c'},
     {'pybind11-2.10.3_require-catch.patch': '4a27ba3ef1d5c535d120d6178a6e876ae678e4899a07500aab37908357b0b60b'},
-    {'pybind11-3.0.0_fix-nvcc-build-failure.patch': 'dc466f09c98a1d7a1fe69675c1205c68469b602c73503d4829c986d285da5278'},
 ]
 
 builddependencies = [
-    ('CMake', '4.0.3'),
+    ('CMake', '3.31.3'),
     # Test dependencies
     ('Eigen', '3.4.0'),
     ('Catch2', '2.13.10'),
-    ('Python-bundle-PyPI', '2025.07'),  # to provide pytest
+    ('Python-bundle-PyPI', '2025.04'),  # to provide pytest
     ('scikit-build-core', '0.11.5'),
 ]
 
 dependencies = [
     ('Boost', '1.88.0'),
-    ('Python', '3.13.5'),
+    ('Python', '3.13.1'),
 ]
 
 moduleclass = 'lib'
+

Updated software pyzstd-0.19.0-GCCcore-14.2.0.eb

Diff against pyzstd-0.16.2-GCCcore-13.3.0.eb

easybuild/easyconfigs/p/pyzstd/pyzstd-0.16.2-GCCcore-13.3.0.eb

diff --git a/easybuild/easyconfigs/p/pyzstd/pyzstd-0.16.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/pyzstd/pyzstd-0.19.0-GCCcore-14.2.0.eb
index bee4110b7b..3a58153778 100644
--- a/easybuild/easyconfigs/p/pyzstd/pyzstd-0.16.2-GCCcore-13.3.0.eb
+++ b/easybuild/easyconfigs/p/pyzstd/pyzstd-0.19.0-GCCcore-14.2.0.eb
@@ -1,7 +1,7 @@
-easyblock = 'PythonPackage'
+easyblock = 'PythonBundle'
 
 name = 'pyzstd'
-version = '0.16.2'
+version = '0.19.0'
 
 homepage = 'https://github.com/Rogdham/pyzstd'
 description = """Pyzstd module provides classes and functions for compressing and decompressing data,
@@ -9,21 +9,31 @@ using Facebook's Zstandard (or zstd as short name) algorithm.
 
 The API style is similar to Python's bz2/lzma/zlib modules."""
 
-toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
-
-sources = [SOURCE_TAR_GZ]
-checksums = ['179c1a2ea1565abf09c5f2fd72f9ce7c54b2764cf7369e05c0bfd8f1f67f63d2']
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 builddependencies = [
     ('binutils', '2.42'),
+    ('hatchling', '1.27.0'),
 ]
-
 dependencies = [
-    ('Python', '3.12.3'),
+    ('Python', '3.13.1'),
     ('zstd', '1.5.6'),
 ]
 
-# Use preinstalled zstd library
-buildopts = installopts = '--config-settings="--build-option=--dynamic-link-zstd"'
+exts_list = [
+    ('backports.zstd', '1.2.0', {
+        'sources': {
+            'download_filename': 'backports_zstd-%(version)s.tar.gz',
+            'filename': SOURCE_TAR_GZ,
+        },
+        'checksums': ['6c3fc19342db750b52fde793e4440a93575761b1493bb4a1d3b26033d2bd3452'],
+        'preinstallopts': "sed -i '/^license/d' pyproject.toml && ",
+    }),
+    (name, version, {
+        # Use preinstalled zstd library
+        'installopts': '--config-settings="--build-option=--dynamic-link-zstd"',
+        'checksums': ['44e7b9be7b445aac742003ddee52ca31385d52dffb8c60adf633fad8e795f10d'],
+    })
+]
 
 moduleclass = 'tools'

Updated software SciPy-bundle-2025.04-foss-2025a.eb

Diff against SciPy-bundle-2023.11-iimkl-2023b.eb

easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.11-iimkl-2023b.eb

diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.11-iimkl-2023b.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2025.04-foss-2025a.eb
index 2a4b77fcaa..a8c0241295 100644
--- a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.11-iimkl-2023b.eb
+++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2025.04-foss-2025a.eb
@@ -1,121 +1,85 @@
 easyblock = 'PythonBundle'
 
 name = 'SciPy-bundle'
-# using 2023.11 as version to keep it aligned with gfbf/2023b version
-version = '2023.11'
+version = '2025.04'
 
 homepage = 'https://python.org/'
 description = "Bundle of Python packages for scientific software"
 
-toolchain = {'name': 'iimkl', 'version': '2023b'}
-toolchainopts = {
-    'pic': True, 'lowopt': True, 'strict': True,
-    'oneapi': True, 'optarch': False,  # prevents -xHost
-}
+toolchain = {'name': 'foss', 'version': '2025a'}
+toolchainopts = {'pic': True, 'lowopt': True}
 
 builddependencies = [
-    ('hypothesis', '6.90.0'),
+    ('hypothesis', '6.133.2'),
     ('UnZip', '6.0'),
     # scipy >= 1.9.0 uses Meson/Ninja
-    ('Meson', '1.2.3'),
-    ('meson-python', '0.15.0'),
-    ('Ninja', '1.11.1'),
-    ('pkgconf', '2.0.3'),   # required by scipy
+    ('Meson', '1.6.1'),
+    ('meson-python', '0.18.0'),
+    ('Ninja', '1.12.1'),
+    ('pkgconf', '2.3.0'),  # required by scipy
+    ('Cython', '3.1.1'),  # required by numpy and scipy
+    ('pybind11', '2.13.6'),  # required by scipy
+    ('spin', '0.14'),  # required for testing numpy
 ]
 
 dependencies = [
-    ('Python', '3.11.5'),
-    ('Python-bundle-PyPI', '2023.10'),
-    ('pybind11', '2.11.1'),  # required by scipy
+    ('Python', '3.13.1'),
+    ('Python-bundle-PyPI', '2025.04'),
 ]
 
-
 # order is important!
 exts_list = [
-    ('numpy', '1.26.2', {
-        'easyblock': 'PythonPackage',  # pip install builds numpy v1.26.x via spin/meson/ninja
+    ('numpy', '2.3.1', {
         'patches': [
-            'numpy-1.25.1_disable_fortran_callback_test.patch',
-            'numpy-1.25.1_disable-broken-test_long_long_map.patch',
-            'numpy-1.26.2_fix_selected_kind_for_ifort.patch',
-            'numpy-1.25.1_disable-broken-fortran-docstring-test.patch',
-            'numpy-1.25.1_fix-test_features.patch',
+            'numpy-1.22.3_disable-broken-override-test.patch',
+            # Adds proper processing of object files for f2py
+            # Fixed in 2.4.0, see https://github.com/numpy/numpy/pull/29572
+            'numpy-2.3.1_fix_f2py_object_files.patch',
         ],
         'checksums': [
-            {'numpy-1.26.2.tar.gz': 'f65738447676ab5777f11e6bbbdb8ce11b785e105f690bc45966574816b6d3ea'},
-            {'numpy-1.25.1_disable_fortran_callback_test.patch':
-             '3c02bd9973b7082fde9f9d18edfeb05798226ccb5731a56f5677269200c345cf'},
-            {'numpy-1.25.1_disable-broken-test_long_long_map.patch':
-             'fa0fb0a16c4f1339a974c1c84b79df21dc9bfdc14e3e68f6aebaf5e30bad3fe9'},
-            {'numpy-1.26.2_fix_selected_kind_for_ifort.patch':
-             '3622bacbe4063373cc0b1c0aa0ffe3d30dfe132f6a763b15b45cc6387cbd51d7'},
-            {'numpy-1.25.1_disable-broken-fortran-docstring-test.patch':
-             '8a4d36e3b3a9c9bf43df6e5214f3883234a069b80c5c1027a7c84bd5cb133457'},
-            {'numpy-1.25.1_fix-test_features.patch':
-             '1c05ee5d105fe2f824416dd6dd5c64ed0c1cd710a002b4e6dbfafff19203adc5'},
+            {'numpy-2.3.1.tar.gz': '1ec9ae20a4226da374362cca3c62cd753faf2f951440b0e3b98e93c235441d2b'},
+            {'numpy-1.22.3_disable-broken-override-test.patch':
+             '9c589bb073b28b25ff45eb3c63c57966aa508dd8b318d0b885b6295271e4983c'},
+            {'numpy-2.3.1_fix_f2py_object_files.patch':
+             'b586083c384becc9ef7908af171c9034473514f8c8741d15b8bda23da503718f'},
         ],
     }),
     ('ply', '3.11', {
         'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'],
     }),
-    ('gast', '0.5.4', {
-        'checksums': ['9c270fe5f4b130969b54174de7db4e764b09b4f7f67ccfc32480e29f78348d97'],
+    ('gast', '0.6.0', {
+        'checksums': ['88fc5300d32c7ac6ca7b515310862f71e6fdf2c029bbec7c66c0f5dd47b6b1fb'],
     }),
-    ('beniget', '0.4.1', {
-        'checksums': ['75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c'],
+    ('beniget', '0.4.2.post1', {
+        'checksums': ['a0258537e65e7e14ec33a86802f865a667f949bb6c73646d55e42f7c45a052ae'],
     }),
-    ('pythran', '0.14.0', {
-        'checksums': ['42f3473946205964844eff7f750e2541afb2006d53475d708f5ff2d048db89bd'],
+    ('pythran', '0.18.0', {
+        'checksums': ['5c003e8cbedf6dbb68c2869c49fc110ce8b5e8982993078a4a819f1dadc4fc6a'],
     }),
     ('versioneer', '0.29', {
         'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'],
     }),
-    ('scipy', '1.12.0', {
+    ('scipy', '1.16.0', {
         'enable_slow_tests': True,
         'ignore_test_result': False,
         'patches': [
             'scipy-1.11.1_disable-tests.patch',
-            'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch',
-            'scipy-1.11.4_disable-test_branch_cut.patch',  # intel might need -assume=minus0
-            'scipy-1.12.0_disable-tests-iimkl.patch',
+            'scipy-1.16.0_skip-tests-broken-grace.patch',
+            'scipy-1.16.0_relax-tests-broken-neoverse-v1.patch',
+            'scipy-1.16.0_remove-float16-differentiate-test.patch',
         ],
         'checksums': [
-            {'scipy-1.12.0.tar.gz': '4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3'},
+            {'scipy-1.16.0.tar.gz': 'b5ef54021e832869c8cfb03bc3bf20366cbcd426e02a58e8a58d7584dfbb8f62'},
             {'scipy-1.11.1_disable-tests.patch': '906bfb03397d94882ccdc1b93bc2c8e854e0e060c2d107c83042992394e6a4af'},
-            {'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch':
-             '918c8e6fa8215d459126f267764c961bde729ea4a116c7f6287cddfdc58ffcea'},
-            {'scipy-1.11.4_disable-test_branch_cut.patch':
-             '3433d284e4074ee8a5b10bfc65c729214bc75670c36d8b7a983bb5ccddc5cf61'},
-            {'scipy-1.12.0_disable-tests-iimkl.patch':
-             'edf575be62b77bb8984e87e75f69a0799d719fc8b5c801c79e4f9592e1c8203f'},
+            {'scipy-1.16.0_skip-tests-broken-grace.patch':
+             '33885518a572f843a0edeb7a58aa938202aae70267f6de1ce60acef97f393126'},
+            {'scipy-1.16.0_relax-tests-broken-neoverse-v1.patch':
+             'a72d794b95dc437c03b323f86392b264c7ecfdbfa19e3bc01fba8d5d3ab2f21a'},
+            {'scipy-1.16.0_remove-float16-differentiate-test.patch':
+             'f857fc1e941c196285f2e871e803cf463fc59c040dd2955deda1dd277d4b00db'},
         ],
-        'runtest': ' && '.join((
-            'unset LDFLAGS',
-            'cd ..',  # avoid running the test suite from the build dir which will cause import related failures
-            "python -c 'import sys; import numpy; sys.exit(not numpy.test(verbose=2))'",
-        )),
-        'testinstall': True,
-    }),
-    ('numexpr', '2.8.7', {
-        'checksums': ['596eeb3bbfebc912f4b6eaaf842b61ba722cebdb8bc42dfefa657d3a74953849'],
-    }),
-    ('Bottleneck', '1.3.7', {
-        'checksums': ['e1467e373ad469da340ed0ff283214d6531cc08bfdca2083361a3aa6470681f8'],
-    }),
-    ('tzdata', '2023.3', {
-        'checksums': ['11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a'],
-    }),
-    ('pandas', '2.1.3', {
-        'preinstallopts': "export PANDAS_CI=0 && ",
-        'checksums': ['22929f84bca106921917eb73c1521317ddd0a4c71b395bcf767a106e3494209f'],
-    }),
-    ('mpmath', '1.3.0', {
-        'checksums': ['7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f'],
-    }),
-    ('deap', '1.4.1', {
-        'modulename': 'deap.base',
-        'checksums': ['cc01de9892dfa7d1bc9803dab28892fead177f0182c81db47360a240ead778ff'],
     }),
 ]
 
 moduleclass = 'lang'
+

Updated software scikit-build-core-0.11.5-GCCcore-14.2.0.eb

Diff against scikit-build-core-0.12.2-GCCcore-15.2.0.eb

easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.12.2-GCCcore-15.2.0.eb

diff --git a/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.12.2-GCCcore-15.2.0.eb b/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.11.5-GCCcore-14.2.0.eb
index 1f9970c1ad..f8b2821e80 100644
--- a/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.12.2-GCCcore-15.2.0.eb
+++ b/easybuild/easyconfigs/s/scikit-build-core/scikit-build-core-0.11.5-GCCcore-14.2.0.eb
@@ -1,30 +1,35 @@
 easyblock = 'PythonBundle'
 
 name = 'scikit-build-core'
-version = '0.12.2'
+version = '0.11.5'
 
 homepage = 'https://scikit-build.readthedocs.io/en/latest/'
-description = """Scikit-build-core is a complete ground-up rewrite of scikit-build on top of
-modern packaging APIs. It provides a bridge between CMake and the Python build
-system, allowing you to make Python modules with CMake."""
+description = """Scikit-build-core is a complete ground-up rewrite of scikit-build on top of modern packaging APIs.
+It provides a bridge between CMake and the Python build system, allowing you to make Python modules with CMake."""
 
-toolchain = {'name': 'GCCcore', 'version': '15.2.0'}
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
 
 builddependencies = [
-    ('binutils', '2.45'),
-    ('hatchling', '1.29.0'),
+    ('binutils', '2.42'),
+    ('hatchling', '1.27.0'),
 ]
+
 dependencies = [
-    ('Python', '3.14.2'),
-    ('CMake', '4.2.1'),
+    ('Python', '3.13.1'),
+    ('CMake', '3.31.3'),
 ]
 
 exts_list = [
-    ('pathspec', '1.0.4', {
-        'checksums': ['0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645'],
+    ('pyproject-metadata', '0.9.1', {
+        'sources': ['pyproject_metadata-%(version)s.tar.gz'],
+        'checksums': ['b8b2253dd1b7062b78cf949a115f02ba7fa4114aabe63fa10528e9e1a954a816'],
+    }),
+    ('pathspec', '0.12.1', {
+        'checksums': ['a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712'],
     }),
     ('scikit_build_core', version, {
-        'checksums': ['562e0bbc9de1a354c87825ccf732080268d6582a0200f648e8c4a2dcb1e3736d'],
+        'sources': ['scikit_build_core-%(version)s.tar.gz'],
+        'checksums': ['8f0a1edb86cb087876f3c699d2a2682012efd8867b390ed37355f13949d0628e'],
     }),
 ]
 

Updated software Triton-3.5.0-foss-2025a-CUDA-12.8.0.eb

Diff against Triton-3.5.0-gfbf-2025b-CUDA-12.9.1.eb

easybuild/easyconfigs/t/Triton/Triton-3.5.0-gfbf-2025b-CUDA-12.9.1.eb

diff --git a/easybuild/easyconfigs/t/Triton/Triton-3.5.0-gfbf-2025b-CUDA-12.9.1.eb b/easybuild/easyconfigs/t/Triton/Triton-3.5.0-foss-2025a-CUDA-12.8.0.eb
index 6faba5080c..8ac5d2b257 100644
--- a/easybuild/easyconfigs/t/Triton/Triton-3.5.0-gfbf-2025b-CUDA-12.9.1.eb
+++ b/easybuild/easyconfigs/t/Triton/Triton-3.5.0-foss-2025a-CUDA-12.8.0.eb
@@ -9,32 +9,31 @@ description = """Triton is a language and compiler for parallel programming. It
 Python-based programming environment for productively writing custom DNN compute
 kernels capable of running at maximal throughput on modern GPU hardware."""
 
-toolchain = {'name': 'gfbf', 'version': '2025b'}
+toolchain = {'name': 'foss', 'version': '2025a'}
 
 builddependencies = [
-    ('CMake', '3.31.8'),
-    ('Ninja', '1.13.0'),
+    ('CMake', '3.31.3'),
+    ('Ninja', '1.12.1'),
     ('nlohmann_json', '3.12.0'),
-    ('git', '2.50.1'),
-    ('libxml2', '2.14.3'),
+    ('git', '2.49.0'),
+    ('libxml2', '2.13.4'),
     ('lit', '18.1.8'),
     ('ncurses', '6.5'),
 ]
 dependencies = [
-    ('CUDA', '12.9.1', '', SYSTEM),
-    ('Python', '3.13.5'),
-    ('Python-bundle-PyPI', '2025.07'),
-    ('SciPy-bundle', '2025.07'),
+    ('CUDA', '12.8.0', '', SYSTEM),
+    ('Python', '3.13.1'),
+    ('Python-bundle-PyPI', '2025.04'),
+    ('SciPy-bundle', '2025.04'),
     ('pybind11', '3.0.0'),
-    ('Z3', '4.15.1'),
-    ('zstd', '1.5.7'),
+    ('Z3', '4.13.4'),
+    ('zstd', '1.5.6'),
     ('zlib', '1.3.1'),
 ]
 
 local_arch = {"arm64": "sbsa", "aarch64": "sbsa"}.get(ARCH, ARCH)
 
 components = [
-    # Hash from cmake/llvm-hash.txt
     ('LLVM', '7d5de3033187c8a3bb4d2e322f5462cdaf49808f', {
         'easyblock': 'CMakeNinja',
         'source_urls': ['https://github.com/llvm/llvm-project/archive/'],
@@ -46,10 +45,8 @@ components = [
         'start_dir': 'llvm-project-%(version)s',
         'separate_build_dir': 'llvm_build_dir',
         'configopts': ' '.join([
-            # Reduce dependencies
-            '-DLLVM_ENABLE_BINDINGS=OFF',  # Requires OCAML
+            '-DLLVM_ENABLE_BINDINGS=OFF',
             '-DLLVM_ENABLE_LIBEDIT=OFF',
-            # See https://github.com/triton-lang/triton/blob/develop/scripts/build-llvm-project.sh
             '-DCMAKE_BUILD_TYPE="Release"',
             '-DLLVM_CCACHE_BUILD=OFF',
             '-DLLVM_ENABLE_ASSERTIONS=ON',
@@ -60,13 +57,6 @@ components = [
         'srcdir': 'llvm',
         'skipsteps': ['install'],
     }),
-    # Use same major.minor version as Triton, see this file using the right tag instead of 'main':
-    # https://github.com/triton-lang/triton/blob/main/cmake/nvidia-toolchain-version.json
-    # Check https://developer.download.nvidia.com/compute/cuda/redist for the latest version of redistrib_*.json.
-    # Generate checksums with:
-    #   wget -O- https://developer.download.nvidia.com/compute/cuda/redist/redistrib_12.8.1.json | \
-    #     jq -r '.cuda_nvcc | to_entries[] | select(.value | type=="object") | "'\
-    #     \''" + (.value.relative_path | split("/")[-1]) + "'\'': '\''" + .value.sha256 + "'\'',"'
     ('CUDA-NVCC', '12.8.93', {
         'easyblock': 'MakeCp',
         'source_urls': [f'https://developer.download.nvidia.com/compute/cuda/redist/cuda_nvcc/linux-{local_arch}'],
@@ -92,16 +82,13 @@ local_preinstallopts = ' '.join([
     'JSON_SYSPATH="$EBROOTNLOHMANN_JSON"',
     'PYBIND11_SYSPATH="$EBROOTPYBIND11"',
     'MAX_JOBS=%(parallel)s',
-    # Build type
     'DEBUG=0 REL_WITH_DEB_INFO=0 TRITON_REL_BUILD_WITH_ASSERTS=1',
     "TRITON_APPEND_CMAKE_ARGS='-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON'",
 ]) + ' '
 
 exts_list = [
     (name, version, {
-        # make pip print output of cmake
         'installopts': "-v ",
-        # ensure that libdevice.10.bc from $EBROOTCUDA/nvvm/libdevice is used:
         'postinstallcmds': [
             'rm -rf %(installdir)s/lib/python%(pyshortver)s/site-packages/triton/backends/nvidia/lib/libdevice.10.bc'
         ],
@@ -119,20 +106,5 @@ exts_list = [
 
 postinstallpatches = [('triton_test.py', 'test/triton_test.py')]
 
-checksums = [
-    {'triton_test.py': '0d8b4556a76268b000d6023a1abaee801d179db3aed51e781c06854858490cc8'},
-]
-
-sanity_check_commands = ['TRITON_HOME=$TMPDIR/eb-triton_home '
-                         'python %(installdir)s/test/triton_test.py %(cuda_compute_capabilities)s']
-
-modextrapaths = {
-    'TRITON_PTXAS_PATH': 'tools/ptxas',
-}
-modextravars = {
-    # Search for "_path_to_binary" in Triton sources
-    'TRITON_CUOBJDUMP_PATH': '$CUDA_HOME/bin/cubjdump',
-    'TRITON_LIBDEVICE_PATH': '$CUDA_HOME/nvvm/libdevice/libdevice.10.bc',
-}
+moduleclass = 'lang'
 
-moduleclass = 'devel'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2025a issues & PRs related to 2025a common toolchains new update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants