Skip to content

Commit fe349f1

Browse files
authored
Merge pull request #312 from lexming/archive
update documentation about deprecated and archived easyconfigs
2 parents 77161fe + 7ef3407 commit fe349f1

File tree

6 files changed

+188
-196
lines changed

6 files changed

+188
-196
lines changed

docs/archived-easyconfigs.md

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,66 @@
33
Since EasyBuild v3.0.0, easyconfig files using deprecated (i.e., old and
44
inactive) toolchains are *archived*.
55

6+
Since EasyBuild v5.0.0, archived easyconfig files are transferred to the
7+
[easybuild-easyconfigs-archive](https://github.com/easybuilders/easybuild-easyconfigs-archive)
8+
repository.
9+
610
## Toolchain deprecation {: #archived_easyconfigs_toolchain_deprecation }
711

8-
Once in a blue moon, we review the list of toolchains (& versions) that
9-
are included in EasyBuild.
12+
Support for toolchains included in EasyBuild is defined in our
13+
[support policy on toolchain generations][policy_toolchains].
1014

11-
Easyconfig files that use toolchains that become *deprecated* are then
12-
moved to the *easyconfigs archive*, i.e. the `__archive__` subdirectory
13-
in the `easybuild-easyconfigs` repository (see
14-
<https://github.com/easybuilders/easybuild-easyconfigs/tree/main/easybuild/easyconfigs/__archive__>).
15+
Once a new toolchain generation is released, it will be supported by the
16+
maintainers of Easybuild for a limited period of time. Afterwards, it becomes
17+
deprecated and at some point it will be archived including all easyconfig files
18+
using that toolchain.
1519

1620
### What are deprecated toolchains? {: #archived_easyconfigs_deprecated_toolchains_what }
1721

18-
Toolchains become deprecated if:
19-
20-
- no easyconfig files using that toolchain have been contributed
21-
recently (e.g., in the last year)
22-
- that toolchain is considered to be inactive, after consulting the
23-
EasyBuild community (via mailing list, bi-weekly conf calls)
22+
A deprecated toolchain is a toolchain version or generation that is no longer
23+
recommended for use in production systems.
2424

25-
Deprecating a toolchain implies that all easyconfigs using that
26-
toolchain are moved to the easyconfigs archive, and that they are no
27-
longer included in the EasyBuild regression test. In addition, these
28-
easyconfigs are 'hidden' from plain sight, in the sense that you need to
29-
use `--consider-archived-easyconfigs` to make EasyBuild consider them
30-
when it is looking for easyconfigs (e.g., with `--search` or
31-
`--robot`).
25+
Initially, deprecated toolchains are removed from the EasyBuild regression
26+
tests and new contributions in the form of easyconfigs become restricted.
27+
After a period of time defined in our [support policy][policy_toolchains],
28+
all easyconfig files using that deprecated toolchain are moved to the
29+
*easyconfigs archive*, i.e. the `__archive__` subdirectory in the
30+
[easybuild-easyconfigs-archive](https://github.com/easybuilders/easybuild-easyconfigs-archive)
31+
repository.
3232

33-
This does *not* mean that the support for using these toolchains is
34-
removed from the EasyBuild framework, although not testing them anymore
33+
This does *not* mean that the support for using deprecated toolchains is
34+
removed from the EasyBuild framework, although the lack of testing
3535
may imply that using them may no longer work at some point in time.
3636

37-
For toolchains for which no active versions are available (outside of
38-
the easyconfigs archive), it is possible that they will be reactivated,
39-
if a new toolchain version is contributed.
40-
4137
### Why are toolchains being deprecated? {: #archived_easyconfigs_deprecated_toolchains_why }
4238

43-
- using old toolchains (incl. old compilers and/or libraries) is
44-
likely to become more and more difficult on modern operating systems
45-
- these toolchains put a significant burden on the regression testing
46-
for EasyBuild releases
47-
- easyconfigs using old toolchains are likely to be for old software
48-
versions, which may no longer be relevant anyway
39+
Toolchain generations are deprecated if:
40+
41+
- it is established in our [support policy][policy_toolchains]
42+
- they become inactive, meaning that no easyconfig files using that toolchain
43+
have been contributed for a long period of time (e.g., in the last year)
44+
- they become [obsolete][obsolete_easyconfigs_toolchains], which usually
45+
happens when a toolchain is replaced by some other newer toolchain
4946

50-
## Using `--consider-archived-easyconfigs` {: #archived_easyconfigs_consider }
47+
Inactive toolchains may become re-activated in the future if a new toolchain
48+
version is contributed to `easybuild-easyconfigs`.
5149

52-
To make EasyBuild consider archived easyconfig files, you need to enable
53-
the `--consider-archived-easyconfigs` configuration option:
50+
## Using archived easyconfigs {: #use_archived_easyconfigs }
51+
52+
The archive of easyconfigs is not installed by default. You need to install the
53+
`easybuild-easyconfigs` package with the `archive` extra option in `pip`. This
54+
will pull in the `easybuild-easyconfigs-archive` package, which provides the
55+
contents of the `__archive__` subdirectory.
56+
57+
```shell
58+
python -m pip install easybuild-easyconfigs[archive]
59+
```
60+
61+
Easyconfig files in the archive are *hidden* from plain sight, meaning that the
62+
`eb` command will not use those files by default. You need to use the
63+
`--consider-archived-easyconfigs` configuration option to make EasyBuild look
64+
into the archive when it seeks easyconfigs (e.g., with `--search` or
65+
`--robot`).
5466

5567
``` console
5668
$ eb -S '^goolfc'

docs/common-toolchains.md

Lines changed: 64 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,16 @@ available in [Overview of common toolchains][common_toolchains_overview].
153153

154154
The intention is to revise and update the common toolchains every 6
155155
months: once in late December/early January (version `<year>a`), and
156-
once in late June/early July (version `<year>b`).
156+
once in late June/early July (version `<year>b`). Each one of these
157+
versions is a so-called *toolchain generation*.
157158

158-
This is meant be to be a community effort, in the sense that a proposal
159-
for an updated composition is shared and discussed before it is set in
160-
stone.
159+
Each new version is meant be to be a community effort, in the sense that a
160+
proposal for an updated composition is shared and discussed before it is set in
161+
stone. Usually, discussion about new toolchains takes place initially in the
162+
[toolchain-wg](https://easybuild.slack.com/archives/C02FU5Y5CDT) in Slack, the
163+
bi-weekly conf calls and later in respective pull requests in the
164+
[easybuild-easyconfigs](https://github.com/easybuilders/easybuild-easyconfigs)
165+
repository.
161166

162167
Recent versions of each of the toolchain components are considered,
163168
taking into account stability, performance improvements, added features,
@@ -167,71 +172,69 @@ Moreover, the proposed toolchain compositions are tested extensively,
167172
typically by rebuilding all available easyconfigs that are using the
168173
most recent revision of the common toolchains at that time.
169174

175+
Once a new toolchain generation is released, it will be supported by the
176+
maintainers of Easybuild for a limited period of time. Which is determined by
177+
our [support policy on toolchain][policy_toolchains].
178+
170179
## Overview of common toolchains {: #common_toolchains_overview }
171180

172-
### Component versions in `foss` toolchain {: #common_toolchains_overview_foss }
181+
We support the [last 6 generations][policy_toolchains] of common toolchains.
173182

174-
| `foss` | *date* | *binutils* | *GCC* | *Open MPI* | *FlexiBLAS* | *OpenBLAS* | *LAPACK* | *ScaLAPACK* | *FFTW* |
175-
|---------|----------|------------|--------|------------|-------------|------------|------------------------|-------------|--------|
176-
| `2021a` | May '21 | 2.36.1 | 10.3.0 | 4.1.1 | 3.0.4 | 0.3.15 | (incl. with FlexiBLAS) | 2.1.0 | 3.3.9 |
177-
| `2021b` | Oct '21 | 2.37 | 11.2.0 | 4.1.1 | 3.0.4 | 0.3.18 | (incl. with FlexiBLAS) | 2.1.0 | 3.3.10 |
178-
| `2022a` | Jun '22 | 2.38 | 11.3.0 | 4.1.4 | 3.2.0 | 0.3.20 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
179-
| `2022b` | Dec '22 | 2.39 | 12.2.0 | 4.1.4 | 3.2.1 | 0.3.21 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
180-
| `2023a` | Jun '23 | 2.40 | 12.3.0 | 4.1.5 | 3.3.1 | 0.3.23 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
181-
| `2023b` | Dec '23 | 2.40 | 13.2.0 | 4.1.6 | 3.3.1 | 0.3.24 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
182-
| `2024a` | Aug '24 | 2.42 | 13.3.0 | 5.0.3 | 3.4.4 | 0.3.27 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
183+
Archived toolchains can be found in the
184+
[easybuild-easyconfigs-archive](https://github.com/easybuilders/easybuild-easyconfigs-archive)
185+
repository.
183186

184-
### Component versions in `intel` toolchain {: #common_toolchains_overview_intel }
187+
### Component versions in `foss` toolchain {: #common_toolchains_overview_foss }
185188

186-
| `intel` | *date* | *binutils* | *GCC* | *Intel compilers* | *Intel MPI* | *Intel MKL* |
187-
|---------|----------|------------|--------|-------------------|-------------|-------------|
188-
| `2021a` | May '21 | 2.36.1 | 10.3.0 | 2021.2.0 | 2021.2.0 | 2021.2.0 |
189-
| `2021b` | Oct '21 | 2.37 | 11.2.0 | 2021.4.0 | 2021.4.0 | 2021.4.0 |
190-
| `2022a` | Jun '22 | 2.38 | 11.3.0 | 2022.1.0 | 2021.6.0 | 2022.1.0 |
191-
| `2022b` | Dec '22 | 2.39 | 12.2.0 | 2022.2.1 | 2021.7.1 | 2022.2.1 |
192-
| `2023a` | Jun '23 | 2.40 | 12.3.0 | 2023.1.0 | 2021.9.1 | 2023.1.0 |
193-
| `2023b` | Dec '23 | 2.40 | 13.2.0 | 2023.2.1 | 2021.10.1 | 2023.2.0 |
194-
| `2024a` | Aug '24 | 2.42 | 13.3.0 | 2024.2.0 | 2021.13.0 | 2024.2.0 |
195-
196-
## Overview of common toolchains (deprecated versions) {: #common_toolchains_overview_deprecated }
197-
198-
### Component versions in `foss` toolchain (deprecated versions) {: #common_toolchains_overview_foss_deprecated }
199-
200-
| `foss` | *date* | *binutils* | *GCC* | *Open MPI* | *FlexiBLAS* | *OpenBLAS* | *LAPACK* | *ScaLAPACK* | *FFTW* |
201-
|---------|----------|------------|--------|------------|-------------|------------|------------------------|-------------|-------------|
202-
| `2014b` | Jul '14 | '*(none)* | 4.8.3 | 1.8.1 | *(none)* | 0.2.9 | 3.5.0 | 2.0.2 | 3.3.4 |
203-
| `2015a` | Jan '15 | '*(none)* | 4.9.2 | 1.8.4 | *(none)* | 0.2.13 | 3.5.0 | 2.0.2 | 3.3.4 |
204-
| `2015b` | Jul '15 | 2.25 | 4.9.3 | 1.8.8 | *(none)* | 0.2.14 | 3.5.0 | 2.0.2 | 3.3.4 |
205-
| `2016a` | Jan '16 | 2.25 | 4.9.3 | 1.10.2 | *(none)* | 0.2.15 | 3.6.0 | 2.0.2 | 3.3.4 |
206-
| `2016b` | Jul '16 | 2.26 | 5.4.0 | 1.10.3 | *(none)* | 0.2.18 | 3.6.1 | 2.0.2 | 3.3.4 |
207-
| `2017a` | Jan '17 | 2.27 | 6.3.0 | 2.0.2 | *(none)* | 0.2.19 | 3.7.0 | 2.0.2 | 3.3.6(-pl2) |
208-
| `2017b` | Jul '17 | 2.28 | 6.4.0 | 2.1.1 | *(none)* | 0.2.20\* | (incl. with OpenBLAS) | 2.0.2 | 3.3.6(-pl2) |
209-
| `2018a` | Jan '18 | 2.28 | 6.4.0 | 2.1.2 | *(none)* | 0.2.20\* | (incl. with OpenBLAS) | 2.0.2 | 3.3.7 |
210-
| `2018b` | Jul '18 | 2.30 | 7.3.0 | 3.1.1 | *(none)* | 0.3.1 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
211-
| `2019a` | Jan '19 | 2.31.1 | 8.2.0 | 3.1.3 | *(none)* | 0.3.5 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
212-
| `2019b` | Sept '19 | 2.32 | 8.3.0 | 3.1.4 | *(none)* | 0.3.7 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
213-
| `2020a` | May '20 | 2.34 | 9.3.0 | 4.0.3 | *(none)* | 0.3.9 | (incl. with OpenBLAS) | 2.1.0 | 3.3.8 |
214-
| `2020b` | Nov '20 | 2.35 | 10.2.0 | 4.0.5 | *(none)* | 0.3.12 | (incl. with OpenBLAS) | 2.1.0 | 3.3.8 |
189+
| `foss` | *support* | *date* | *binutils* | *GCC* | *Open MPI* | *FlexiBLAS* | *OpenBLAS* | *LAPACK* | *ScaLAPACK* | *FFTW* |
190+
|---------|------------|----------|------------|--------|------------|-------------|------------|------------------------|-------------|-------------|
191+
| `2024a` | active | Aug '24 | 2.42 | 13.3.0 | 5.0.3 | 3.4.4 | 0.3.27 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
192+
| `2023b` | active | Dec '23 | 2.40 | 13.2.0 | 4.1.6 | 3.3.1 | 0.3.24 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
193+
| `2023a` | active | Jun '23 | 2.40 | 12.3.0 | 4.1.5 | 3.3.1 | 0.3.23 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
194+
| `2022b` | active | Dec '22 | 2.39 | 12.2.0 | 4.1.4 | 3.2.1 | 0.3.21 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
195+
| `2022a` | active | Jun '22 | 2.38 | 11.3.0 | 4.1.4 | 3.2.0 | 0.3.20 | (incl. with FlexiBLAS) | 2.2.0 | 3.3.10 |
196+
| `2021b` | active | Oct '21 | 2.37 | 11.2.0 | 4.1.1 | 3.0.4 | 0.3.18 | (incl. with FlexiBLAS) | 2.1.0 | 3.3.10 |
197+
| `2021a` | deprecated | May '21 | 2.36.1 | 10.3.0 | 4.1.1 | 3.0.4 | 0.3.15 | (incl. with FlexiBLAS) | 2.1.0 | 3.3.9 |
198+
| `2020b` | deprecated | Nov '20 | 2.35 | 10.2.0 | 4.0.5 | *(none)* | 0.3.12 | (incl. with OpenBLAS) | 2.1.0 | 3.3.8 |
199+
| `2020a` | archived | May '20 | 2.34 | 9.3.0 | 4.0.3 | *(none)* | 0.3.9 | (incl. with OpenBLAS) | 2.1.0 | 3.3.8 |
200+
| `2019b` | archived | Sept '19 | 2.32 | 8.3.0 | 3.1.4 | *(none)* | 0.3.7 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
201+
| `2019a` | archived | Jan '19 | 2.31.1 | 8.2.0 | 3.1.3 | *(none)* | 0.3.5 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
202+
| `2018b` | archived | Jul '18 | 2.30 | 7.3.0 | 3.1.1 | *(none)* | 0.3.1 | (incl. with OpenBLAS) | 2.0.2 | 3.3.8 |
203+
| `2018a` | archived | Jan '18 | 2.28 | 6.4.0 | 2.1.2 | *(none)* | 0.2.20\* | (incl. with OpenBLAS) | 2.0.2 | 3.3.7 |
204+
| `2017b` | archived | Jul '17 | 2.28 | 6.4.0 | 2.1.1 | *(none)* | 0.2.20\* | (incl. with OpenBLAS) | 2.0.2 | 3.3.6(-pl2) |
205+
| `2017a` | archived | Jan '17 | 2.27 | 6.3.0 | 2.0.2 | *(none)* | 0.2.19 | 3.7.0 | 2.0.2 | 3.3.6(-pl2) |
206+
| `2016b` | archived | Jul '16 | 2.26 | 5.4.0 | 1.10.3 | *(none)* | 0.2.18 | 3.6.1 | 2.0.2 | 3.3.4 |
207+
| `2016a` | archived | Jan '16 | 2.25 | 4.9.3 | 1.10.2 | *(none)* | 0.2.15 | 3.6.0 | 2.0.2 | 3.3.4 |
208+
| `2015b` | archived | Jul '15 | 2.25 | 4.9.3 | 1.8.8 | *(none)* | 0.2.14 | 3.5.0 | 2.0.2 | 3.3.4 |
209+
| `2015a` | archived | Jan '15 | '*(none)* | 4.9.2 | 1.8.4 | *(none)* | 0.2.13 | 3.5.0 | 2.0.2 | 3.3.4 |
210+
| `2014b` | archived | Jul '14 | '*(none)* | 4.8.3 | 1.8.1 | *(none)* | 0.2.9 | 3.5.0 | 2.0.2 | 3.3.4 |
215211

216212
*(components marked with* \* *were patched)*
217213

218-
### Component versions in `intel` toolchain (deprecated versions) {: #common_toolchains_overview_intel_deprecated }
219-
220-
| `intel` | *date* | *binutils* | *GCC* | *Intel compilers* | *Intel MPI* | *Intel MKL* |
221-
|---------|----------|------------|--------|-------------------|-------------|-------------|
222-
| `2014b` | Jul '14 | '*(none)* | 4.8.3 | 2013.5.192 | 4.1.3.049 | 11.1.2.144 |
223-
| `2015a` | Jan '15 | '*(none)* | 4.9.2 | 2015.1.133 | 5.0.2.044 | 11.2.1.133 |
224-
| `2015b` | Jul '15 | 2.25 | 4.9.3 | 2015.3.187 | 5.0.3.048 | 11.2.3.187 |
225-
| `2016a` | Jan '16 | 2.26 | 4.9.3 | 2016.1.150 | 5.1.2.150 | 11.3.1.150 |
226-
| `2016b` | Jul '16 | 2.26 | 5.4.0 | 2016.3.210 | 5.1.3.181 | 11.3.3.210 |
227-
| `2017a` | Jan '17 | 2.27 | 6.3.0 | 2017.1.132 | 2017.1.132 | 2017.1.132 |
228-
| `2017b` | Jul '17 | 2.28 | 6.4.0 | 2017.4.196 | 2017.3.196 | 2017.3.196 |
229-
| `2018a` | Jan '18 | 2.28 | 6.4.0 | 2018.1.163 | 2018.1.163 | 2018.1.163 |
230-
| `2018b` | Jul '18 | 2.30 | 7.3.0 | 2018.3.222 | 2018.3.222 | 2018.3.222 |
231-
| `2019a` | Jan '19 | 2.31.1 | 8.2.0 | 2019.1.144 | 2018.4.274 | 2019.1.144 |
232-
| `2019b` | Sept '19 | 2.32 | 8.3.0 | 2019.5.281 | 2018.5.288 | 2019.5.281 |
233-
| `2020a` | May '20 | 2.34 | 9.3.0 | 2020.1.217 | 2019.7.217 | 2020.1.217 |
234-
| `2020b` | Nov '20 | 2.35 | 10.2.0 | 2020.4.304 | 2019.9.304 | 2020.4.304 |
214+
### Component versions in `intel` toolchain {: #common_toolchains_overview_intel }
215+
216+
| `intel` | *support* | *date* | *binutils* | *GCC* | *Intel compilers* | *Intel MPI* | *Intel MKL* |
217+
|---------|------------|----------|------------|--------|-------------------|-------------|-------------|
218+
| `2024a` | active | Aug '24 | 2.42 | 13.3.0 | 2024.2.0 | 2021.13.0 | 2024.2.0 |
219+
| `2023b` | active | Dec '23 | 2.40 | 13.2.0 | 2023.2.1 | 2021.10.1 | 2023.2.0 |
220+
| `2023a` | active | Jun '23 | 2.40 | 12.3.0 | 2023.1.0 | 2021.9.1 | 2023.1.0 |
221+
| `2022b` | active | Dec '22 | 2.39 | 12.2.0 | 2022.2.1 | 2021.7.1 | 2022.2.1 |
222+
| `2022a` | active | Jun '22 | 2.38 | 11.3.0 | 2022.1.0 | 2021.6.0 | 2022.1.0 |
223+
| `2021b` | active | Oct '21 | 2.37 | 11.2.0 | 2021.4.0 | 2021.4.0 | 2021.4.0 |
224+
| `2021a` | deprecated | May '21 | 2.36.1 | 10.3.0 | 2021.2.0 | 2021.2.0 | 2021.2.0 |
225+
| `2020b` | deprecated | Nov '20 | 2.35 | 10.2.0 | 2020.4.304 | 2019.9.304 | 2020.4.304 |
226+
| `2020a` | archived | May '20 | 2.34 | 9.3.0 | 2020.1.217 | 2019.7.217 | 2020.1.217 |
227+
| `2019b` | archived | Sept '19 | 2.32 | 8.3.0 | 2019.5.281 | 2018.5.288 | 2019.5.281 |
228+
| `2019a` | archived | Jan '19 | 2.31.1 | 8.2.0 | 2019.1.144 | 2018.4.274 | 2019.1.144 |
229+
| `2018b` | archived | Jul '18 | 2.30 | 7.3.0 | 2018.3.222 | 2018.3.222 | 2018.3.222 |
230+
| `2018a` | archived | Jan '18 | 2.28 | 6.4.0 | 2018.1.163 | 2018.1.163 | 2018.1.163 |
231+
| `2017b` | archived | Jul '17 | 2.28 | 6.4.0 | 2017.4.196 | 2017.3.196 | 2017.3.196 |
232+
| `2017a` | archived | Jan '17 | 2.27 | 6.3.0 | 2017.1.132 | 2017.1.132 | 2017.1.132 |
233+
| `2016b` | archived | Jul '16 | 2.26 | 5.4.0 | 2016.3.210 | 5.1.3.181 | 11.3.3.210 |
234+
| `2016a` | archived | Jan '16 | 2.26 | 4.9.3 | 2016.1.150 | 5.1.2.150 | 11.3.1.150 |
235+
| `2015b` | archived | Jul '15 | 2.25 | 4.9.3 | 2015.3.187 | 5.0.3.048 | 11.2.3.187 |
236+
| `2015a` | archived | Jan '15 | '*(none)* | 4.9.2 | 2015.1.133 | 5.0.2.044 | 11.2.1.133 |
237+
| `2014b` | archived | Jul '14 | '*(none)* | 4.8.3 | 2013.5.192 | 4.1.3.049 | 11.1.2.144 |
235238

236239
## Customizing common toolchains {: #common_toolchains_customizing }
237240

0 commit comments

Comments
 (0)