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.
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
extensionsstatement in generated modules is enabled by default (module-extensions) - Using
depends_onfor 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
sourcetofetchstep, to include it with--fetch - Create
libtolib64symlink (and vice versa) before runningpostinstallcmds - Use
sha256as the default checksum type - Use default value
$XDG_CONFIG_DIRSfrom 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_stringmethod inEasyBlockclass - Change default for
change_into_diroption inextract_filefunction to toFalse - Change
Toolchain.get_flagso 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
rpathtoolchain option whensystemtoolchain is used
Changed defaults in easyblocks¶
download_dep_fail,use_pip,sanity_pip_checkenabled by default forPythonPackageeasyblockCMakeMakeeasyblock setsLIBDIRconfiguration option tolibby 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.shandcmd.shscripts - 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-pathor--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-symbolsconfiguration 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
$PYTHONPATHto specify the location of installed Python packages (via--prefer-python-search-path) - Revamp of easyconfig parameter
modextrapaths - Detect Fortran
.modfiles inGCCcoreinstallations - Let
ConfigureMakegeneric easyblock error out on unrecognizedconfigureoptions - Require
download_instructionsfor 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
.yebeasyconfig --accept-eulaconfiguration setting--wait-on-lockconfiguration settingis_generic_easyblockfunction fromeasybuild.framework.easyconfig.easyconfigcopytree,rmtree2functions fromeasybuild.filetoolsfetch_extension_sourcesmethod inEasyBlockclassmod_exists_regex_templateoption inModulesTool.existmethodToolchain.add_dependenciesmethoddisable_templating+default_fallbackoptions inget_easyblock_classfunctionskip_loweroption fromtemplate_constant_dictfunctionuse_git_amoption forapply_patchfunctionskip_symlinksoption foradjust_permissionsfunctionlog_erroroption inwhichfunctiondescroption forsimple_optionfunctiondummytoolchain- 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:
paralleleasyconfig parameterrun_cmdandrun_cmd_qafunctions (replaced withrun_shell_cmd)'source'step (renamed to'extract')post_install_stepmethod inEasyBlockclass (renamed topost_processing_step)make_module_req_guessmethod inEasyBlockclass (replaced withmodule_load_environmentclass attribute)run,prerun,postrun,run_asyncmethods inEasyBlockclasseasybuild.tools.py2vs3module- Older checksum types
EnvironmentModulesCorEnvironmentModulesTclmodules tools- GC3Pie as job backend
- Using
optarchvalue without leading dash COMPILER*_FLAGSattributes inCompilerclass (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)