Dear EasyBuilders,
I'm happy (and also a bit relieved) to announce the release of EasyBuild
version 4.0.0 [1].
We started working on EasyBuild 4.0 last December, and have gradually
worked towards this release alongside maintaining EasyBuild 3.x.
Rather than rushing and potentially damaging our solid reputation of
being very stable, we took our time, and I think it pays off in the end...
It goes without saying that this is the best EasyBuild release yet...
There simply was no way in which we could make this release without
bumping the major version, it's that amazing. Trust me, you'll see.
The flagship feature of this release is that EasyBuild is now
**compatible with both Python 2 and Python 3**. This also motivated the
bump in major version number, since we all know that 2+3=4.
As such, the Python Software Foundation can now go ahead with their
plans to stop maintaining Python 2 starting Jan 1st 2020 [2], there's no
more reason to hold that back further because of EasyBuild...
More information about the compatibility with different Python versions
is available at
https://easybuild.readthedocs.io/en/latest/Python-2-3-compatibility.html .
We took the opportunity to also make some backwards-incompatible and
other somewhat intrusive changes, as the major version bump also indicates.
These changes were kept to a minimum though, and we did what we could to
limit the impact they may have.
Next to the usual release notes [3], a concise overview of the major
changes in EasyBuild v4.0 is available in the EasyBuild documentation:
https://easybuild.readthedocs.io/en/latest/EasyBuild4-overview-of-changes.html
.
Backwards-incompatible changes include:
* --fixed-installdir-naming-scheme is now enabled by default
* some functions, classes and constants have been relocated in
EasyBuild framework (so you may need to change some 'import'
statements), or should be imported from easybuild.base instead (rather
than from the 'vsc' namespace)
* archiving of old easyconfig files or ones that were using a
deprecated toolchain
In addition, the 'dummy' toolchain has been deprecated (yet still
supported for now), and has been replaced by the more aptly named
'system' toolchain.
Highlights of this release include:
* compatibility with Python 3.5+, while keeping Python 2.6 and 2.7
supported;
some functionality from the Python standard library should be
imported from the new easybuild.tools.py2vs3 namespace instead to ensure
compatibility with both Python 2 & 3
* no more required dependencies: setuptools is no longer required to
install or use EasyBuild, and neither are vsc-base or vsc-install;
the parts of vsc-base and vsc-install required by EasyBuild have
been ingested into the EasyBuild framework
* 3 additional software-specific easyblocks, for iccifort, numexpr
and OpenMPI
* 2019b update of the 'foss' and 'intel' common toolchains (see also [4])
* detection of local variables in easyconfig files that do not follow
the recommended naming scheme
* the --robot option no longer silently 'swallows' non-directory
arguments
* bug fixes, updates and enhancements for the CrayToolchain and
PythonPackage generic easyblocks and the OpenFOAM, Paraver, Perl,
PythonPackage and VMD software-specific easyblocks
* added support for 28 new software packages, incl. cytosim, Dsuite,
guenomu, nglview, pyiron, rgdal, ...
* updates for already supported software, incl. dask 2.3.0, FSL
6.0.1, IPython 7.7.0, OpenBLAS 0.3.7, ParaView 5.5.2, Paraver 4.8.1,
Perl 5.30.0, PyTorch 1.2.0, Python 2.7.16 + 3.7.4, QIIME2 2019.7, Qiskit
0.12.0, REMORA 1.8.3, X11 20190717, ...
* various additional bug fixes, updates & enhancements
A detailed overview of all changes is available in the release notes [3].
This brings the total number of supported software packages to 1,669
(slightly less that EasyBuild v3.9.4 since for some previously supported
software we now only have archived easyconfig files).
An up-to-date list of supported software is available at [5].
These changes are the result of a whole bunch of merged contributions,
by 21 different contributors:
- 76 merged pull requests for EasyBuild framework
- 30 merged pull requests for easyblocks
- 170 merged pull requests for easyconfigs
Thanks to everyone who contributed to this release in one way or another!
To upgrade to EasyBuild v4.0.0, there are several options [6].
Two particularly easy options include:
* eb --install-latest-eb-release
* eb --from-pr 8954 # use easyconfig from PR #8954 [7]
(note that the EasyBuild bootstrap script still needs to be updated in
order to support installing EasyBuild v4.0.0, that will be fixed ASAP)
Enjoy!
regards,
Kenneth (a.k.a. boegel)
EasyBuild release manager
[1] https://pypi.org/project/easybuild/4.0.0/
[2] https://www.python.org/doc/sunset-python-2/
[3] https://easybuild.readthedocs.io/en/latest/Release_notes.html
[4] https://easybuild.readthedocs.io/en/latest/Common-toolchains.html
[5]
https://easybuild.readthedocs.io/en/latest/version-specific/Supported_software.html
[6]
https://easybuild.readthedocs.io/en/latest/Installation.html#updating-an-existing-easybuild-installation
[7] https://github.com/easybuilders/easybuild-easyconfigs/pull/8954/files