A quick overview of toolchains#
A toolchain is a set of software tools, including a compiler, used for installation. EasyBuild encourages the use of common toolchains so that the community is more likely to develop easyconfigs that are compatible with other people’s systems.
For the most standard toolchains we use, GCC is updated every major version and sometimes for a minor version, whilst foss is updated twice yearly (hence a and b). I have avoided installing every toolchain update as it clutters the module system, and toolchains that were released less than a year ago tend to have far fewer easyconfigs available and this creates more work.
IMB toolchain history#
foss version |
Comments |
---|---|
foss-2018b |
the first toolchain I worked with when I started the software stack and many tools are still using it |
foss-2020b |
|
foss-2022b |
the most recent regular toolchain I have worked with |
foss-2023b |
installed only to get antiSMASH 7 to work, but it comes with more recent GCC, Perl and Python |
GCC version |
Comments |
---|---|
GCC-5.4.0 |
I’m surprised anything is using this |
GCC-7.3.0 |
the standard GCC for foss-2018b |
GCC-8.3.0 |
|
GCC-10.2.0 |
the standard GCC for foss-2020b |
GCC-11.2.0 |
for Python 3.9.6 |
GCC-12.2.0 |
the standard GCC for foss-2022b |
GCC-13.2.0 |
the standard GCC for foss-2023b |
Python versions#
Python version |
Comments |
---|---|
Python 2.7.x |
some tools still require Python 2 |
Python 3.6.6 |
|
Python 3.7.0 |
the standard for foss-2018b |
Python 3.7.4 |
|
Python 3.8.6 |
the standard for GCC-10.2.0 (foss-2020b era) |
Python 3.9.6{-bare} |
the standard for GCC 11.2.0 and introduced bare - a ‘no additional packages’ version |
Python 3.10.8 |
the standard for foss-2022b |
Python 3.11.5 |
the standard for foss-2023b |
Sometime after 2020, many python packages starting moving away from using setuptools, instead working with other packaging tools that were not supported by the standard Python 3.8.6 I had installed for foss-2020b, which caused compatibility issues with later packages and this version of Python. In some cases I worked around it, adding necessary toml and flit packaging tools, but eventually I moved on to the foss-2022b ecosystem where these are now included in the standard Python 3.10.8 easyconfig. This period of change is ongoing however, and you may still have issues with the increasing popularity of Rust as a low level language for faster Python packages, and Ninja and Meson as build tools. It should settle down in time.