Beta release 5.0.0beta1
(24 Dec 2024)¶
Danger
This is an older beta release of EasyBuild v5.0.0, which should no longer be used.
Use EasyBuild v5.0.0beta2 instead.
Warning
This is an early pre-release that includes the majority of changes that will be included in EasyBuild v5.0.0.
It can be used for testing and providing feedback (reporting bugs or unexpected behaviour, etc.).
Additional changes can still be made before the release of EasyBuild v5.0.0, see below.
Highlighted changes¶
EasyBuild v5.0.0 will include some significant changes compared to EasyBuild v4.x.
Some of those changes are internal improvements and will be invisible to most users, but many others may need special attention as they incorporate new features, changes of behavior or deprecations that can impact your workflow.
This includes (but is not limited to):
- Python >= 3.6 is required to run EasyBuild (Python >= 3.9 is recommended);
- using Lmod >= v8.0 or Environment Modules >= v4.3.0 is required as modules tool (check with
module --version
); - a new function named
run_shell_cmd
is used to run shell commands likecmake
,make
,pip
, etc. (more info here); - the default setting of some configuration options has changed:
- RPATH linking is used by default (can be disabled with
--disable-rpath
); - trace output is enabled by default (can be disabled with
--disable-trace
); - Lua module files generated by EasyBuild will by default:
- use
depends_on
rather thanload
(can be disabled with--disable-module-depends-on
); - include an
extensions
statement to expose the list of included extensions (can be disabled with--disable-module-extensions
);
- use
- reproducible creation of source tarballs from Git repositories via
git_config
insources
easyconfig parameter (when using Python >= 3.9); - the
use_pip
andsanity_pip_check
custom easyconfig parameters used by thePythonPackage
andPythonBundle
easyblocks are enabled by default;
- RPATH linking is used by default (can be disabled with
- some functionality has been deprecated, including the use of the
run_cmd
andrun_cmd_qa
functions (run_shell_cmd
should be used instead); - easyconfigs using an old unsupported toolchain have been moved to the easyconfigs archive;
Installation¶
To install the initial beta release of EasyBuild v5.0.0 (5.0.0beta1
), you can either:
-
use the provided easyconfig file, for example using:
eb --from-pr 22049
-
install into a Python virtual environment:
venv_name='venv-eb-5.0.0beta1' python3 -m venv ${venv_name} unset PYTHONPATH source ${venv_name}/bin/activate tag='5.0.0beta1' pip install https://github.com/easybuilders/easybuild-framework/archive/easybuild-framework-v${tag}.tar.gz pip install https://github.com/easybuilders/easybuild-easyblocks/archive/easybuild-easyblocks-v${tag}.tar.gz pip install https://github.com/easybuilders/easybuild-easyconfigs/archive/easybuild-easyconfigs-v${tag}.tar.gz # optional dependencies for EasyBuild pip install archspec rich
Planned additional changes¶
A couple of additional changes that will be included in EasyBuild v5.0.0 are still a work-in-progress, including (but not limited to):
- deprecating of
module_req_guess
method (see framework PR #4653); - deprecating of
parallel
easyconfig parameter (see framework PR #4580);
For a complete overview of planned changes, see the GitHub dashboard for EasyBuild v5.0.