easybuild-framework 5.1.2__tar.gz → 5.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {easybuild_framework-5.1.2/easybuild_framework.egg-info → easybuild_framework-5.2.0}/PKG-INFO +2 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/RELEASE_NOTES +54 -0
- easybuild_framework-5.2.0/contrib/hooks/bumpOpenSSL.py +26 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/exceptions.py +24 -12
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/fancylogger.py +3 -3
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/generaloption.py +11 -8
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/testing.py +19 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/wrapper.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyblock.py +43 -12
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/default.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/easyconfig.py +9 -7
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/templates.py +35 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/types.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/main.py +41 -15
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/rpath_args.py +13 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/gcc.py +8 -0
- easybuild_framework-5.2.0/easybuild/toolchains/compiler/llvm_compilers.py +193 -0
- easybuild_framework-5.1.2/easybuild/toolchains/compiler/nvhpc.py → easybuild_framework-5.2.0/easybuild/toolchains/compiler/nvidia_compilers.py +5 -6
- easybuild_framework-5.2.0/easybuild/toolchains/lfbf.py +44 -0
- easybuild_framework-5.2.0/easybuild/toolchains/lfoss.py +88 -0
- easybuild_framework-5.2.0/easybuild/toolchains/linalg/nvblas.py +49 -0
- easybuild_framework-5.2.0/easybuild/toolchains/linalg/nvscalapack.py +57 -0
- easybuild_framework-5.2.0/easybuild/toolchains/llvm_compilers.py +45 -0
- easybuild_framework-5.2.0/easybuild/toolchains/lmpflf.py +45 -0
- easybuild_framework-5.2.0/easybuild/toolchains/lmpich.py +41 -0
- easybuild_framework-5.2.0/easybuild/toolchains/lompi.py +60 -0
- easybuild_framework-5.2.0/easybuild/toolchains/mpi/nvhpcx.py +55 -0
- easybuild_framework-5.2.0/easybuild/toolchains/nvhpc.py +47 -0
- easybuild_framework-5.1.2/easybuild/toolchains/nvhpc.py → easybuild_framework-5.2.0/easybuild/toolchains/nvidia_compilers.py +6 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/nvompi.py +5 -3
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/nvompic.py +4 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/nvpsmpi.py +3 -3
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/nvpsmpic.py +4 -4
- easybuild_framework-5.2.0/easybuild/tools/_toml_writer/__init__.py +4 -0
- easybuild_framework-5.2.0/easybuild/tools/_toml_writer/_writer.py +224 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/build_log.py +17 -11
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/config.py +2 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/docs.py +2 -2
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/filetools.py +38 -10
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/github.py +25 -14
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_generator.py +37 -8
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/modules.py +6 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/options.py +14 -10
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/gitrepo.py +3 -3
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/run.py +33 -24
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/systemtools.py +44 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/testing.py +13 -9
- easybuild_framework-5.2.0/easybuild/tools/tomllib/__init__.py +7 -0
- easybuild_framework-5.2.0/easybuild/tools/tomllib/tomli/__init__.py +8 -0
- easybuild_framework-5.2.0/easybuild/tools/tomllib/tomli/_parser.py +772 -0
- easybuild_framework-5.2.0/easybuild/tools/tomllib/tomli/_re.py +111 -0
- easybuild_framework-5.2.0/easybuild/tools/tomllib/tomli/_types.py +10 -0
- easybuild_framework-5.2.0/easybuild/tools/tomllib/tomli/py.typed +1 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/compiler.py +1 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/mpi.py +1 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/toolchain.py +76 -29
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/variables.py +3 -3
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/version.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0/easybuild_framework.egg-info}/PKG-INFO +2 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild_framework.egg-info/SOURCES.txt +25 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/setup.cfg +3 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/setup.py +20 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/build_log.py +22 -14
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/config.py +0 -7
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyblock.py +140 -22
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfig.py +106 -52
- easybuild_framework-5.2.0/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.40-GCCcore-12.3.0.eb +14 -0
- easybuild_framework-5.2.0/test/framework/easyconfigs/test_ecs/g/GCC/GCC-12.3.0.eb +21 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-12.3.0.eb +5 -1
- easybuild_framework-5.2.0/test/framework/easyconfigs/test_ecs/g/gompi/gompi-2023a.eb +20 -0
- easybuild_framework-5.2.0/test/framework/easyconfigs/test_ecs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb +13 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigversion.py +6 -4
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/filetools.py +15 -6
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/general.py +40 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/github.py +50 -35
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/hooks.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/module_generator.py +60 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules.py +3 -5
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/options.py +133 -101
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/repository.py +4 -2
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/run.py +15 -23
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/toy.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/style.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/systemtools.py +80 -25
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/toolchain.py +27 -14
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/toy_build.py +19 -30
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/tweak.py +2 -2
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/utilities.py +44 -19
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/CONTRIBUTING.md +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/LICENSE +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/MANIFEST.in +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/README.rst +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/contrib/hooks/README.rst +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/contrib/hooks/add_delete_configopt.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/contrib/hooks/hpc2n_hooks.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/_deprecated.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/frozendict.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/optcomplete.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/base/rest.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/constants.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/convert.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/format.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/one.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/pyheaderconfigobj.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/two.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/format/version.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/licenses.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/parser.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/style.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/tools.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/tweak.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easystack.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/extension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/extensioneasyblock.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/EasyBuild-reinstall-dev.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/clean_gists.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/createSubmoduleDeps.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/findPythonDeps.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/findUpdatedEcs.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/fix_docs.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/install-EasyBuild-develop.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/install-EasyBuild-sprint.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/install_eb_dep.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/mk_tmpl_easyblock_for.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/rpath_wrapper_template.sh.in +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/scripts/update-EasyBuild-develop.sh +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgmpich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgmpolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgmvapich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgmvolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgompi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/cgoolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/clanggcc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/clang.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/craype.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/cuda.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/fujitsu.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/ibmxl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/intel_compilers.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/inteliccifort.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/pgi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/compiler/systemcompiler.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/craycce.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/craygnu.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/crayintel.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/craypgi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fcc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/ffmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fft/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fft/fftw.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fft/fujitsufftw.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fft/intelfftw.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/foss.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fosscuda.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/fujitsu.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gcc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gcccore.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gcccuda.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gfbf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gimkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gimpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gimpic.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/giolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/giolfc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmacml.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmklc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmpflf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmpich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmpich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmpit.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmpolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmvapich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gmvolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gnu.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/goalf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gobff.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/goblf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gofbf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/golf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/golfc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gomkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gomklc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gompi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gompic.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/goolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/goolfc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gpsmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gpsolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gqacml.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gsmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/gsolf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iccifort.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iccifortcuda.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/ictce.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/ifbf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iibff.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iimkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iimklc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iimpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iimpic.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iiqmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/impich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/impmkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/intel-para.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/intel.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/intel_compilers.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/intelcuda.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iofbf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iomkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iomklc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iompi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iompic.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/ipsmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/iqacml.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/ismkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/acml.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/atlas.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/blacs.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/blis.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/flame.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/flexiblas.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/fujitsussl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/gotoblas.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/intelmkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/lapack.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/libsci.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/openblas.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/linalg/scalapack.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/craympich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/fujitsumpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/intelmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/mpich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/mpich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/mpitrampoline.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/mvapich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/openmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/psmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/qlogicmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/mpi/spectrummpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/nvofbf.py +1 -1
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/pgi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/pmkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/pomkl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/pompi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/system.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/xlcxlf.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/xlmpich.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/xlmpich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/xlmvapich2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/toolchains/xlompi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/asyncprocess.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/build_details.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/configobj.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/apptainer.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/base.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/common.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/docker.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/singularity.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/containers/utils.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/convert.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/deprecated/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/environment.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/hooks.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/include.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/jenkins.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/job/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/job/backend.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/job/gc3pie.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/job/pbs_python.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/job/slurm.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/loose_version.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/categorized_hmns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/categorized_mns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/easybuild_mns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/hierarchical_mns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/migrate_from_eb_to_hmns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/mns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/toolchain.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/module_naming_scheme/utilities.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/multidiff.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/output.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/package_naming_scheme/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/package_naming_scheme/easybuild_deb_friendly_pns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/package_naming_scheme/easybuild_pns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/package_naming_scheme/pns.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/package/utilities.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/parallelbuild.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/py2vs3/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/py2vs3/py3.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/filerepo.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/hgrepo.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/repository.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/repository/svnrepo.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/robot.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/constants.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/fft.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/linalg.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/options.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/toolchainvariables.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/utilities.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/toolchain/variables.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/tools/utilities.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild_framework.egg-info/dependency_links.txt +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild_framework.egg-info/top_level.txt +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/eb_bash_completion.bash +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/eb_bash_completion_local.bash +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/etc/cray_external_modules_metadata.cfg +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/etc/ohpc_external_modules_metadata.cfg +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/minimal_bash_completion.bash +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/optcomplete.bash +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/asyncprocess.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/containers.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/docs.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigformat.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigparser.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/__archive__/i/intel/intel-2012a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.25-GCCcore-4.9.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/b/binutils/binutils-2.26-GCCcore-4.9.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/b/bzip2/bzip2-1.0.6-GCC-4.9.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/CUDA/CUDA-10.1.243-iccifort-2019.4.243.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/CUDA/CUDA-5.5.22-iccifort-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/CUDA/CUDA-5.5.22.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/CUDA/CUDA-9.1.85-GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/CrayCCE/CrayCCE-5.1.29.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/c/cpeGNU/cpeGNU-21.04.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/FFTW/FFTW-3.3.3-GCC-4.8.2-serial.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/FFTW/FFTW-3.3.7-GCC-6.4.0-2.28-serial.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/FFTW/FFTW-3.3.7-gompi-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/FFTW/FFTW-3.3.7-gompic-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/foss/foss-2018a-broken.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/foss/foss-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/f/fosscuda/fosscuda-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-10.2.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.6.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.6.4.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.8.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.8.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-4.9.3-2.26.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCC/GCC-7.3.0-2.30.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GCCcore/GCCcore-4.9.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/GLib/GLib-2.77.1-GCCcore-12.3.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gcccuda/gcccuda-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gettext/gettext-0.21.1-GCCcore-12.3.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gmvapich2/gmvapich2-15.11.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/golf/golf-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/golfc/golfc-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gompi/gompi-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gompi/gompi-2018b.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gompic/gompic-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.4-GCC-4.6.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.4-GCC-4.9.3-2.26.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.4-broken.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.4.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.5-foss-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.5-intel-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-GCC-4.9.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/g/gzip/gzip-1.6-iccifort-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/HPL/HPL-2.1-CrayCCE-5.1.29.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/hwloc/hwloc-1.11.8-GCC-4.6.4.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/hwloc/hwloc-1.11.8-GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/hwloc/hwloc-1.11.8-GCC-7.3.0-2.30.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/hwloc/hwloc-1.6.2-GCC-4.9.3-2.26.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/h/hwloc/hwloc-1.8-gcccuda-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/icc/icc-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iccifort/iccifort-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iccifort/iccifort-2019.4.243.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iccifortcuda/iccifortcuda-2016.1.150.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/ifort/ifort-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/ifort/ifort-2016.1.150.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iimpi/iimpi-2016.01.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iimpi/iimpi-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iimpi/iimpi-2019.08.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/iimpi/iimpi-2021a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/imkl/imkl-11.3.1.150-iimpi-2016.01.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/imkl/imkl-2019.4.243-iimpi-2019.08.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/impi/impi-2019.4.243-iccifort-2019.4.243.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/impi/impi-5.1.2.150-iccifort-2016.1.150-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/impi/impi-5.1.2.150-iccifortcuda-2016.1.150.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/impi/impi-5.1.2.150.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/intel/intel-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/i/intel-compilers/intel-compilers-2021.2.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/l/libtoy/libtoy-0.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/m/MVAPICH2/MVAPICH2-2.2a-GCC-4.9.3-2.25.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/n/ncurses/ncurses-6.4-GCCcore-12.3.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenBLAS/OpenBLAS-0.2.20-GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenBLAS/OpenBLAS-0.2.8-GCC-4.8.2-LAPACK-3.4.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenMPI/OpenMPI-2.1.2-GCC-4.6.4.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenMPI/OpenMPI-2.1.2-GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenMPI/OpenMPI-2.1.2-gcccuda-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/o/OpenMPI/OpenMPI-3.1.1-GCC-7.3.0-2.30.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/p/Python/Python-2.7.10-intel-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/p/Python/Python-2.7.15.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/p/Python/Python-3.7.2.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/SQLite/SQLite-3.8.10.2-GCC-6.4.0-2.28.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/SQLite/SQLite-3.8.10.2-foss-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/SQLite/SQLite-3.8.10.2-gompi-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2018a-OpenBLAS-0.2.20-broken.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/ScaLAPACK/ScaLAPACK-2.0.2-gompi-2018a-OpenBLAS-0.2.20.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/s/ScaLAPACK/ScaLAPACK-2.0.2-gompic-2018a-OpenBLAS-0.2.20.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/checksums.json +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-deps.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-gompi-2018a-test.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-gompi-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-iter.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-multiple.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0-test.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy/toy-0.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/t/toy-app/toy-app-0.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/test_ecs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v1.0/g/GCC/GCC-4.6.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v1.0/g/gzip/gzip-1.4-GCC-4.6.3.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v1.0/g/gzip/gzip-1.4.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v1.0/g/gzip/gzip-1.5-foss-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v1.0/g/gzip/gzip-1.5-intel-2018a.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/GCC.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/doesnotexist.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/foss.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/gzip.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/libpng.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/toy-with-sections.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easyconfigs/v2.0/toy.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystack.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_basic.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_basic_dict.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_easyconfigs_dict.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_easyconfigs_opts.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_easyconfigs_str.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_easyconfigs_with_eb_ext.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_invalid_key.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_easystack_invalid_key2.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/easystacks/test_missing_easyconfigs_key.yaml +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/ebconfigobj.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/environment.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/format_convert.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/include.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/lib.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/license.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CUDA/9.1.85 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Compiler/GCC/6.4.0-2.28/mpi/OpenMPI/2.1.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Compiler/GCC/6.4.0-2.28/numlib/OpenBLAS/0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Compiler/GCC/6.4.0-2.28/system/hwloc/1.11.8 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Core/compiler/GCC/6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Core/toolchain/foss/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/Core/toolchain/gompi/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.2/numlib/FFTW/3.3.7 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CategorizedHMNS/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.2/numlib/ScaLAPACK/2.0.2-OpenBLAS-0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Clang/3.2-GCC-6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ClangGCC/1.1.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Compiler/GCC/6.4.0-2.28/OpenMPI/2.1.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Compiler/GCC/6.4.0-2.28/hwloc/1.11.8 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Compiler/intel/2016.1.150-GCC-4.9.3-2.25/impi/5.1.2.150 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/GCC/4.9.3-2.25 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/GCC/6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/foss/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/gompi/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/icc/2016.1.150-GCC-4.9.3-2.25 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/iccifort/2016.1.150-GCC-4.9.3-2.25 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/ifort/2016.1.150-GCC-4.9.3-2.25 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/Core/iimpi/2016.01 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CrayCCE/2015.06-XC +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CrayGNU/2015.06-XC +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/CrayIntel/2015.06-XC +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/EasyBuild/fake +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW/3.3.10-GCC-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW/3.3.7 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW/3.3.7-cgompi-1.1.6 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW/3.3.7-gompi-2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW/3.3.7-gompi-2018b +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW.MPI/3.3.10-gompi-2023a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FFTW.MPI/3.3.7 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/FlexiBLAS/3.3.1-GCC-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/.modulerc +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/4.6.3 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/4.6.4 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCC/7.3.0-2.30 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCCcore/12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/GCCcore/6.2.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Compiler/GCCcore/12.3.0/GLib/2.77.1 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Compiler/GCCcore/12.3.0/gettext/0.21.1 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Compiler/GCCcore/12.3.0/ncurses/6.4 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Compiler/GCCcore/12.3.0/util-linux/2.39 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Core/GCCcore/12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Core/gettext/0.21.1 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/HierarchicalMNS/Core/ncurses/6.3 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.2/FFTW/3.3.7 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.2/OpenBLAS/0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/MPI/GCC/6.4.0-2.28/OpenMPI/2.1.2/ScaLAPACK/2.0.2-OpenBLAS-0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenBLAS/0.2.20-GCC-6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenBLAS/0.2.20-GCC-7.3.0-2.30 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenBLAS/0.2.20-cgompi-1.1.6 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenBLAS/0.3.23-GCC-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenMPI/.2.1.2-GCC-6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenMPI/2.1.2-ClangGCC-1.1.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenMPI/2.1.2-GCC-6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenMPI/3.1.1-GCC-7.3.0-2.30 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/OpenMPI/4.1.5-GCC-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PGI/16.7-GCC-5.4.0-2.26 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PMIx/4.2.4-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PrgEnv-cray/5.2.40 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PrgEnv-gnu/5.2.40 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PrgEnv-intel/5.2.40 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/PrgEnv-pgi/5.2.40 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ScaLAPACK/2.0.2-cgompi-1.1.6-OpenBLAS-0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ScaLAPACK/2.0.2-gompi-2018a-OpenBLAS-0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ScaLAPACK/2.0.2-gompi-2018b-OpenBLAS-0.2.20 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ScaLAPACK/2.2.0-gompi-2023a-fb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/UCC/1.2.0-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/UCX/1.14.1-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/binutils/2.40-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/bzip2/.1.0.6.lua +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/cce/8.3.12 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/cgompi/1.1.6 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/cgoolf/1.1.6 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/cray-libsci/13.0.4 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/cray-mpich/7.2.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/craype-test +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/foss/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/foss/2018a-FFTW.MPI +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/foss/2018a-brokenFFTW +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/foss/2023a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/fosscuda/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/gcccuda/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/gompi/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/gompi/2018b +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/gompi/2023a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/hwloc/1.11.8-ClangGCC-1.1.2 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/hwloc/1.11.8-GCC-6.4.0-2.28 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/hwloc/1.11.8-GCC-7.3.0-2.30 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/hwloc/2.9.1-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/icc/11.1.073 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/icc/2018.1.163 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/iccifort/2018.1.163 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/iccifort/2019.5.281 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/iccifortcuda/2018b +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/iccifortcuda/2019a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ifort/11.1.073 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/ifort/2018.1.163 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/imkl/10.2.6.038 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/imkl/2018.1.163 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/imkl/2021.4.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/imkl-FFTW/2021.4.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/impi/2018.1.163 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/impi/2021.4.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/impi/4.0.0.028 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel/15.0.1.133 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel/2012a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel/2018a +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel/2021b +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel-compilers/2021.4.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel-compilers/2022.1.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel-compilers/2022.2.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/intel-compilers/2024.0.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/libevent/2.1.12-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/libfabric/1.18.0-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/toy/.0.0-deps +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/toy/0.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modules/zlib/1.2.13-GCCcore-12.3.0 +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/modulestool.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/output.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/package.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/parallelbuild.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/robot.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/b/binutils.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/b/blis.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/b/bzip2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/c/cmake.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/e/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/e/easybuildmeta.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/fftw.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/fftwmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/flex.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/foo.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/foofoo.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/f/freetype.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/g/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/g/gcc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/bar.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/bundle.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/childcustomdummyextension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/childdeprecateddummyextension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/cmakemake.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/cmdcp.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/configuremake.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/customdummyextension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/deprecateddummyextension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/dummyextension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/makecp.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/mesonninja.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/modulerc.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/perlbundle.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/pythonbundle.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/pythonpackage.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/tarball.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/toolchain.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/generic/toy_extension.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/h/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/h/hpl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/l/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/l/libtoy.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/l/libxml2.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/l/llvm.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/m/mesa.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/o/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/o/openblas.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/o/openmpi.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/o/openssl_wrapper.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/p/perl.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/p/python.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/s/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/s/scalapack.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/toy_buggy.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/toy_deprecated.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/toy_eula.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/t/toytoy.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/easyblocks/x/xcrysden.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/tools/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/tools/module_naming_scheme/__init__.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/tools/module_naming_scheme/broken_module_naming_scheme.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/tools/module_naming_scheme/test_module_naming_scheme.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/easybuild/tools/module_naming_scheme/test_module_naming_scheme_more.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/not_an_easyconfig.eb +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/alt_toy/toy-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/alt_toy/toy-0.0_fix-silly-typo-in-printf-statement.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/g/gzip/gzip-1.4.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/l/libtoy/libtoy-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/p/pi/dummy.tgz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/t/toy/extensions/bar-0.0-local.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/t/toy/exts-git.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/extensions/bar-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/extensions/bar-0.0_fix-silly-typo-in-printf-statement.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/extensions/bar-0.0_fix-very-silly-typo-in-printf-statement.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/extensions/barbar-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/extensions/barbar-1.2.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-0.0_add-bug.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-0.0_fix-README.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-0.0_fix-silly-typo-in-printf-statement.patch +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-0.0_gzip.patch.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy/toy-extra.txt +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/sandbox/sources/toy-app/toy-app-0.0.tar.gz +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/suite.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/toolchainvariables.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/type_checking.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/utilities_test.py +0 -0
- {easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/test/framework/variables.py +0 -0
{easybuild_framework-5.1.2/easybuild_framework.egg-info → easybuild_framework-5.2.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: easybuild-framework
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.2.0
|
|
4
4
|
Summary: The EasyBuild framework supports the creation of custom easyblocks that implement support for installing particular (groups of) software packages.
|
|
5
5
|
Home-page: https://easybuild.io
|
|
6
6
|
Author: EasyBuild community
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
24
|
Classifier: Topic :: Software Development :: Build Tools
|
|
24
25
|
License-File: LICENSE
|
|
25
26
|
Dynamic: author
|
|
@@ -4,6 +4,60 @@ For more detailed information, please see the git log.
|
|
|
4
4
|
These release notes can also be consulted at https://docs.easybuild.io/release-notes .
|
|
5
5
|
|
|
6
6
|
|
|
7
|
+
v5.2.0 (23 Dec 2025)
|
|
8
|
+
--------------------
|
|
9
|
+
|
|
10
|
+
feature release
|
|
11
|
+
|
|
12
|
+
- new features:
|
|
13
|
+
- add support for NVHPC toolchain with nvidia-compilers, NVHPCX, NVBLAS, and NVScaLAPACK (#4927, #5073)
|
|
14
|
+
- add support for LLVM-based toolchains `lfoss` and `lmpflf` (+ subtoolchains `llvm-compilers`, `lfbf`, `lompi`, `lmpich`) (#4914)
|
|
15
|
+
- various other enhancements, including:
|
|
16
|
+
- add support for `--disable-robot` (#4781)
|
|
17
|
+
- make specifying `exts_defaultclass` optional (#4800)
|
|
18
|
+
- retry fetching source file for extensions from PyPI with alternative filename (with `-` replaced with `_` in extension name) (#4943)
|
|
19
|
+
- handle `post_install_patches` in GitHub uploads (#5016)
|
|
20
|
+
- take into account alternative name `post_install_patches` when checking checksums (#5017)
|
|
21
|
+
- improve test report formatting (#5018)
|
|
22
|
+
- add `--keep-going` option to fail at the end not at first failing installation + use proper exit code as determined by `main` function (#5022)
|
|
23
|
+
- add templates for source with just version numbers (like `VERSION_TAR_GZ` and `V_VERSION_TAR_GZ`) (#5025)
|
|
24
|
+
- add templates for patch versions (#5028)
|
|
25
|
+
- add `search_path_vars_headers` and `search_path_vars_linker` properties to `Toolchain` (#5031)
|
|
26
|
+
- print total runtime of all builds (#5032)
|
|
27
|
+
- unset `$PROMPT_COMMAND` in `cmd.sh` shell (#5034)
|
|
28
|
+
- add `runtime_only` options to `EasyConfig.dependency_names` method (#5044)
|
|
29
|
+
- remove superflous `module list` call in `ModulesTool.load` (#5046)
|
|
30
|
+
- add backtrace to logged exception (#5047)
|
|
31
|
+
- add support for both `$VAR` and `${VAR}` variable formats in `modextravars` (#5049)
|
|
32
|
+
- show more readable error message when uploading gist or posting comment failed (#5056)
|
|
33
|
+
- set `$___EASYBUILD___` environment variable to '`EasyBuild`' to indicate that you're in an EasyBuild session (#5058)
|
|
34
|
+
- vendor a copy of `tomli` in `easybuild.tools.tomllib` (#5063)
|
|
35
|
+
- allow `f` suffix in CUDA compute capabilities (#5067)
|
|
36
|
+
- vendor copy of tomli-w 1.2.0, use it to implement `dump_toml` function in `easybuild.tools.filetools` (#5071)
|
|
37
|
+
- various bug fixes, including:
|
|
38
|
+
- pass correct `-march` option on RISC-V systems when `optarch` toolchain option is enabled (#5029)
|
|
39
|
+
- pass dependencies to `toolchain.prepare` when setting up build environment for extensions (#5023, #5041)
|
|
40
|
+
- also pick up on toolchain components in `Toolchain._add_dependency_variables` (#5042, #5048)
|
|
41
|
+
- don't append empty component to `start_dir` in `EasyBlock.guess_start_dir` (#5057)
|
|
42
|
+
- enhancements and fixes for test suite:
|
|
43
|
+
- also with test Python 3.14 (#4992)
|
|
44
|
+
- fix `test_gitrepo` in case global Git configuration is not in place (#5013)
|
|
45
|
+
- introduce `saved_env` context manager for restoring environment in tests (#5015)
|
|
46
|
+
- add decorator to ignore PR test failures due to rate limit (#5019)
|
|
47
|
+
- also run tests with Lmod 9.0 (#5026)
|
|
48
|
+
- enable flake8-comprehension code style check and fix issues (#5043)
|
|
49
|
+
- disable trace output by default in tests (#5053)
|
|
50
|
+
- add back CI for Python 3.6 by using `pyenv` (#5064)
|
|
51
|
+
- fix `test_github_det_commit_status` by using more recent commits (#5066)
|
|
52
|
+
- fix ignoring of URLError in `test_copy_ec_from_commit` (#5077)
|
|
53
|
+
- other changes:
|
|
54
|
+
- deprecate support for running EasyBuild with Python < 3.9 (#4966)
|
|
55
|
+
- make command environment of shell commands more discoverable in the log (#4999, #5078)
|
|
56
|
+
- don't show command string again when showing in which folder it runs (#5003)
|
|
57
|
+
- remove escaping when converting `EasyBuildError` to a string (#5009)
|
|
58
|
+
- add example hook for updating OpenSSL 1.x dependency to 3.x (#5035)
|
|
59
|
+
|
|
60
|
+
|
|
7
61
|
v5.1.2 (26 Sept 2025)
|
|
8
62
|
---------------------
|
|
9
63
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from easybuild.framework.easyconfig.constants import EASYCONFIG_CONSTANTS
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def parse_hook(ec, *args, **kwargs):
|
|
5
|
+
"""
|
|
6
|
+
EasyBuild parse hook for EL9+ compatibility
|
|
7
|
+
"""
|
|
8
|
+
# looks like [('zlib', '1.2.13'), ('OpenSSL', '1.1', '', {'name': 'system', 'version': 'system'})]
|
|
9
|
+
raw_deps = ec['dependencies'] if 'dependencies' in ec else []
|
|
10
|
+
|
|
11
|
+
# Check if OpenSSL is in any dependency tuple's first element
|
|
12
|
+
openssl_found = any(dep[0] == 'OpenSSL' for dep in raw_deps)
|
|
13
|
+
|
|
14
|
+
# if found, replace its version - second element in the tuple with '3'.
|
|
15
|
+
if openssl_found:
|
|
16
|
+
print(f"[openssl1->3 hook] OpenSSL found in dependencies of {ec['name']}, replacing with OpenSSL 3")
|
|
17
|
+
for i, dep in enumerate(raw_deps):
|
|
18
|
+
if dep[0] == 'OpenSSL' and dep[1] == '1.1':
|
|
19
|
+
raw_deps[i] = ('OpenSSL', '3', '', EASYCONFIG_CONSTANTS['SYSTEM'][0])
|
|
20
|
+
break
|
|
21
|
+
|
|
22
|
+
else:
|
|
23
|
+
# no need to do anything
|
|
24
|
+
return
|
|
25
|
+
|
|
26
|
+
ec['dependencies'] = raw_deps
|
|
@@ -91,6 +91,7 @@ class LoggedException(Exception):
|
|
|
91
91
|
if args:
|
|
92
92
|
msg = msg % args
|
|
93
93
|
|
|
94
|
+
backtrace = []
|
|
94
95
|
if self.LOC_INFO_TOP_PKG_NAMES is not None:
|
|
95
96
|
# determine correct frame to fetch location information from
|
|
96
97
|
frames_up = 1
|
|
@@ -101,19 +102,30 @@ class LoggedException(Exception):
|
|
|
101
102
|
if self.INCLUDE_LOCATION:
|
|
102
103
|
# figure out where error was raised from
|
|
103
104
|
# current frame: this constructor, one frame above: location where LoggedException was created/raised
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
path_parts[0]
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
frames = inspect.getouterframes(inspect.currentframe())[frames_up:]
|
|
106
|
+
backtrace = []
|
|
107
|
+
for frame in frames:
|
|
108
|
+
# determine short location of Python module where error was raised from,
|
|
109
|
+
# i.e. starting with an entry from LOC_INFO_TOP_PKG_NAMES
|
|
110
|
+
path_parts = frame[1].split(os.path.sep)
|
|
111
|
+
if path_parts[0] == '':
|
|
112
|
+
path_parts[0] = os.path.sep
|
|
113
|
+
try:
|
|
114
|
+
top_idx = max(path_parts.index(n) for n in self.LOC_INFO_TOP_PKG_NAMES if n in path_parts)
|
|
115
|
+
except ValueError:
|
|
116
|
+
# If none found (outside PKG) stop backtrace if we have at least 1 entry
|
|
117
|
+
if backtrace:
|
|
118
|
+
break
|
|
119
|
+
relpath = frame[1]
|
|
120
|
+
else:
|
|
121
|
+
relpath = os.path.join(*path_parts[top_idx:])
|
|
122
|
+
backtrace.append(f'{relpath}:{frame[2]} in {frame[3]}')
|
|
113
123
|
|
|
114
124
|
# include location info at the end of the message
|
|
115
125
|
# for example: "Nope, giving up (at easybuild/tools/somemodule.py:123 in some_function)"
|
|
116
|
-
msg = "
|
|
126
|
+
msg = f"{msg} (at {backtrace[0]})"
|
|
127
|
+
|
|
128
|
+
super().__init__(msg)
|
|
117
129
|
|
|
118
130
|
logger = kwargs.get('logger', None)
|
|
119
131
|
# try to use logger defined in caller's environment
|
|
@@ -123,6 +135,6 @@ class LoggedException(Exception):
|
|
|
123
135
|
if logger is None:
|
|
124
136
|
logger = self.LOGGER_MODULE.getLogger()
|
|
125
137
|
|
|
138
|
+
if backtrace:
|
|
139
|
+
msg += '\nCallstack:\n\t' + '\n\t'.join(backtrace)
|
|
126
140
|
getattr(logger, self.LOGGING_METHOD_NAME)(msg)
|
|
127
|
-
|
|
128
|
-
super().__init__(msg)
|
|
@@ -435,7 +435,7 @@ def thread_name():
|
|
|
435
435
|
"""
|
|
436
436
|
returns the current threads name
|
|
437
437
|
"""
|
|
438
|
-
return threading.
|
|
438
|
+
return threading.current_thread().name
|
|
439
439
|
|
|
440
440
|
|
|
441
441
|
def getLogger(name=None, fname=False, clsname=False, fancyrecord=None):
|
|
@@ -577,8 +577,8 @@ def logToFile(filename, enable=True, filehandler=None, name=None, max_bytes=MAX_
|
|
|
577
577
|
'mode': 'a',
|
|
578
578
|
'maxBytes': max_bytes,
|
|
579
579
|
'backupCount': backup_count,
|
|
580
|
+
'encoding': 'utf-8',
|
|
580
581
|
}
|
|
581
|
-
handleropts['encoding'] = 'utf-8'
|
|
582
582
|
# logging to a file is going to create the file later on, so let's try to be helpful and create the path if needed
|
|
583
583
|
directory = os.path.dirname(filename)
|
|
584
584
|
if not os.path.exists(directory):
|
|
@@ -783,7 +783,7 @@ def getAllExistingLoggers():
|
|
|
783
783
|
"""
|
|
784
784
|
# not-so-well documented manager (in 2.6 and later)
|
|
785
785
|
# return list of (name,logger) tuple
|
|
786
|
-
return
|
|
786
|
+
return list(logging.Logger.manager.loggerDict.items()) + [(logging.root.name, logging.root)]
|
|
787
787
|
|
|
788
788
|
|
|
789
789
|
def getAllNonFancyloggers():
|
|
@@ -185,6 +185,8 @@ class ExtOption(CompleterOption):
|
|
|
185
185
|
- set default to None if no option passed,
|
|
186
186
|
- set to default if option without value passed,
|
|
187
187
|
- set to value if option with value passed
|
|
188
|
+
- store_or_False: Same as store_or_None, but set to False instead of None
|
|
189
|
+
- Additionally supports --disable-
|
|
188
190
|
|
|
189
191
|
Types:
|
|
190
192
|
- strlist, strtuple : convert comma-separated string in a list resp. tuple of strings
|
|
@@ -196,14 +198,15 @@ class ExtOption(CompleterOption):
|
|
|
196
198
|
|
|
197
199
|
ENABLE = 'enable' # do nothing
|
|
198
200
|
DISABLE = 'disable' # inverse action
|
|
201
|
+
STORE_OR_FALSE = 'store_or_False'
|
|
199
202
|
|
|
200
203
|
EXTOPTION_EXTRA_OPTIONS = ('date', 'datetime', 'regex', 'add', 'add_first', 'add_flex',)
|
|
201
|
-
EXTOPTION_STORE_OR = ('store_or_None', 'help') # callback type
|
|
204
|
+
EXTOPTION_STORE_OR = ('store_or_None', STORE_OR_FALSE, 'help') # callback type
|
|
202
205
|
EXTOPTION_LOG = ('store_debuglog', 'store_infolog', 'store_warninglog',)
|
|
203
206
|
EXTOPTION_HELP = ('shorthelp', 'confighelp', 'help')
|
|
204
207
|
|
|
205
208
|
ACTIONS = Option.ACTIONS + EXTOPTION_EXTRA_OPTIONS + EXTOPTION_STORE_OR + EXTOPTION_LOG + EXTOPTION_HELP
|
|
206
|
-
STORE_ACTIONS = Option.STORE_ACTIONS + EXTOPTION_EXTRA_OPTIONS + EXTOPTION_LOG + ('store_or_None',)
|
|
209
|
+
STORE_ACTIONS = Option.STORE_ACTIONS + EXTOPTION_EXTRA_OPTIONS + EXTOPTION_LOG + ('store_or_None', STORE_OR_FALSE)
|
|
207
210
|
TYPED_ACTIONS = Option.TYPED_ACTIONS + EXTOPTION_EXTRA_OPTIONS + EXTOPTION_STORE_OR
|
|
208
211
|
ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + EXTOPTION_EXTRA_OPTIONS
|
|
209
212
|
|
|
@@ -232,7 +235,9 @@ class ExtOption(CompleterOption):
|
|
|
232
235
|
"""Callback for supporting options with optional values."""
|
|
233
236
|
# see http://stackoverflow.com/questions/1229146/parsing-empty-options-in-python
|
|
234
237
|
# ugly code, optparse is crap
|
|
235
|
-
if
|
|
238
|
+
if option.store_or == self.STORE_OR_FALSE and opt_str.startswith("--%s-" % self.DISABLE):
|
|
239
|
+
val = False
|
|
240
|
+
elif parser.rargs and not parser.rargs[0].startswith('-'):
|
|
236
241
|
val = option.check_value(opt_str, parser.rargs.pop(0))
|
|
237
242
|
else:
|
|
238
243
|
val = kwargs.get('orig_default', None)
|
|
@@ -250,11 +255,7 @@ class ExtOption(CompleterOption):
|
|
|
250
255
|
'orig_default': copy.deepcopy(self.default),
|
|
251
256
|
}
|
|
252
257
|
self.action = 'callback' # act as callback
|
|
253
|
-
|
|
254
|
-
if self.store_or in self.EXTOPTION_STORE_OR:
|
|
255
|
-
self.default = None
|
|
256
|
-
else:
|
|
257
|
-
self.log.raiseException("_set_attrs: unknown store_or %s" % self.store_or, exception=ValueError)
|
|
258
|
+
self.default = False if self.action == self.STORE_OR_FALSE else None
|
|
258
259
|
|
|
259
260
|
def process(self, opt, value, values, parser):
|
|
260
261
|
"""Handle option-as-value issues before actually processing option."""
|
|
@@ -1219,6 +1220,8 @@ class GeneralOption:
|
|
|
1219
1220
|
if action in self.parser.option_class.BOOLEAN_ACTIONS:
|
|
1220
1221
|
args.append("--%s-%s" % (self.parser.option_class.ENABLE, opt_name))
|
|
1221
1222
|
args.append("--%s-%s" % (self.parser.option_class.DISABLE, opt_name))
|
|
1223
|
+
elif action == self.parser.option_class.STORE_OR_FALSE:
|
|
1224
|
+
args.append("--%s-%s" % (self.parser.option_class.DISABLE, opt_name))
|
|
1222
1225
|
|
|
1223
1226
|
# force passed_kwargs as final nameds
|
|
1224
1227
|
nameds.update(passed_kwargs)
|
|
@@ -201,6 +201,15 @@ class TestCase(OrigTestCase):
|
|
|
201
201
|
"""Return output captured from stderr until now."""
|
|
202
202
|
return sys.stderr.getvalue()
|
|
203
203
|
|
|
204
|
+
@contextmanager
|
|
205
|
+
def mocked_stdout(self):
|
|
206
|
+
"""Context manager to mock stdout"""
|
|
207
|
+
self.mock_stdout(True)
|
|
208
|
+
try:
|
|
209
|
+
yield sys.stdout
|
|
210
|
+
finally:
|
|
211
|
+
self.mock_stdout(False)
|
|
212
|
+
|
|
204
213
|
@contextmanager
|
|
205
214
|
def mocked_stdout_stderr(self, mock_stdout=True, mock_stderr=True):
|
|
206
215
|
"""Context manager to mock stdout and stderr"""
|
|
@@ -221,6 +230,16 @@ class TestCase(OrigTestCase):
|
|
|
221
230
|
if mock_stderr:
|
|
222
231
|
self.mock_stderr(False)
|
|
223
232
|
|
|
233
|
+
@contextmanager
|
|
234
|
+
def saved_env(self):
|
|
235
|
+
"""Context manager to reset environment to state when it was entered"""
|
|
236
|
+
orig_env = os.environ.copy()
|
|
237
|
+
try:
|
|
238
|
+
yield
|
|
239
|
+
finally:
|
|
240
|
+
os.environ.clear()
|
|
241
|
+
os.environ.update(orig_env)
|
|
242
|
+
|
|
224
243
|
def tearDown(self):
|
|
225
244
|
"""Cleanup after running a test."""
|
|
226
245
|
self.mock_stdout(False)
|
|
@@ -39,7 +39,7 @@ class WrapperMeta(type):
|
|
|
39
39
|
# create proxies for wrapped object's double-underscore attributes
|
|
40
40
|
type.__init__(cls, name, bases, dct)
|
|
41
41
|
if cls.__wraps__:
|
|
42
|
-
ignore =
|
|
42
|
+
ignore = {"__%s__" % n for n in cls.__ignore__.split()}
|
|
43
43
|
for name in dir(cls.__wraps__):
|
|
44
44
|
if name.startswith("__"):
|
|
45
45
|
if name not in ignore and name not in dct:
|
|
@@ -42,6 +42,7 @@ Authors:
|
|
|
42
42
|
* Caspar van Leeuwen (SURF)
|
|
43
43
|
* Jan Andre Reuter (Juelich Supercomputing Centre)
|
|
44
44
|
* Jasper Grimm (UoY)
|
|
45
|
+
* Alex Domingo (Vrije Universiteit Brussel)
|
|
45
46
|
"""
|
|
46
47
|
import concurrent
|
|
47
48
|
import copy
|
|
@@ -730,9 +731,13 @@ class EasyBlock:
|
|
|
730
731
|
|
|
731
732
|
# if no sources are specified via 'sources', fall back to 'source_tmpl'
|
|
732
733
|
src_fn = ext_options.get('source_tmpl')
|
|
734
|
+
is_pypi_source = False
|
|
733
735
|
if src_fn is None:
|
|
734
736
|
# use default template for name of source file if none is specified
|
|
735
737
|
src_fn = '%(name)s-%(version)s.tar.gz'
|
|
738
|
+
if len(source_urls) == 1 and PYPI_PKG_URL_PATTERN in source_urls[0]:
|
|
739
|
+
# allow retrying with alternative download_filename
|
|
740
|
+
is_pypi_source = True
|
|
736
741
|
elif not isinstance(src_fn, str):
|
|
737
742
|
error_msg = "source_tmpl value must be a string! (found value of type '%s'): %s"
|
|
738
743
|
raise EasyBuildError(error_msg, type(src_fn).__name__, src_fn)
|
|
@@ -742,7 +747,17 @@ class EasyBlock:
|
|
|
742
747
|
if fetch_files:
|
|
743
748
|
src_path = self.obtain_file(src_fn, extension=True, urls=source_urls,
|
|
744
749
|
force_download=force_download,
|
|
745
|
-
download_instructions=download_instructions
|
|
750
|
+
download_instructions=download_instructions,
|
|
751
|
+
warning_only=is_pypi_source)
|
|
752
|
+
if not src_path and is_pypi_source:
|
|
753
|
+
# retry with alternative download_filename
|
|
754
|
+
alt_name = resolve_template('%(name)s', template_values).replace("-", "_")
|
|
755
|
+
src_version = resolve_template('%(version)s', template_values)
|
|
756
|
+
alt_download_fn = f'{alt_name}-{src_version}.tar.gz'
|
|
757
|
+
src_path = self.obtain_file(src_fn, extension=True, urls=source_urls,
|
|
758
|
+
force_download=force_download,
|
|
759
|
+
download_instructions=download_instructions,
|
|
760
|
+
download_filename=alt_download_fn)
|
|
746
761
|
if src_path:
|
|
747
762
|
ext_src.update({'src': src_path})
|
|
748
763
|
else:
|
|
@@ -2126,7 +2141,8 @@ class EasyBlock:
|
|
|
2126
2141
|
self.log.debug("List of loaded modules: %s", self.modules_tool.list())
|
|
2127
2142
|
# don't reload modules for toolchain, there is no need
|
|
2128
2143
|
# since they will be loaded already by the fake module
|
|
2129
|
-
ext.toolchain.prepare(onlymod=self.cfg['onlytcmod'],
|
|
2144
|
+
ext.toolchain.prepare(onlymod=self.cfg['onlytcmod'], deps=self.cfg.dependencies(),
|
|
2145
|
+
silent=True, loadmod=False,
|
|
2130
2146
|
rpath_filter_dirs=self.rpath_filter_dirs,
|
|
2131
2147
|
rpath_include_dirs=self.rpath_include_dirs,
|
|
2132
2148
|
rpath_wrappers_dir=self.rpath_wrappers_dir)
|
|
@@ -2288,7 +2304,8 @@ class EasyBlock:
|
|
|
2288
2304
|
with self.fake_module_environment(with_build_deps=True):
|
|
2289
2305
|
# don't reload modules for toolchain, there is no
|
|
2290
2306
|
# need since they will be loaded by the fake module
|
|
2291
|
-
ext.toolchain.prepare(onlymod=self.cfg['onlytcmod'],
|
|
2307
|
+
ext.toolchain.prepare(onlymod=self.cfg['onlytcmod'], deps=self.cfg.dependencies(),
|
|
2308
|
+
silent=True, loadmod=False,
|
|
2292
2309
|
rpath_filter_dirs=self.rpath_filter_dirs,
|
|
2293
2310
|
rpath_include_dirs=self.rpath_include_dirs,
|
|
2294
2311
|
rpath_wrappers_dir=self.rpath_wrappers_dir)
|
|
@@ -2366,7 +2383,7 @@ class EasyBlock:
|
|
|
2366
2383
|
# make sure start_dir subdir exists (cfr. check below)
|
|
2367
2384
|
mkdir(os.path.join(topdir, start_dir), parents=True)
|
|
2368
2385
|
|
|
2369
|
-
abs_start_dir = os.path.join(topdir, start_dir)
|
|
2386
|
+
abs_start_dir = os.path.join(topdir, start_dir) if start_dir else topdir
|
|
2370
2387
|
if topdir.endswith(start_dir) and not os.path.exists(abs_start_dir):
|
|
2371
2388
|
self.cfg['start_dir'] = topdir
|
|
2372
2389
|
else:
|
|
@@ -2743,7 +2760,8 @@ class EasyBlock:
|
|
|
2743
2760
|
try:
|
|
2744
2761
|
sources = ent.get('sources', [])
|
|
2745
2762
|
data_sources = ent.get('data_sources', [])
|
|
2746
|
-
patches = ent.get('patches', []) + ent.get('
|
|
2763
|
+
patches = ent.get('patches', []) + ent.get(ALTERNATIVE_EASYCONFIG_PARAMETERS['post_install_patches'],
|
|
2764
|
+
ent.get('post_install_patches', []))
|
|
2747
2765
|
checksums = ent.get('checksums', [])
|
|
2748
2766
|
except EasyBuildError:
|
|
2749
2767
|
if isinstance(ent, EasyConfig):
|
|
@@ -3009,9 +3027,21 @@ class EasyBlock:
|
|
|
3009
3027
|
self.modules_tool.load(extra_modules)
|
|
3010
3028
|
|
|
3011
3029
|
# Setup CUDA cache if required. If we don't do this, CUDA will use the $HOME for its cache files
|
|
3012
|
-
if get_software_root('CUDA') or get_software_root('CUDAcore'):
|
|
3030
|
+
if get_software_root('CUDA') or get_software_root('CUDAcore') or get_software_root('nvidia-compilers'):
|
|
3013
3031
|
self.set_up_cuda_cache()
|
|
3014
3032
|
|
|
3033
|
+
# Set CUDA compute capabilities from default value in nvidia-compiler/NVHPC toolchains
|
|
3034
|
+
if get_software_root('nvidia-compilers'):
|
|
3035
|
+
cuda_cc_cfg = self.cfg.get('cuda_compute_capabilities')
|
|
3036
|
+
cuda_cc_opt = build_option('cuda_compute_capabilities')
|
|
3037
|
+
cuda_cc_nvhpc = os.getenv('EBNVHPCCUDACC', None)
|
|
3038
|
+
if not cuda_cc_cfg and not cuda_cc_opt and cuda_cc_nvhpc:
|
|
3039
|
+
self.cfg['cuda_compute_capabilities'] = cuda_cc_nvhpc.split(',')
|
|
3040
|
+
self.log.info(
|
|
3041
|
+
"Updated empty 'cuda_compute_capabilities' option with default CUDA compute capability "
|
|
3042
|
+
f"defined in nvidia-compilers: {self.cfg['cuda_compute_capabilities']}"
|
|
3043
|
+
)
|
|
3044
|
+
|
|
3015
3045
|
# guess directory to start configure/build/install process in, and move there
|
|
3016
3046
|
if start_dir:
|
|
3017
3047
|
self.guess_start_dir()
|
|
@@ -3076,8 +3106,10 @@ class EasyBlock:
|
|
|
3076
3106
|
# proper way: derive module path from specified class name
|
|
3077
3107
|
default_class = exts_defaultclass
|
|
3078
3108
|
default_class_modpath = get_module_path(default_class, generic=True)
|
|
3109
|
+
elif exts_defaultclass is None:
|
|
3110
|
+
default_class = default_class_modpath = None
|
|
3079
3111
|
else:
|
|
3080
|
-
error_msg = "Improper default extension class specification, should be string: %s (%s)"
|
|
3112
|
+
error_msg = "Improper default extension class specification, should be string or None: %s (%s)"
|
|
3081
3113
|
raise EasyBuildError(error_msg, exts_defaultclass, type(exts_defaultclass))
|
|
3082
3114
|
|
|
3083
3115
|
exts_cnt = len(self.exts)
|
|
@@ -3129,8 +3161,11 @@ class EasyBlock:
|
|
|
3129
3161
|
"for extension %s: %s",
|
|
3130
3162
|
class_name, mod_path, ext_name, err)
|
|
3131
3163
|
|
|
3132
|
-
# fallback attempt: use default class
|
|
3164
|
+
# fallback attempt: use default class if any
|
|
3133
3165
|
if inst is None:
|
|
3166
|
+
if not default_class:
|
|
3167
|
+
raise EasyBuildError("ERROR: No default extension class set for %s and no explicit or custom "
|
|
3168
|
+
"easyblock found for extension %s", self.name, ext_name)
|
|
3134
3169
|
try:
|
|
3135
3170
|
cls = get_class_for(default_class_modpath, default_class)
|
|
3136
3171
|
self.log.debug("Obtained class %s for installing extension %s", cls, ext_name)
|
|
@@ -3170,10 +3205,6 @@ class EasyBlock:
|
|
|
3170
3205
|
|
|
3171
3206
|
self.prepare_for_extensions()
|
|
3172
3207
|
|
|
3173
|
-
# we really need a default class
|
|
3174
|
-
if not self.cfg['exts_defaultclass'] and install:
|
|
3175
|
-
raise EasyBuildError("ERROR: No default extension class set for %s", self.name)
|
|
3176
|
-
|
|
3177
3208
|
if fetch:
|
|
3178
3209
|
self.update_exts_progress_bar("fetching extension sources/patches")
|
|
3179
3210
|
self.exts = self.collect_exts_file_info(fetch_files=True)
|
{easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/default.py
RENAMED
|
@@ -189,7 +189,7 @@ DEFAULT_CONFIG = {
|
|
|
189
189
|
# EXTENSIONS easyconfig parameters
|
|
190
190
|
'exts_download_dep_fail': [False, "Fail if downloaded dependencies are detected for extensions", EXTENSIONS],
|
|
191
191
|
'exts_classmap': [{}, "Map of extension name to class for handling build and installation.", EXTENSIONS],
|
|
192
|
-
'exts_defaultclass': [None, "
|
|
192
|
+
'exts_defaultclass': [None, "Name of default easyblock for extensions", EXTENSIONS],
|
|
193
193
|
'exts_default_options': [{}, "List of default options for extensions", EXTENSIONS],
|
|
194
194
|
'exts_filter': [None, ("Extension filter details: template for cmd and input to cmd "
|
|
195
195
|
"(templates for ext_name, ext_version and src)."), EXTENSIONS],
|
{easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/easyconfig.py
RENAMED
|
@@ -261,7 +261,7 @@ def det_subtoolchain_version(current_tc, subtoolchain_names, optional_toolchains
|
|
|
261
261
|
|
|
262
262
|
for subtoolchain_name in subtoolchain_names:
|
|
263
263
|
|
|
264
|
-
uniq_subtc_versions =
|
|
264
|
+
uniq_subtc_versions = {subtc['version'] for subtc in cands if subtc['name'] == subtoolchain_name}
|
|
265
265
|
|
|
266
266
|
# system toolchain: bottom of the hierarchy
|
|
267
267
|
if is_system_toolchain(subtoolchain_name):
|
|
@@ -318,8 +318,8 @@ def get_toolchain_hierarchy(parent_toolchain, incl_capabilities=False):
|
|
|
318
318
|
# obtain list of all possible subtoolchains
|
|
319
319
|
_, all_tc_classes = search_toolchain('')
|
|
320
320
|
subtoolchains = {tc_class.NAME: getattr(tc_class, 'SUBTOOLCHAIN', None) for tc_class in all_tc_classes}
|
|
321
|
-
optional_toolchains =
|
|
322
|
-
composite_toolchains =
|
|
321
|
+
optional_toolchains = {tc_class.NAME for tc_class in all_tc_classes if getattr(tc_class, 'OPTIONAL', False)}
|
|
322
|
+
composite_toolchains = {tc_class.NAME for tc_class in all_tc_classes if len(tc_class.__bases__) > 1}
|
|
323
323
|
|
|
324
324
|
# the parent toolchain is at the top of the hierarchy,
|
|
325
325
|
# we need a copy so that adding capabilities (below) doesn't affect the original object
|
|
@@ -682,7 +682,7 @@ class EasyConfig:
|
|
|
682
682
|
# For easyconfig parameters that are dictionaries, input value must also be a dictionary
|
|
683
683
|
if isinstance(self[key], dict) and not isinstance(value, dict):
|
|
684
684
|
msg = "Can't update configuration value for %s, because the attempted"
|
|
685
|
-
msg += "update value (%s), is not a dictionary (type: %s)."
|
|
685
|
+
msg += " update value (%s), is not a dictionary (type: %s)."
|
|
686
686
|
raise EasyBuildError(msg, key, value, type(value))
|
|
687
687
|
|
|
688
688
|
# Grab current parameter value so we can modify it
|
|
@@ -1219,14 +1219,16 @@ class EasyConfig:
|
|
|
1219
1219
|
|
|
1220
1220
|
return retained_deps
|
|
1221
1221
|
|
|
1222
|
-
def dependency_names(self, build_only=False):
|
|
1222
|
+
def dependency_names(self, build_only=False, runtime_only=False):
|
|
1223
1223
|
"""
|
|
1224
1224
|
Return a set of names of all (direct) dependencies after filtering.
|
|
1225
1225
|
Iterable builddependencies are flattened when not iterating.
|
|
1226
1226
|
|
|
1227
1227
|
:param build_only: only return build dependencies, discard others
|
|
1228
|
+
:param runtime_only: only return runtime dependencies, discard others
|
|
1228
1229
|
"""
|
|
1229
|
-
return {dep['name'] for dep in self.dependencies(build_only=build_only)
|
|
1230
|
+
return {dep['name'] for dep in self.dependencies(build_only=build_only, runtime_only=runtime_only)
|
|
1231
|
+
if dep['name']}
|
|
1230
1232
|
|
|
1231
1233
|
def builddependencies(self):
|
|
1232
1234
|
"""
|
|
@@ -1279,7 +1281,7 @@ class EasyConfig:
|
|
|
1279
1281
|
else:
|
|
1280
1282
|
self.log.debug("Found easyconfig for toolchain %s version %s: %s", tcname, tcversion, tc_ecfile)
|
|
1281
1283
|
tc_ec = process_easyconfig(tc_ecfile)[0]
|
|
1282
|
-
tcdeps = tc_ec['ec'].dependencies()
|
|
1284
|
+
tcdeps = tc_ec['ec'].dependencies(runtime_only=True)
|
|
1283
1285
|
self.log.debug("Toolchain dependencies based on easyconfig: %s", tcdeps)
|
|
1284
1286
|
|
|
1285
1287
|
self._toolchain = get_toolchain(self['toolchain'], self['toolchainopts'],
|
{easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/templates.py
RENAMED
|
@@ -33,14 +33,14 @@ Authors:
|
|
|
33
33
|
* Fotis Georgatos (Uni.Lu, NTUA)
|
|
34
34
|
* Kenneth Hoste (Ghent University)
|
|
35
35
|
"""
|
|
36
|
-
import
|
|
36
|
+
import os
|
|
37
37
|
import platform
|
|
38
|
+
import re
|
|
38
39
|
|
|
39
40
|
from easybuild.base import fancylogger
|
|
40
41
|
from easybuild.tools.build_log import EasyBuildError
|
|
41
|
-
from easybuild.tools.systemtools import get_shared_lib_ext, pick_dep_version
|
|
42
42
|
from easybuild.tools.config import build_option
|
|
43
|
-
|
|
43
|
+
from easybuild.tools.systemtools import get_shared_lib_ext, pick_dep_version
|
|
44
44
|
|
|
45
45
|
_log = fancylogger.getLogger('easyconfig.templates', fname=False)
|
|
46
46
|
|
|
@@ -50,9 +50,12 @@ TEMPLATE_NAMES_EASYCONFIG = {
|
|
|
50
50
|
'nameletter': 'First letter of software name',
|
|
51
51
|
'toolchain_name': 'Toolchain name',
|
|
52
52
|
'toolchain_version': 'Toolchain version',
|
|
53
|
+
'version_major_minor_patch': "Major.Minor.Patch version",
|
|
53
54
|
'version_major_minor': "Major.Minor version",
|
|
54
55
|
'version_major': 'Major version',
|
|
56
|
+
'version_minor_patch': 'Minor.Patch version',
|
|
55
57
|
'version_minor': 'Minor version',
|
|
58
|
+
'version_patch': 'Patch version',
|
|
56
59
|
}
|
|
57
60
|
# derived from EasyConfig._config
|
|
58
61
|
TEMPLATE_NAMES_CONFIG = [
|
|
@@ -85,6 +88,10 @@ TEMPLATE_SOFTWARE_VERSIONS = {
|
|
|
85
88
|
'Python': 'py',
|
|
86
89
|
'R': 'r',
|
|
87
90
|
}
|
|
91
|
+
TEMPLATE_CUDA_VERSION_NVHPC = [
|
|
92
|
+
'nvidia_compilers',
|
|
93
|
+
'NVHPC',
|
|
94
|
+
]
|
|
88
95
|
# template values which are only generated dynamically
|
|
89
96
|
TEMPLATE_NAMES_DYNAMIC = {
|
|
90
97
|
'arch': 'System architecture (e.g. x86_64, aarch64, ppc64le, ...)',
|
|
@@ -97,6 +104,7 @@ TEMPLATE_NAMES_DYNAMIC = {
|
|
|
97
104
|
"--cuda-compute-capabilities configuration option or "
|
|
98
105
|
"via cuda_compute_capabilities easyconfig parameter",
|
|
99
106
|
'cuda_cc_cmake': 'List of CUDA compute capabilities suitable for use with $CUDAARCHS in CMake 3.18+',
|
|
107
|
+
'cuda_cc_nvhpc': 'List of CUDA compute capabilities suitable for use with -gpu option in NVHPC compilers',
|
|
100
108
|
'cuda_cc_space_sep': 'Space-separated list of CUDA compute capabilities',
|
|
101
109
|
'cuda_cc_space_sep_no_period':
|
|
102
110
|
"Space-separated list of CUDA compute capabilities, without periods (e.g. '80 90').",
|
|
@@ -204,9 +212,12 @@ ALTERNATIVE_EASYCONFIG_TEMPLATES = {
|
|
|
204
212
|
'r_short_ver': 'rshortver',
|
|
205
213
|
'r_ver': 'rver',
|
|
206
214
|
'toolchain_ver': 'toolchain_version',
|
|
215
|
+
'ver_maj_min_patch': 'version_major_minor_patch',
|
|
207
216
|
'ver_maj_min': 'version_major_minor',
|
|
208
217
|
'ver_maj': 'version_major',
|
|
218
|
+
'ver_min_patch': 'version_minor_patch',
|
|
209
219
|
'ver_min': 'version_minor',
|
|
220
|
+
'ver_patch': 'version_patch',
|
|
210
221
|
'version_prefix': 'versionprefix',
|
|
211
222
|
'version_suffix': 'versionsuffix',
|
|
212
223
|
}
|
|
@@ -270,7 +281,10 @@ for ext in EXTENSIONS:
|
|
|
270
281
|
TEMPLATE_CONSTANTS.update({
|
|
271
282
|
'SOURCE_%s' % suffix: ('%(name)s-%(version)s.' + ext, "Source .%s bundle" % ext),
|
|
272
283
|
'SOURCELOWER_%s' % suffix: ('%(namelower)s-%(version)s.' + ext, "Source .%s bundle with lowercase name" % ext),
|
|
284
|
+
'VERSION_%s' % suffix: ('%(version)s.' + ext, "Source filename <version>.%s common at GitHub" % ext),
|
|
285
|
+
'V_VERSION_%s' % suffix: ('v%(version)s.' + ext, "Source filename v<version>.%s common at GitHub" % ext),
|
|
273
286
|
})
|
|
287
|
+
|
|
274
288
|
for pyver in ('py2.py3', 'py2', 'py3'):
|
|
275
289
|
if pyver == 'py2.py3':
|
|
276
290
|
desc = 'Python 2 & Python 3'
|
|
@@ -343,11 +357,16 @@ def template_constant_dict(config, ignore=None, toolchain=None):
|
|
|
343
357
|
minor = version[1]
|
|
344
358
|
template_values['version_minor'] = minor
|
|
345
359
|
template_values['version_major_minor'] = '.'.join([major, minor])
|
|
360
|
+
if len(version) > 2:
|
|
361
|
+
patch = version[2]
|
|
362
|
+
template_values['version_patch'] = patch
|
|
363
|
+
template_values['version_minor_patch'] = '.'.join([minor, patch])
|
|
364
|
+
template_values['version_major_minor_patch'] = '.'.join([major, minor, patch])
|
|
346
365
|
except IndexError:
|
|
347
366
|
# if there is no minor version, skip it
|
|
348
367
|
pass
|
|
349
368
|
# only go through this once
|
|
350
|
-
ignore.extend(
|
|
369
|
+
ignore.extend(name for name in TEMPLATE_NAMES_EASYCONFIG if name.startswith('version_'))
|
|
351
370
|
|
|
352
371
|
elif name.endswith('letter'):
|
|
353
372
|
# parse first letters
|
|
@@ -429,6 +448,17 @@ def template_constant_dict(config, ignore=None, toolchain=None):
|
|
|
429
448
|
template_values['%sminver' % pref] = dep_version_parts[1]
|
|
430
449
|
template_values['%sshortver' % pref] = '.'.join(dep_version_parts[:2])
|
|
431
450
|
|
|
451
|
+
# step 2.1: CUDA templates in NVHPC
|
|
452
|
+
if toolchain is not None and hasattr(toolchain, 'name') and toolchain.name in TEMPLATE_CUDA_VERSION_NVHPC:
|
|
453
|
+
cuda_version = os.getenv("EBNVHPCCUDAVER", None)
|
|
454
|
+
if cuda_version:
|
|
455
|
+
cuda_version_parts = cuda_version.split('.')
|
|
456
|
+
template_values['cudaver'] = cuda_version
|
|
457
|
+
template_values['cudamajver'] = cuda_version_parts[0]
|
|
458
|
+
if len(cuda_version_parts) > 1:
|
|
459
|
+
template_values['cudaminver'] = cuda_version_parts[1]
|
|
460
|
+
template_values['cudashortver'] = '.'.join(cuda_version_parts[:2])
|
|
461
|
+
|
|
432
462
|
# step 3: add remaining from config
|
|
433
463
|
for name in TEMPLATE_NAMES_CONFIG:
|
|
434
464
|
if name in ignore:
|
|
@@ -475,6 +505,7 @@ def template_constant_dict(config, ignore=None, toolchain=None):
|
|
|
475
505
|
template_values['cuda_cc_space_sep_no_period'] = ' '.join(cc.replace('.', '') for cc in cuda_cc)
|
|
476
506
|
template_values['cuda_cc_semicolon_sep'] = ';'.join(cuda_cc)
|
|
477
507
|
template_values['cuda_cc_cmake'] = ';'.join(cc.replace('.', '') for cc in cuda_cc)
|
|
508
|
+
template_values['cuda_cc_nvhpc'] = ','.join(f"cc{cc.replace('.', '')}" for cc in cuda_cc)
|
|
478
509
|
int_values = [cc.replace('.', '') for cc in cuda_cc]
|
|
479
510
|
template_values['cuda_int_comma_sep'] = ','.join(int_values)
|
|
480
511
|
template_values['cuda_int_space_sep'] = ' '.join(int_values)
|
{easybuild_framework-5.1.2 → easybuild_framework-5.2.0}/easybuild/framework/easyconfig/types.py
RENAMED
|
@@ -541,7 +541,7 @@ def _to_checksum(checksum, list_level=0, allow_dict=True):
|
|
|
541
541
|
# When we already are in a tuple no further recursion is allowed -> set list_level very high
|
|
542
542
|
return tuple(_to_checksum(x, list_level=99, allow_dict=allow_dict) for x in checksum)
|
|
543
543
|
else:
|
|
544
|
-
return
|
|
544
|
+
return [_to_checksum(x, list_level=list_level+1, allow_dict=allow_dict) for x in checksum]
|
|
545
545
|
elif isinstance(checksum, dict) and allow_dict:
|
|
546
546
|
return {key: _to_checksum(value, allow_dict=False) for key, value in checksum.items()}
|
|
547
547
|
|