EasyBuild v5.0¶
A high-level overview of changes in EasyBuild version 5.0.0 is listed below.
Click on a particular item for more information.
Warning
(Tue 18 March 2025) The sections linked to from this overview below are known to be incomplete. Extra information will be gradually added over the next couple of days.
Breaking changes¶
EasyBuild v5.0 includes a number of backwards-incompatible changes:
- Python 3.6+ is required to run EasyBuild v5.0.0
- If Lmod is used as modules tool, then version >= 8.0 is required;
- If Environment Modules is used as modules tool, then version >= 4.3.0 is required;
See also the overview of removed functionality below.
Changed default configuration or behaviour¶
The default value for several EasyBuild configuration settings + default behaviour of EasyBuild has been changed in EasyBuild v5.0.
Changed default configuration in EasyBuild framework¶
- RPATH linking is enabled by default (
rpath
) - Trace output is enabled by default (
trace
) - Including
extensions
statement in generated modules is enabled by default (module-extensions
) - Using
depends_on
for dependencies in generated modules is enabled by default (module-depends-on
) - Use Slurm as default job backend (
job-backend
) - Default maximum build parallelism is set to 16 (
max-parallel
)
Changed behaviour in EasyBuild framework¶
- Change semantics of
--dry-run
(-D
), so it doesn't imply--robot
(-r
) - Move verifying of checksums from
source
tofetch
step, to include it with--fetch
- Create
lib
tolib64
symlink (and vice versa) before runningpostinstallcmds
- Use
sha256
as the default checksum type - Use default value
$XDG_CONFIG_DIRS
from XDG basedir spec:/etc/xdg
(instead of/etc
) - Reverse order for parsing files in
$XDG_CONFIG_DIRS
- Don't allow unresolved templates in easyconfig parameters by default
- Refactor
make_extension_string
method inEasyBlock
class - Change default for
change_into_dir
option inextract_file
function to toFalse
- Change
Toolchain.get_flag
so it doesn't automatically prepend a dash (-
) to compiler flags - Enforce correct
.patch(.*)
extension for patch files - Run sanity checks commands from an empty temporary directory rather than the software install directory
- Only allow use of
rpath
toolchain option whensystem
toolchain is used
Changed defaults in easyblocks¶
download_dep_fail
,use_pip
,sanity_pip_check
enabled by default forPythonPackage
easyblockCMakeMake
easyblock setsLIBDIR
configuration option tolib
by default
Enhancements¶
Various significant enhancements are included in EasyBuild v5.0, including:
- New function to run shell commands:
run_shell_cmd
- Interactive debugging of failing shell commands via
env.sh
andcmd.sh
scripts - New collection of easyconfig templates
- Mark support for installing extensions in parallel as stable (no longer experimental)
- Mark easystack support as stable (no longer experimental)
- Reproducible tarballs for sources created via
git_config
- New home for the archive of easyconfigs
- Granular exit codes
- Copy build directory and/or log file(s) if installation failed to path specified via
--failed-install-build-dirs-path
or--failed-install-logs-path
- Specify changes that should be made by generated module files via
module_load_environment
- Add support for alternate easyconfig parameters/templates/constants
keep-debug-symbols
configuration option to set default value of 'debug
' toolchain option- Provide control over how generated modules update search path for header files (via
--module-search-path-headers
) - Provide control over how EasyBuild specifies path to header files during installation (via
--search-path-cpp-headers
) - Provide control over how EasyBuild specifies path to libraries during installation (via
--search-path-linker
) - Support not using
$PYTHONPATH
to specify the location of installed Python packages (via--prefer-python-search-path
) - Revamp of easyconfig parameter
modextrapaths
- Detect Fortran
.mod
files inGCCcore
installations - Let
ConfigureMake
generic easyblock error out on unrecognizedconfigure
options - Require
download_instructions
for non-public sources
Removed functionality¶
Functionality that was deprecated a while ago in EasyBuild v4.x has been removed in EasyBuild v5.0:
- EasyBuild bootstrap script
- Experimental support for
.yeb
easyconfig accept-eula
configuration setting--wait-on-lock
configuration settingis_generic_easyblock
function fromeasybuild.framework.easyconfig.easyconfig
copytree
,rmtree2
functions fromeasybuild.filetools
fetch_extension_sources
method inEasyBlock
classmod_exists_regex_template
options inModulesTool.exist
methodToolchain.add_dependencies
methoddisable_templating
+default_fallback
options inget_easyblock_class
functionskip_lower
option fromtemplate_constant_dict
functionuse_git_am
option forapply_patch
functionskip_symlinks
option foradjust_permissions
functionlog_error
option inwhich
functiondescr
option forsimple_option
functiondummy
toolchain- Support for 32-bit targets
In addition, several software-specific easyblocks that were no longer used have been removed: ACML, ALADIN, Allinea, ARB, ATLAS, BamTools, Bioconductor, BiSearch, BLACS, Blender , BWISE, CFDEMcoupling, Chapel, CHARMM, cppcheck, DL_POLY_Classic, DOLFIN, Doris, Doxygen, EggLib, EPD, ESPResSo, fastStructure, FoldX, FreeFEM, HEALPix, IMOD, IPP, IronPython, libsmm, MetaVelvet, Modeller, Molpro, Mono, Mothur, MSM, MTL4, MyMediaLite, mutil, MVAPICH2, ncurses, NEMO, OpenIFS, Pasha, pbdMPI, pbdSLAP, PGI, picard, pplacer, Primer3, PyQuante, python_meep, Samcef, SAS, Scalasca v1.x, SHRiMP, SNPhylo, SOAPdenovo, TAU, TotalView, UFC, VSC-tools, and WRF-Fire.
Easyconfig files for unsupported toolchains were archived in the easyconfigs-archive
repository.
Deprecated functionality¶
Some functionality is being deprecated in EasyBuild v5.0, and is scheduled to be removed in EasyBuild v6.0:
parallel
easyconfig parameterrun_cmd
andrun_cmd_qa
functions (replaced withrun_shell_cmd
)'source'
step (renamed to'extract'
)post_install_step
method inEasyBlock
class (renamed topost_processing_step
)make_module_req_guess
method inEasyBlock
class (replaced withmodule_load_environment
class attribute)run
,prerun
,postrun
,run_async
methods inEasyBlock
classeasybuild.tools.py2vs3
module- Older checksum types
EnvironmentModulesC
orEnvironmentModulesTcl
modules tools- GC3Pie as job backend
- Using
optarch
value without leading dash COMPILER*_FLAGS
attributes inCompiler
class (replaced withCOMPILER*_OPTIONS
)- Easyconfig parameter
modextrapaths_append
(integrated inmodextrapaths
) - Easyconfig parameter
allow_append_abs_path
(integrated inmodextrapaths
) - Easyconfig parameter
allow_prepend_abs_path
(integrated inmodextrapaths
)
Other changes¶
FAQ¶
(coming soon)