EasyBuild v4.2.0 is primarily a feature/update release, but also includes various bug fixes.
Highlights of the changes in this release include:
* (experimental) support for `--try-update-deps`, to upgrade dependencies based on available easyconfigs;
* a locking mechanism to prevent two simultaneous installations of the same easyconfig file to the same installation path (see https://easybuild.readthedocs.io/en/latest/Locks.html for more information);
* significant speedup for `-D`/`--dry-run` by avoiding useless '`module show`' calls;
* support for creating an index & using it to speed up searching for easyconfigs (see https://easybuild.readthedocs.io/en/latest/Easyconfigs_index.html for more information);
* additional GitHub integration features:
- support for targeting the easyblocks and framework repositories with `eb --new-pr` (via `--pr-target-repo`)
- support for including easyblocks from an (open) pull request via `--include-easyblocks-from-pr`
- for more information, https://easybuild.readthedocs.io/en/latest/Integration_with_GitHub.html
* probing of external modules for missing metadata that is not provided via an external module metadata file (mostly relevant for integration with the Cray Programming Environment);
* leveraging the [`archspec`](https://github.com/archspec/archspec) Python library (if it is installed) to show the "code name" of the processor in your system in the output of "`eb --show-system-info`" and in test reports uploaded to PRs via `--upload-test-report`;
* support for using templates like `%(cudaver)s` for the CUDA version (if it's included as direct dependency);
* fix for `UnicodeDecodeError` that was raised when reading a patch file that contained non-ASCII characters (if EasyBuild was being run with Python 3);
* fixed filtering of already installed extensions under `--skip` (mostly relevant for Python packages installed as bundles of extensions);
* also support `%(installdir)s` and `%(builddir)s` templates for extensions;
* take into account toolchain hierarchy when dumping easyconfig files, to avoid hardcoded subtoolchains in '`*dependencies`' easyconfig parameters (relevant when using `--try-*` options);
* take into account dependencies marked as external modules when composing template values like `%(pyver)s`;
* deprecate `rmtree2` function provided by `easybuild.tools.filetools` (the `remove_dir` function should be used instead);
* 7 new software-specific easyblocks: BerkeleyGW, CMake, ELSI, LAMMPS, libdrm, Mesa, SEPP;
* updates, enhancements & bug fixes for the `CMakeMake`, `PythonPackage` and `PythonBundle` generic easyblocks;
* updates, enhancements & bug fixes in the software-specific easyblocks for Clang, Ferret, Hypre, impi, libxml2, MATLAB, numexpr, OpenBabel, OpenBLAS, OpenCV, OpenFOAM, ParMETIS, PETSc, Python, QuantumESPRESSO, Qt, ROOT, Siesta, tbb, TensorFlow, TensorRT, Trinity, VMD, XCrySDen;
* added support for no less than 114 (!) new software packages, incl. ADIOS, ArviZ, Bonito, ELSI, FuSeq, GraphMap2, LAMMPS, MedPy, motionSegmentation, OpenAI-Gym, PyMC3, PyRe, PyTorch-Geometric, RAxML-NG, Shapely, STEAK, UQTk, Zip, ...;
* updates for already supported software, incl. Arrow 0.16.0, BUSCO 4.0.5, Clang 10.0.0, ELPA 2019.11.001, Ferret 7.5.0, GCC(core) 9.3.0, GROMACS 2020, GTK+ 3.24.13, Hypre 2.18.2, IQ-TREE 1.6.12, Java 13(.0.2), LLVM 9.0.1 + 10.0.0, likwid 5.0.1, medaka 0.12.0, numba 0.47.0, Octave 5.1.0, OpenBLAS 0.3.8, OpenBabel 3.0.0, OpenCV 4.2.0, OpenFOAM-Extend 4.1-20191120, PETSc 3.12.4, PyTorch 1.4.0, Qhull 2019.1, QuantumESPRESSO 6.5, R-bundle-Bioconductor 3.10, Racon 1.4.10, ReFrame 2.21, SLEPc 3.12.2, SimpleElastix 1.1.0, SimpleITK 1.2.4, TensorFlow 1.15.2 + 2.0.1, Trinity 2.10.0, XGBoost 0.90, xarray 0.15.1, ...;
* update Java/1.8 wrapper to Java/1.8.0_241;
* enhanced Java/11 wrapper to support both x86_64 and POWER;
* fixed source URL for ISL component in `GCCcore` easyconfigs;
* checksum fixes in easyconfigs for R 3.6.0 and 3.6.2;
* revert removal of AVX512 vmovd with 64-bit operands in binutils 2.32 easyconfigs;
* fixed packaging issue that resulted in CVS easyconfigs to be missing from EasyBuild releases;
* updated checksum/homepage in tbb easyconfigs after move to '`oneapi-src`' repository;
* various additional updates, enhancements & bug fixes;
This brings the total number of supported software packages to 1,912!
An up-to-date list of supported software is available at https://easybuild.readthedocs.io/en/latest/version-specific/Supported_software.html .
A detailed overview of all changes, which links to the respective pull requests, is available in the release notes at https://easybuild.readthedocs.io/en/latest/Release_notes.html#easybuild-v4-2-0-april-14th-2020 .
These changes result from various contributions, made by 26 different contributors:
* 56 merged pull requests for EasyBuild framework
* 63 merged pull requests for easyblocks
* 381 merged pull requests for easyconfigs
Thanks to everyone who contributed to this release in one way or another!