Contribution policy¶
(version v0.1.0 - updated 9 Nov 2023)
Note
This policy is subject to change, please check back regularly.
Purpose¶
The purpose of this contribution policy is to provide guidelines for adding software to EESSI.
It informs about what requirements must be met in order for software to be eligible for inclusion in the EESSI software layer.
Requirements¶
The following requirements must be taken into account when adding software to EESSI.
Note that additional restrictions may apply in specific cases that are currently not covered explicitly by this policy.
i) Freely redistributable software¶
Only freely redistributable software can be added to the EESSI repository, and we strongly prefer including only open source software in EESSI.
Make sure that you are aware of the relevant software licenses, and that redistribution of the software you want to add to EESSI is allowed.
For more information about a specific software license, see the SPDX license list.
Note
We intend to automatically verify that this requirement is met, by requiring that the SPDX license identifier is provided for all software included in EESSI.
ii) Built by the bot¶
All software included in the EESSI repository must be built autonomously by our bot .
For more information, see our semi-automatic software installation procedure.
iii) Built and installed with EasyBuild¶
We currently require that all software installations in EESSI are built and installed using EasyBuild.
We strongly prefer that the latest release of EasyBuild that is available at the time is used to add software to EESSI.
The use of --from-pr
and
--include-easyblocks-from-pr
to pull in changes to EasyBuild that are required to make the installation work correctly
in EESSI is allowed, but only if that is strictly required
(that is, if those changes are not included yet in the latest EasyBuild release).
iv) Supported compiler toolchain¶
A compiler toolchain that is still supported by the latest EasyBuild release must be used for building the software.
For more information on supported toolchains, see the EasyBuild toolchain support policy.
v) Recent toolchain versions¶
We strongly prefer adding software to EESSI that was built with a recent compiler toolchain.
When adding software to a particular version of EESSI, you should use a toolchain version that is already installed.
If you would like to see an additional toolchain version being added to a particular version of EESSI, please open a support request for this, and motivate your request.
vi) Recent software versions¶
We strongly prefer adding sufficiently recent software versions to EESSI.
If you would like to add older software versions, please clearly motivate the need for this in your contribution.
vii) CPU targets¶
Software that is added to EESSI should work on all supported CPU targets.
Exceptions to this requirement are allowed if technical problems that can not be resolved with reasonable effort prevent the installation of the software for specific CPU targets.
viii) Testing¶
We should be able to test the software installations via the EESSI test suite, in particular for software applications and user-facing tools.
Ideally one or more tests are available that verify that the software is functionally correct, and that it (still) performs well.
Tests that are run during the software installation procedure as performed by EasyBuild must pass. Exceptions can be made if only a small subset of tests fail for specific CPU targets, as long as these exceptions are tracked and an effort is made to assess the impact of those failing tests.
It should be possible to run a minimal smoke test for the software included in EESSI,
for example using EasyBuild's --sanity-check-only
feature.
Note
The EESSI test suite is still in active development, and currently only has a minimal set of tests available.
When the test suite is more mature, this requirement will be enforced more strictly.
Changelog¶
v0.1.0 (9 Nov 2023)¶
- initial contribution policy