Conference call notes 20250604 - easybuilders/easybuild GitHub Wiki

(back to Conference calls)

Notes on the 271st EasyBuild conference call, Wednesday 4 June 2025 (15:00 UTC / 17:00 CEST)

Attendees

List of attendees (15):

  • Sebastian Achilles (JSC, Germany)
  • Loris Ercole (CECA)
  • Davide Grassano (CECAM)
  • Jasper Grimm (University of York, UK)
  • Leonardo Honfi Camilo (Wageningen University, The Netherlands)
  • Georios Kafanas (ULHPC)
  • Sébastien Moretti (SIB, Switzerland)
  • Bart Oldeman (McGill, CQ, Digital Research Alliance Canada)
  • Jure Pečar (EMBL, Germany)
  • Jan Reuter (JSC, Germany)
  • Jörg Saßmannshausen (Imperial College London, UK)
  • Roberto Scipioni (Red Oak Consulting, UK

Agenda

  • overview of recent developments
  • 2025a update of common toolchains
  • Q&A

Recent developments

  • latest EasyBuild release: EasyBuild v5.1.0 (27 May 2025) :partying_face:
  • next (stable) EasyBuild release: EasyBuild v5.1.1?, preliminary milestone for 27 June 2025

News

  • easyconfigs merge sprint scheduled for Monday 16 June 2025
    • main goal is to push down on number of open easyconfig PRs
    • sync meeting to get organised at 10:00 CEST
    • split in groups?
    • focus effort on easyconfigs PRs (which don't need changes in framework/easyblocks)
    • trim down # configurations in CI workflows for easyconfigs repo

Merged PRs

  • docs (merged PRs)

    • ...
  • framework (merged PRs)

    • bug fixes
      • prefer using importlib.metadata over the deprecated pkg_resources in det_pypkg_version + switch container tests to rockylinux 8.10 (PR #4904)
        • fixes issue #4903 CI triggering pkg_resources deprecation warning in setuptools
      • fix fake_module_environment context manager: make sure that cleanup of fake module is always done, even if an error was raised (PR #4895)
      • Fix --dep-graph by using graphviz Python package (PR #4891) (in 5.1.0)
    • enhancements
      • also pass value of fail_on_error and hidden options of run_shell_cmd call down to pre/post run_shell_cmd hook (PR #4911)
      • trigger post_run_shell_cmd_hook before raising error if shell command failed + pass down full RunShellCmdResult instance (PR #4908)
      • add blue, cyan, purple as known colors that can be used in colorize function (PR #4907)
      • add support for check_readelf_rpath easyconfig parameter to optionally skip RPATH checks (PR #4768) (in 5.1.0)
      • replace full trace message for extension check command with simple pass/fail message (PR #4892) (in 5.1.0)
      • add support for environment variables in set_environment of module generators (PR #4855) (in 5.1.0)
      • Avoid leaking keys by mistake with --upload-test-report (PR #4877) (in 5.1.0)
    • changes
      • ...
    • code cleanup
      • move EasyBlock.expand_module_search_path into ModuleEnvironmentVariable.expand_paths (PR #4859) (in 5.1.0)
    • CI
      • ...
  • easyblocks (merged PRs)

    • bug fixes
      • honour --skip-test-step in Bundle easyblock (PR #3752)
      • take into account that $PYTHONPATH and $PATH may be unset in configure step of custom easyblock for scipy (PR #3744)
      • Make sure rpath wrappers shipped via buildenv are world executable (PR #3743)
      • use --enable-install-libiberty to enable libiberty for binutils (PR #3736)
      • Fix missed f-string in pythonpackage (PR #3729)
      • Ensure OpenCOSMORS is installed for ORCA 6 (PR #3726)
      • fix Python shebangs for scripts in Python and Conda-like installations (PR #3717) (in 5.1.0)
      • Avoid failure in Python package installation and sanity check when $PIP_REQUIRE_VIRTUALENV is set (PR #3460) (in 5.1.0)
      • add -std=c++11 to $CXXFLAGS when building binutils 2.42+ with system GCC 4.8.1 to 5.x (PR #3728) (in 5.1.0)
      • configure Rust to use stable channel (PR #3691) (in 5.1.0)
        • impact on easyconfigs that use Rust is unclear, some creates may use that nightly channel is used? => to be tested...
      • Fix access to unassigned variable when installing Python < 3.9.1 with using sysroot (PR #3686) (in 5.1.0)
      • Fix handling of maximum Python version in pick_python_cmd function in PythonPackage easyblock + require that maximum major Python version is specified if maximum minor Python version is specified (PR #3478) (in 5.1.0)
      • actually ignore stderr of 'pip list' in det_installed_python_packages function provided by Python easyblock (PR #3731) (in 5.1.0)
      • only run pip check once for Python installation + move det_installed_python_packages, det_pip_version, run_pip_check to Python easyblock (PR #3730) (in 5.1.0)
      • Unset PMIX variables when configuring OpenMPI (PR #3511) (in 5.1.0)
      • fix dry run for openssl_wrapper (PR #3719) (in 5.1.0)
      • replace deprecated expand_module_search_path with ModuleEnvironmentVariable.expand_paths() in Bundle and Java easyblocks (PR #3727) (in 5.1.0)
      • run pip check only once for PythonBundle (PR #3432) (in 5.1.0)
      • don't build GO tests by default for LLVM versions < 16 (PR #3690) (in 5.1.0)
      • Avoid leaking file handles in PythonPackage (PR #3704) (in 5.1.0)
      • Rebuild C++ API for Gurobi (PR #3714) (in 5.1.0)
      • allow downloaded Python packages if implicitely requested (PR #3722) (in 5.1.0)
    • enhancements
      • enhance Rust easyblock to allow specifying channel to use (stable vs nightly) (PR #3749)
      • enhance Bundle generic easyblock to also run test step for each bundle component (PR #3748)
      • add Kokkos mapping for zen4 and nvidia grace to LAMMPS easyblock (PR #3742)
      • add support for iterative build of OpenBLAS with 64-bit integers (PR #2753)
      • enhance Cargo easyblock to handle single-line members in workspaces (PR #3705) (in 5.1.0)
      • generate version from the source files for LAMMPS when using software-commit (PR #3485) (in 5.1.0)
      • add support for neoverse_n1 instances of Azure (cortex-a72) to LAMMPs easyblock (PR #3580) (in 5.1.0)
      • also install easybuild package for EasyBuild >= 5 PR #3700 (in 5.1.0)
      • produce clean trace message for 'pip check' PR #3732 (in 5.1.0)
      • generate an egg-info file for the easybuild meta package PR #3725 (in 5.1.0)
    • updates
      • minor updates to ABAQUS easyblock to make hotfixes 2441 and 2424 working (PR #3512) (in 5.1.0)
    • changes
      • deprecate JAR easyblock, Binary easyblock should be used instead (PR #3721) (in 5.1.0)
      • update Amber easyblock for version 24.x and newer (PR #3685) (in 5.1.0)
    • new easyblocks
      • add custom easyblock for Term::ReadLine::Gnu Perl module (PR #3712) (in 5.1.0)
    • code cleanup
      • Remove superflous assignment of sanity check module data in custom easyblock for torchvision (PR #3701) (in 5.1.0)
    • CI
      • ...
  • easyconfigs (merged PRs)

    • ~75 easyconfig PRs were merged since last conf call
    • bug fixes/reports
      • ...
    • enhancements
      • ...
    • (noteworthy) new software
      • ...
    • noteworthy software updates
    • cleanup
      • ...
    • changes
      • ...

Open (active) PRs

  • docs (open PRs + issues) *

  • framework (open PRs + issues)

    • bugs
      • ...
    • enhancements
      • Add required argument to get_cuda_cc_template_value (PR #4913)
      • add EB configuration option to ignore unversioned (0.0.0) python packages (PR #4912)
      • enhance LooseVersion test to add cases with leading alphabetical characters (PR #4901)
      • Update install-EasyBuild-develop.sh to allow installation without forking (PR #4899)
      • check module_extensions value before generating extensions string (PR #4898) (fixes PR #4887)
      • add build option new-namespace-installdir (PR #4894), see issue #4110
      • (DRAFT) censor values of filtered/sensitive environment variables rather than removing them from test report (PR #4889)
    • changes
      • ...
  • easyblocks (open PRs + issues)

    • bug fixes/reports
      • Fix use of CUDA CCs in LLVM easyblock and cleanup (PR #3755)
      • Improve reliability of PyTorch test reporting (PR #3723)
        • required for PyTorch 2.6
      • Fix failure in sanity-check-only/module-only rebuilds of OpenMPI (PR #3724)
      • Set $HOME to temporary folder for TensorFlow build and tests (PR #3751)
      • disable trace output when unpacking crates in Cargo easyblock (PR #3750)
      • (DRAFT) LLVM: Ensure sysroot dynamic linker is used (PR #3741)
    • enhancements
      • respect EB configuration option to ignore unversioned (0.0.0) python packages (PR #3753)
      • Let CMakeMake set the Python paths for CMake (PR #3694)
      • LLVM: Use dlopen for AMDGPU/CUDA libomptarget / offload target libraries (PR #3747)
      • take into account --new-namespace-installdir option for Tarball easyblock (PR #3737)
    • updates
      • Update Mathematica easyblock to support versions > 14.1 (PR #3707)
      • Deprecates the Clang Easyblock in Favor of the LLVM one for newer (>=19) versions of LLVM (PR #3746)
    • changes
      • ...
    • code cleanup
      • ...
    • new easyblocks
  • easyconfigs (open PRs + issues)

    • ~1k open easyconfig PRs
    • bug fixes/reports
      • ...
    • enhancements
      • ...
    • (noteworthy) new software
      • ...
    • software updates
    • changes

2025a common toolchains

  • (2024b was skipped to catch up with original schedule for defining common toolchain versions)
    • EasyBuild v5.0 was ideal excuse for that break in continuity...
  • GCC 14.2 as a base (see easyconfigs PR #21114)
  • foss/2025a and intel/2025a in EB 5.1.0, see https://docs.easybuild.io/common-toolchains/#common_toolchains_overview
    • foss using GCC 14.2.0, Open MPI 5.0.7, FlexiBLAS 3.4.5
    • intel using Intel Compilers 2025.1.1, Intel MPI 2021.15.0
  • UCC-CUDA v1.3.0 w/ CUDA 12.8.0 for GCCcore 14.2.0 merged but not in 5.1.0 (easyconfigs PR #22956
  • GCC 14.3.0 was released 23 May, in 5.1.0 but not as part of high level toolchain (see easyconfigs PR #22942. May be used as base for 2025b since GCC 15.1.0 has some issues.

Q&A / others