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

Reply via email to