(back to [[Conference calls]]) Notes on the **283rd** EasyBuild conference call, Wednesday 3 Dec 2025 (09:00 UTC / 10:00 CET) #### Attendees List of attendees (14): * Jorge Delgado Guerrero (University of Luxembourg) * Bob Dröge (Univ. of Groningen, The Netherlands) * Davide Grassano (CECAM) * Alexander Grund (ZIH, Dresden, Germany) * Sven Hansen (RWTH, Germany) * Kenneth Hoste (HPC-UGent) * Georgios Kafanas (University of Luxembourg) * Kurt Lust (UAntwerpen & LUMI User Support Team) * Sébastien Moretti (SIB, Switzerland) * Jurij Pečar (EMBL, Germany) * Jan Reuter (JSC, Germany) * Alexandre Strube (JSC, Germany) * Alain van Hoof (TU Eindhoven, The Netherlands) * Helena Vela Beltran (Do IT Now Spain) #### Agenda * overview of recent developments * update of common toolchains * Q&A ### Recent developments * latest EasyBuild release: EasyBuild v5.1.2 (26 Sept 2025) * next (stable) EasyBuild release: EasyBuid v5.2.0 *(ETA: ASAP)* * incl. support for LLVM-based toolchain, NVHPC toolchain, etc. * window of opportunity for merging PRs to be included in EasyBuild v5.2.0 is closing in next couple of days * planning to start regression test & start preparing release notes end of this week... #### News * 11th EasyBuild User Meeting: 21-23 April 2026 @ Portugal, see https://easybuild.io/eum26 * `jsc-zen3` bot unavailable from Wed 3 Dec 7am until (potentially) Thu 7pm * see also https://status.jsc.fz-juelich.de/services/40 #### Merge sprints - future easyconfigs merge sprints planned: - **Mon 15 Dec 2025** - Mon 16 Feb 2026 - Mon 13 Apr 2026 - Mon 15 Jun 2026 - Mon 17 Aug 2026 - aiming for semi-fixed schedule every other month: 3rd Monday in even months - at some point a sprint to revise & close outdated open issues #### Merged PRs *(changed made in PRs marked with `*` are included latest EasyBuild stable release)* * **blog/docs** *(merged PRs)* * ... * **framework** *(merged PRs)* * *bug fixes* - Don't append empty component to `start_dir` in `EasyBlock.guess_start_dir` ([PR #5057](https://github.com/easybuilders/easybuild-framework/pull/5057)) * *enhancements* - Make specifying `exts_defaultclass` optional ([PR #4800](https://github.com/easybuilders/easybuild-framework/pull/4800)) - retry fetching source file for extensions from PyPI with alternative filename (with `-` replaced with `_` in extension name) ([PR #4943](https://github.com/easybuilders/easybuild-framework/pull/4943)) - Add templates for source with just version numbers (like `VERSION_TAR_GZ` and `V_VERSION_TAR_GZ`) ([PR #5025](https://github.com/easybuilders/easybuild-framework/pull/5025)) - Add templates for patch versions ([PR #5028](https://github.com/easybuilders/easybuild-framework/pull/5028)) - Print total runtime of all builds ([PR #5032](https://github.com/easybuilders/easybuild-framework/pull/5032)) - Add runtime_only options to `EasyConfig.dependency_names` method ([PR #5044](https://github.com/easybuilders/easybuild-framework/pull/5044)) - Remove superflous module `list` call in `ModulesTool.load` ([PR #5046](https://github.com/easybuilders/easybuild-framework/pull/5046)) - Add backtrace to logged exception ([PR #5047](https://github.com/easybuilders/easybuild-framework/pull/5047)) - add support both `$VAR` and `${VAR}` variable formats in `modextravars` ([PR #5049](https://github.com/easybuilders/easybuild-framework/pull/5049)) - Show more readable error message when uploading gist or posting comment failed ([PR #5056](https://github.com/easybuilders/easybuild-framework/pull/5056)) * *changes* - unset `$PROMPT_COMMAND` in `cmd.sh` shell ([PR #5034](https://github.com/easybuilders/easybuild-framework/pull/5034)) * *code cleanup* - Enable flake8-comprehension code style check and fix issues ([PR #5043](https://github.com/easybuilders/easybuild-framework/pull/5043)) * *CI/test suite* - Introduce `saved_env` context manager for restoring environment in tests ([PR #5015](https://github.com/easybuilders/easybuild-framework/pull/5015)) - Disable trace output by default in tests ([PR #5053](https://github.com/easybuilders/easybuild-framework/pull/5053)) * *other* - add example hook for updating OpenSSL 1.x dependency to 3.x ([PR #5035](https://github.com/easybuilders/easybuild-framework/pull/5035)) * **easyblocks** *(merged PRs)* * *bug fixes* - fix search_file for path configuration files in `PythonBundle` and `PythonPackage` ([PR #3975](https://github.com/easybuilders/easybuild-easyblocks/pull/3975)) - return result of configure/build/install step in `CMakeNinja` easyblock ([PR #3999](https://github.com/easybuilders/easybuild-easyblocks/pull/3999)) * *enhancements* - honor `(pre)configopts`, `(pre)buildopts` and `(pre)testopts` in custom easyblock for HPCG ([PR #3986](https://github.com/easybuilders/easybuild-easyblocks/pull/3986)) - allow to enable/disable standard library C++ modules in LLVM easyblock ([PR #3994](https://github.com/easybuilders/easybuild-easyblocks/pull/3994)) - add options to `CMakeMake.configure_step` to not fail on non-zero exit code of '`cmake`' command and to return full result of '`cmake`' shell command ([PR #4000](https://github.com/easybuilders/easybuild-easyblocks/pull/4000)) * *updates* - Update Mathematica easyblock to support versions > 14.1 ([PR #3707](https://github.com/easybuilders/easybuild-easyblocks/pull/3707)) - Update LAMMPS easyblock: v2025 fix + extra tests ([PR #3894](https://github.com/easybuilders/easybuild-easyblocks/pull/3894)) - Update WRF easyblock for Intel compilers >= 2024 (icx, ...) ([PR #3992](https://github.com/easybuilders/easybuild-easyblocks/pull/3992)) * *changes* - ... * *new* - add custom easyblock for gnupg-bundle ([PR #3972](https://github.com/easybuilders/easybuild-easyblocks/pull/3972)) - add custom easyblock for QEMU ([PR #3976](https://github.com/easybuilders/easybuild-easyblocks/pull/3976)) - add custom easyblock for pocl ([PR #3978](https://github.com/easybuilders/easybuild-easyblocks/pull/3978)) * *code cleanup* - ... * *CI* - ... * **easyconfigs** *(merged PRs)* * ***~110** easyconfig PRs were merged since last conf call \o/* * *bug fixes/reports* - fix python-igraph easyconfigs to actually use igraph dependency rather than build one + update easyconfig for synthcity 0.2.11 accordingly (changed version for ipython-igraph dependency) ([PR #24288](https://github.com/easybuilders/easybuild-easyconfigs/pull/24288)) - use custom easyblock for gnupg-bundle that ensures that UNIX sockets can be created for tests ([PR #24359](https://github.com/easybuilders/easybuild-easyconfigs/pull/24359)) - use custom easyblock in recent pocl easyconfigs ([PR #24375](https://github.com/easybuilders/easybuild-easyconfigs/pull/24375)) - add patch to LLVM 20.1.x easyconfig to fix bindc commonblocks in fortran compilation ([PR #24495](https://github.com/easybuilders/easybuild-easyconfigs/pull/24495)) - add missing ETE dependency for PICRUSt2 v2.6.1 ([PR #24655](https://github.com/easybuilders/easybuild-easyconfigs/pull/24655)) - add Python as build dependency for recent QuantumESPRESSO easyconfigs, to ensure pipes Python module is available ([PR #24694](https://github.com/easybuilders/easybuild-easyconfigs/pull/24694)) - add patch to LLVM 20.1.8 to always link compiler-rt to flang after libgcc ([PR #24661](https://github.com/easybuilders/easybuild-easyconfigs/pull/24661)) * *enhancements* - add cuda-binding, cuda-core, cuda-pathfinder extensions to CUDA-Python v12.8.0 + add easyconfigs for numba-cuda v0.20.0, filecheck-python v1.0.3 w/ foss/2025a + CUDA 12.8.0 ([PR #24665](https://github.com/easybuilders/easybuild-easyconfigs/pull/24665)) * *(noteworthy) new software* - ... * *noteworthy software updates* * CUDA 13.0.2 ([PR #24635](https://github.com/easybuilders/easybuild-easyconfigs/pull/24635)) * [foss/2025a] R-bundle-CRAN v2025.10 ([PR #24389](https://github.com/easybuilders/easybuild-easyconfigs/pull/24389)) + R-bundle-Bioconductor v3.22 w/ R 4.5.1 ([PR #24626](https://github.com/easybuilders/easybuild-easyconfigs/pull/24626)) * *cleanup* - ... * *changes* - avoid using bundled HTSlib in Stacks 2.68 + move to GCC toolchain ([PR #24701](https://github.com/easybuilders/easybuild-easyconfigs/pull/24701)) - Unbundle python-zlib-ng ([PR #24718](https://github.com/easybuilders/easybuild-easyconfigs/pull/24718)) - How far back should we update `zlib-ng` easyconfigs? - 2-3 generations of easyconfigs back makes sense, if the required effort is reasonable - we need to make sure that nothing depending on `zlib-ng` currently requires the Python bindings... - going forward (next common toolchain?) we're considering replacing `zlib` with `zlib-ng` #### Open (active) PRs **PRs marked with `(***)` are considered blockers for releasing EasBuild v5.2.0** * **blog/docs** *(open PRs + issues)* * ... * **framework** *(open PRs + issues)* * *bugs* - Building easyconfigs with many extensions is much slower with EasyBuild 5.x than with EasyBuild 4.x ([issue #5052](https://github.com/easybuilders/easybuild-framework/issues/5052)) * *enhancements* - `(***)` new LLVM based toolchain ([PR #4914](https://github.com/easybuilders/easybuild-framework/pull/4914)) - `(***)` make NVHPC a full toolchain with nvidia-compilers, NVHPCX and NVBLAS ([PR #4927](https://github.com/easybuilders/easybuild-framework/pull/4927)) - Honor `sanity_check_commands` & `sanity_check_paths` from extensions ([PR #5012](https://github.com/easybuilders/easybuild-framework/pull/5012)) - Add `--keep-going option` to fail at the end not at first failing installation ([PR #5022](https://github.com/easybuilders/easybuild-framework/pull/5022)) - Add environment variable for profiling EasyBuild ([PR #5040](https://github.com/easybuilders/easybuild-framework/pull/5040)) - Add `--debug-module-cmds` option ([PR #5045](https://github.com/easybuilders/easybuild-framework/pull/5045)) - Load dependencies of SYSTEM toolchain by full name ([PR #5051](https://github.com/easybuilders/easybuild-framework/pull/5051)) - pick up on `config.cfg` EasyBuild configuration file in current working directory ([PR #5054](https://github.com/easybuilders/easybuild-framework/pull/5054)) - `(***)` Set `$___EASYBUILD___` environment variable to `'EasyBuild'` to indicate that you're in an EasyBuild session ([PR #5058](https://github.com/easybuilders/easybuild-framework/pull/5058)) * *code cleanup* - ... * *changes* - `(***)` Deprecate support for running EasyBuild with Python < 3.9 ([PR #4966](https://github.com/easybuilders/easybuild-framework/pull/4966)) * *CI/test suite* - `test_github_det_commit_status` failing ([PR #5062](https://github.com/easybuilders/easybuild-framework/issues/5062)) * **easyblocks** *(open PRs + issues)* * bug fixes/reports - Set required environment variables in Python sanity check ([PR #3913](https://github.com/easybuilders/easybuild-easyblocks/pull/3913)) - `buildenv` block uses setenv and does not recognise PATH-like variables ([issue #4004](https://github.com/easybuilders/easybuild-easyblocks/issues/4004)) * enhancements - `(***)` Add test for PyTorch test-results (XML files) parsing ([PR #3803](https://github.com/easybuilders/easybuild-easyblocks/pull/3803)) - would be nice to also merge PR for PyTorch 2.7.1 + CUDA (see [easyconfigs PR #23923](https://github.com/easybuilders/easybuild-easyconfigs/pull/23923)) - is it worth the effort to still have a CPU-only PyTorch - CUDA-enabled PyTorch also supports running CPU-only anyway - yes, there are use cases for this - PyTorch installation on a CPU-only cluster, where CUDA should not be installed (to avoid confusing users) - PyTorch as dependency for CPU-only tools that don't do heavy computation - description of PyTorch without CUDA shouldn't claim it provides GPU support - enhance LLVM easyblock to allow control over `$LLVM_PARALLEL_LINK_JOBS` ([PR #3971](https://github.com/easybuilders/easybuild-easyblocks/pull/3971)) - to help deal excessive memory requirements when building LLVM, see also [issue #3970](https://github.com/easybuilders/easybuild-easyblocks/issues/3970) - requires using Ninja, make sense to aim for this with LLVM 21+ - enhance GROMACS easyblock to provide more control over building `gmxapi` Python package ([PR #3982](https://github.com/easybuilders/easybuild-easyblocks/pull/3982)) - enhance GROMACS easyblock to improve control over PLUMED support (native vs. patching) ([PR #3984](https://github.com/easybuilders/easybuild-easyblocks/pull/3984)) - Implement merging `Cargo.toml` file with workspace file ([PR #3988](https://github.com/easybuilders/easybuild-easyblocks/pull/3988)) - ways to avoid implementing our own TOML parser - use `tombllib` which is available in Python 3.11, vendor it in EaysBuild framework to use in older versions - see https://github.com/python/cpython/tree/3.14/Lib/tomllib - Improve Mathematica easyblock to support license server configuration and version-specific executable names ([PR #3991](https://github.com/easybuilders/easybuild-easyblocks/pull/3991)) - Create lockfile for Cargo package if missing ([PR #3995](https://github.com/easybuilders/easybuild-easyblocks/pull/3995)) - Allow FlexiBLAS to link to MKL with LLVM ([PR #3997](https://github.com/easybuilders/easybuild-easyblocks/pull/3997)) - enhance QuantumESPRESSO easyblock to bind to 1 socket by default in test step ([PR #3998](https://github.com/easybuilders/easybuild-easyblocks/pull/3998)) - doesn't fully fix the problem that it intends to fix, but it does help in some contexts, and doesn't seem to hurt in others, so can be merged * *updates* - Update CP2K easyblock for v2024 and v2025 ([PR #3892](https://github.com/easybuilders/easybuild-easyblocks/pull/3892)) - Update jaxlib easyblock for jax 0.6.2 with CUDA-12.6.0 ([PR #3951](https://github.com/easybuilders/easybuild-easyblocks/pull/3951)) - enhance GROMACS easyblock to add support for optarch X86-64-V? notation ([PR #3981](https://github.com/easybuilders/easybuild-easyblocks/pull/3981)) - Update GAMESS easyblock for 20240715-R2 ([PR #3990](https://github.com/easybuilders/easybuild-easyblocks/pull/3990)) - update binutils easyblock to handle libzstd in binutils 2.40+ ([PR #3966](https://github.com/easybuilders/easybuild-easyblocks/pull/3966)) * *changes* - Make `CargoPythonPackage` the default class for extensions/components of `CargoPythonBundle` ([PR #3993](https://github.com/easybuilders/easybuild-easyblocks/pull/3993)) - Call Cargo configure step from `CargoPythonPackage` ([PR #3996](https://github.com/easybuilders/easybuild-easyblocks/pull/3996)) * *code cleanup* - Enable flake8-comprehension code style check and fix issues ([PR #3989](https://github.com/easybuilders/easybuild-easyblocks/pull/3989)) * *new easyblocks* - add custom easyblock for Kokkos ([PR #3893](https://github.com/easybuilders/easybuild-easyblocks/pull/3893)) - new easyblock for sentaurus ([PR #4001](https://github.com/easybuilders/easybuild-easyblocks/pull/4001)) * **easyconfigs** *(open PRs + issues)* * *bug fixes/reports* - ... * *enhancements* - ... * *(noteworthy) new software* * ... * software updates * PyTorch v2.3.0 w/ `foss/2023b` + CUDA 12.4.0 ([PR #23553](https://github.com/easybuilders/easybuild-easyconfigs/pull/23553)) * PyTorch v2.6.0 w/ `foss/2024a` + CUDA 12.6.0 ([PR #23433](https://github.com/easybuilders/easybuild-easyconfigs/pull/23433)) * PyTorch v2.7.1 w/ `foss/2024a` + CUDA 12.6.0 ([PR #23923](https://github.com/easybuilders/easybuild-easyconfigs/pull/23923)) * CP2K v2025.2 w/ `foss/2025a` ([PR #23696](https://github.com/easybuilders/easybuild-easyconfigs/pull/23696)) * R-bundle-Bioconductor v3.22 w/ `foss/2025b` ([PR #24469](https://github.com/easybuilders/easybuild-easyconfigs/pull/24469)) * *changes* * ... ### LLVM toolchain effort - framework & easyblock PRs have been battle-tested, are ready to merge - specific issues, like individual test failures in math libraries on specific CPUs, will need to be followed up - problem with Autoconf, only pops up when using `-march=native` - fixed with [easyconfigs PR #24699](https://github.com/easybuilders/easybuild-easyconfigs/pull/24669) - Jan is looking into contributing this fix upstream ### Common toolchains - Jan: why do we have two common toolchain versions per year? - could save EasyBuild communities quite a bit of headaches? - time to reconsider this and only have `foss/2026`? - no `foss/2024b` (because of EasyBuild v5.x), but no big complaints on this - could also help in context of EESSI - 2025b is currently missing from EESSI 2025.06 - LLVM has two major revisions per year, so 2 toolchain versions per year would make sense there - EasyBuild survey may give some insight into how community would feel about this - recent struggles with keeping up with two toolchain versions per year are also relevant here - Alexander: only one per year may lead to more clashes w.r.t. required dependency versions - Kurt: perhaps one full toolchain (stable GCC, N-1 version of LLVM) + one more developer-oriented toolchain (GCC X.1, latest LLVM) #### `2026a` - ETA early 2026 - will likely use GCC 15.x as base - will be a bit painful because default C standard has been changed - being considered: - use `zlib-ng` instead of `zlib` across the board - introduce detection for using `zlib` dependency in easyconfigs test suite ### Q&A / other * (Davide) weird problem in [easyconfig PR #24174](https://github.com/easybuilders/easybuild-easyconfigs/pull/24174) w.r.t. OpenBabel install dir already exist * should look into config option in EB to instruct it to remove install dir easier * (Bob) ROCm-LLVM stuff * see [easyconfig PR #23304](https://github.com/easybuilders/easybuild-easyconfigs/pull/23542) * test on `jsc-zen3` now fails with weird linker error * `ld: cannot find -lxml2: No such file or directory` * doesn't make sense since `libxml2` dependency is there?! * could be related to recent change in LLVM easyblock