From 6fbddc716de7c036f03dc8ed1a2c53a6a641e524 Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 28 Nov 2023 08:53:27 +0100 Subject: [PATCH 1/5] {2023.06}[foss/2023a] SciPy-bundle v2023.07 --- .../2023.06/eessi-2023.06-eb-4.8.2-2023a.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.8.2-2023a.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.8.2-2023a.yml index a967019b80..e685785f16 100644 --- a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.8.2-2023a.yml +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.8.2-2023a.yml @@ -6,3 +6,9 @@ easyconfigs: options: include-easyblocks-from-pr: 3038 - foss-2023a.eb + - pybind11-2.11.1-GCCcore-12.3.0.eb: + # avoid indirect dependency on old CMake version built with GCCcore/10.2.0 via Catch2 build dependency; + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/19270 + options: + from-pr: 19270 + - SciPy-bundle-2023.07-gfbf-2023a.eb From 22444eceea9fa346460f9d448c30a0a5e548793e Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 28 Nov 2023 11:17:35 +0100 Subject: [PATCH 2/5] update hook to also ignore failing tests on neoverse_v1 for SciPy-bundle 2023.07 --- eb_hooks.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 8d05523c2b..b0c5fafea0 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -314,11 +314,19 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): """ - Pre-test hook for SciPy-bundle: skip failing tests for SciPy-bundle 2021.10 (currently the only version that is failing). + Pre-test hook for SciPy-bundle: skip failing tests for selected SciPy-bundle vrsions + In version 2021.10, 2 failing tests in scipy 1.6.3: + FAILED optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139 - A... + FAILED optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139 + = 2 failed, 30554 passed, 2064 skipped, 10992 deselected, 76 xfailed, 7 xpassed, 40 warnings in 380.27s (0:06:20) = + In versions 2023.07, 2 failing tests in scipy 1.11.1: + FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris + FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris_float32 + = 2 failed, 54409 passed, 3016 skipped, 223 xfailed, 13 xpassed, 10917 warnings in 892.04s (0:14:52) = In previous versions we were not as strict yet on the numpy/SciPy tests """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if self.name == 'SciPy-bundle' and self.version == '2021.10' and cpu_target == CPU_TARGET_NEOVERSE_V1: + if self.name == 'SciPy-bundle' and self.version in ['2021.10', '2023.07'] and cpu_target == CPU_TARGET_NEOVERSE_V1: self.cfg['testopts'] = "|| echo ignoring failing tests" From 43748eb6518a5b4670c1ae055200db6c21b8b5ec Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Tue, 28 Nov 2023 11:18:25 +0100 Subject: [PATCH 3/5] add parse hook to replace Catch2 build dependency using system toolchain in pybind11 --- eb_hooks.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index b0c5fafea0..583cd446e0 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -4,6 +4,7 @@ import re from easybuild.easyblocks.generic.configuremake import obtain_config_guess +from easybuild.framework.easyconfig.constants import EASYCONFIG_CONSTANTS from easybuild.tools.build_log import EasyBuildError, print_msg from easybuild.tools.config import build_option, update_build_option from easybuild.tools.filetools import apply_regex_substitutions, copy_file, which @@ -23,6 +24,8 @@ EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs' +SYSTEM = EASYCONFIG_CONSTANTS['SYSTEM'][0] + def get_eessi_envvar(eessi_envvar): """Get an EESSI environment variable from the environment""" @@ -181,6 +184,25 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): raise EasyBuildError("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!") +def parse_hook_pybind11_replace_catch2(ec, eprefix): + """ + Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain. + cfr. https://github.com/easybuilders/easybuild-easyconfigs/pull/19270 + """ + # tihs is mainly necessary to avoid that --missing keeps reporting Catch2/2.13.9 is missing, + # and to avoid that we need to use "--from-pr 19270" for every easyconfigs that (indirectly) depends on pybind11 + if ec.name == 'pybind11' and ec.version in ['2.10.3', '2.11.1']: + build_deps = ec['builddependencies'] + catch2_build_dep = None + catch2_name, catch2_version = ('Catch2', '2.13.9') + for idx, build_dep in enumerate(build_deps): + if build_dep[0] == catch2_name and build_dep[1] == catch2_version: + catch2_build_dep = build_dep + break + if catch2_build_dep and len(catch2_build_dep) == 4 and catch2_build_dep[3] == SYSTEM: + build_deps[idx] = (catch2_name, catch2_version) + + def parse_hook_qt5_check_qtwebengine_disable(ec, eprefix): """ Disable check for QtWebEngine in Qt5 as workaround for problem with determining glibc version. @@ -360,6 +382,7 @@ def pre_single_extension_isoband(ext, *args, **kwargs): 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, + 'pybind11': parse_hook_pybind11_replace_catch2, 'Qt5': parse_hook_qt5_check_qtwebengine_disable, 'UCX': parse_hook_ucx_eprefix, } From 7052a9070e34e9125ee200d140c7c9c5c0a2ae22 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Tue, 28 Nov 2023 11:49:12 +0100 Subject: [PATCH 4/5] TypoUpdate eb_hooks.py --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 583cd446e0..38b30ce684 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -189,7 +189,7 @@ def parse_hook_pybind11_replace_catch2(ec, eprefix): Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain. cfr. https://github.com/easybuilders/easybuild-easyconfigs/pull/19270 """ - # tihs is mainly necessary to avoid that --missing keeps reporting Catch2/2.13.9 is missing, + # this is mainly necessary to avoid that --missing keeps reporting Catch2/2.13.9 is missing, # and to avoid that we need to use "--from-pr 19270" for every easyconfigs that (indirectly) depends on pybind11 if ec.name == 'pybind11' and ec.version in ['2.10.3', '2.11.1']: build_deps = ec['builddependencies'] From bff19929ddf21956b2f42e7461e6fd9c7b0fe6e5 Mon Sep 17 00:00:00 2001 From: ocaisa Date: Tue, 28 Nov 2023 11:50:13 +0100 Subject: [PATCH 5/5] Typo --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 38b30ce684..3d0e63f4c2 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -336,7 +336,7 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): """ - Pre-test hook for SciPy-bundle: skip failing tests for selected SciPy-bundle vrsions + Pre-test hook for SciPy-bundle: skip failing tests for selected SciPy-bundle versions In version 2021.10, 2 failing tests in scipy 1.6.3: FAILED optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139 - A... FAILED optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139