Skip to content

Conference call notes 20251203

Kenneth Hoste edited this page Dec 3, 2025 · 1 revision

(back to Conference calls)

Notes on the 284th 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

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)
    • enhancements
      • Make specifying exts_defaultclass optional (PR #4800)
      • retry fetching source file for extensions from PyPI with alternative filename (with - replaced with _ in extension name) (PR #4943)
      • Add templates for source with just version numbers (like VERSION_TAR_GZ and V_VERSION_TAR_GZ) (PR #5025)
      • Add templates for patch versions (PR #5028)
      • Print total runtime of all builds (PR #5032)
      • Add runtime_only options to EasyConfig.dependency_names method (PR #5044)
      • Remove superflous module list call in ModulesTool.load (PR #5046)
      • Add backtrace to logged exception (PR #5047)
      • add support both $VAR and ${VAR} variable formats in modextravars (PR #5049)
      • Show more readable error message when uploading gist or posting comment failed (PR #5056)
    • changes
      • unset $PROMPT_COMMAND in cmd.sh shell (PR #5034)
    • code cleanup
      • Enable flake8-comprehension code style check and fix issues (PR #5043)
    • CI/test suite
      • Introduce saved_env context manager for restoring environment in tests (PR #5015)
      • Disable trace output by default in tests (PR #5053)
    • other
      • add example hook for updating OpenSSL 1.x dependency to 3.x (PR #5035)
  • easyblocks (merged PRs)

    • bug fixes
      • fix search_file for path configuration files in PythonBundle and PythonPackage (PR #3975)
      • return result of configure/build/install step in CMakeNinja easyblock (PR #3999)
    • enhancements
      • honor (pre)configopts, (pre)buildopts and (pre)testopts in custom easyblock for HPCG (PR #3986)
      • allow to enable/disable standard library C++ modules in LLVM easyblock (PR #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)
    • updates
      • Update Mathematica easyblock to support versions > 14.1 (PR #3707)
      • Update LAMMPS easyblock: v2025 fix + extra tests (PR #3894)
      • Update WRF easyblock for Intel compilers >= 2024 (icx, ...) (PR #3992)
    • changes
      • ...
    • new
      • add custom easyblock for gnupg-bundle (PR #3972)
      • add custom easyblock for QEMU (PR #3976)
      • add custom easyblock for pocl (PR #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)
      • use custom easyblock for gnupg-bundle that ensures that UNIX sockets can be created for tests (PR #24359)
      • use custom easyblock in recent pocl easyconfigs (PR #24375)
      • add patch to LLVM 20.1.x easyconfig to fix bindc commonblocks in fortran compilation (PR #24495)
      • add missing ETE dependency for PICRUSt2 v2.6.1 (PR #24655)
      • add Python as build dependency for recent QuantumESPRESSO easyconfigs, to ensure pipes Python module is available (PR #24694)
      • add patch to LLVM 20.1.8 to always link compiler-rt to flang after libgcc (PR #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)
    • (noteworthy) new software
      • ...
    • noteworthy software updates
    • cleanup
      • ...
    • changes
      • avoid using bundled HTSlib in Stacks 2.68 + move to GCC toolchain (PR #24701)
      • Unbundle python-zlib-ng (PR #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)
    • enhancements
      • (***) new LLVM based toolchain (PR #4914)
      • (***) make NVHPC a full toolchain with nvidia-compilers, NVHPCX and NVBLAS (PR #4927)
      • Honor sanity_check_commands & sanity_check_paths from extensions (PR #5012)
      • Add --keep-going option to fail at the end not at first failing installation (PR #5022)
      • Add environment variable for profiling EasyBuild (PR #5040)
      • Add --debug-module-cmds option (PR #5045)
      • Load dependencies of SYSTEM toolchain by full name (PR #5051)
      • pick up on config.cfg EasyBuild configuration file in current working directory (PR #5054)
      • (***) Set $___EASYBUILD___ environment variable to 'EasyBuild' to indicate that you're in an EasyBuild session (PR #5058)
    • code cleanup
      • ...
    • changes
      • (***) Deprecate support for running EasyBuild with Python < 3.9 (PR #4966)
    • CI/test suite
      • test_github_det_commit_status failing (PR #5062)
  • easyblocks (open PRs + issues)

    • bug fixes/reports
      • Set required environment variables in Python sanity check (PR #3913)
      • buildenv block uses setenv and does not recognise PATH-like variables (issue #4004)
    • enhancements
      • (***) Add test for PyTorch test-results (XML files) parsing (PR #3803)
        • would be nice to also merge PR for PyTorch 2.7.1 + CUDA (see easyconfigs PR #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)
        • to help deal excessive memory requirements when building LLVM, see also issue #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)
      • enhance GROMACS easyblock to improve control over PLUMED support (native vs. patching) (PR #3984)
      • Implement merging Cargo.toml file with workspace file (PR #3988)
      • Improve Mathematica easyblock to support license server configuration and version-specific executable names (PR #3991)
      • Create lockfile for Cargo package if missing (PR #3995)
      • Allow FlexiBLAS to link to MKL with LLVM (PR #3997)
      • enhance QuantumESPRESSO easyblock to bind to 1 socket by default in test step (PR #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)
      • Update jaxlib easyblock for jax 0.6.2 with CUDA-12.6.0 (PR #3951)
      • enhance GROMACS easyblock to add support for optarch X86-64-V? notation (PR #3981)
      • Update GAMESS easyblock for 20240715-R2 (PR #3990)
      • update binutils easyblock to handle libzstd in binutils 2.40+ (PR #3966)
    • changes
      • Make CargoPythonPackage the default class for extensions/components of CargoPythonBundle (PR #3993)
      • Call Cargo configure step from CargoPythonPackage (PR #3996)
    • code cleanup
      • Enable flake8-comprehension code style check and fix issues (PR #3989)
    • new easyblocks
      • add custom easyblock for Kokkos (PR #3893)
      • new easyblock for sentaurus (PR #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)
      • PyTorch v2.6.0 w/ foss/2024a + CUDA 12.6.0 (PR #23433)
      • PyTorch v2.7.1 w/ foss/2024a + CUDA 12.6.0 (PR #23923)
      • CP2K v2025.2 w/ foss/2025a (PR #23696)
      • R-bundle-Bioconductor v3.22 w/ foss/2025b (PR #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

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 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
    • 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

Clone this wiki locally