Skip to content

Commit 4b1133c

Browse files
authored
Merge pull request #403 from boegel/2023.06-software.eessi.io_2023a-SciPy-bundle
{2023.06}[foss/2023a] SciPy-bundle v2023.07
2 parents 8af8340 + bff1992 commit 4b1133c

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.8.2-2023a.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,9 @@ easyconfigs:
66
options:
77
include-easyblocks-from-pr: 3038
88
- foss-2023a.eb
9+
- pybind11-2.11.1-GCCcore-12.3.0.eb:
10+
# avoid indirect dependency on old CMake version built with GCCcore/10.2.0 via Catch2 build dependency;
11+
# see https://github.com/easybuilders/easybuild-easyconfigs/pull/19270
12+
options:
13+
from-pr: 19270
14+
- SciPy-bundle-2023.07-gfbf-2023a.eb

eb_hooks.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import re
55

66
from easybuild.easyblocks.generic.configuremake import obtain_config_guess
7+
from easybuild.framework.easyconfig.constants import EASYCONFIG_CONSTANTS
78
from easybuild.tools.build_log import EasyBuildError, print_msg
89
from easybuild.tools.config import build_option, update_build_option
910
from easybuild.tools.filetools import apply_regex_substitutions, copy_file, which
@@ -23,6 +24,8 @@
2324

2425
EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs'
2526

27+
SYSTEM = EASYCONFIG_CONSTANTS['SYSTEM'][0]
28+
2629

2730
def get_eessi_envvar(eessi_envvar):
2831
"""Get an EESSI environment variable from the environment"""
@@ -181,6 +184,25 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix):
181184
raise EasyBuildError("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!")
182185

183186

187+
def parse_hook_pybind11_replace_catch2(ec, eprefix):
188+
"""
189+
Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain.
190+
cfr. https://github.com/easybuilders/easybuild-easyconfigs/pull/19270
191+
"""
192+
# this is mainly necessary to avoid that --missing keeps reporting Catch2/2.13.9 is missing,
193+
# and to avoid that we need to use "--from-pr 19270" for every easyconfigs that (indirectly) depends on pybind11
194+
if ec.name == 'pybind11' and ec.version in ['2.10.3', '2.11.1']:
195+
build_deps = ec['builddependencies']
196+
catch2_build_dep = None
197+
catch2_name, catch2_version = ('Catch2', '2.13.9')
198+
for idx, build_dep in enumerate(build_deps):
199+
if build_dep[0] == catch2_name and build_dep[1] == catch2_version:
200+
catch2_build_dep = build_dep
201+
break
202+
if catch2_build_dep and len(catch2_build_dep) == 4 and catch2_build_dep[3] == SYSTEM:
203+
build_deps[idx] = (catch2_name, catch2_version)
204+
205+
184206
def parse_hook_qt5_check_qtwebengine_disable(ec, eprefix):
185207
"""
186208
Disable check for QtWebEngine in Qt5 as workaround for problem with determining glibc version.
@@ -314,11 +336,19 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs):
314336

315337
def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs):
316338
"""
317-
Pre-test hook for SciPy-bundle: skip failing tests for SciPy-bundle 2021.10 (currently the only version that is failing).
339+
Pre-test hook for SciPy-bundle: skip failing tests for selected SciPy-bundle versions
340+
In version 2021.10, 2 failing tests in scipy 1.6.3:
341+
FAILED optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139 - A...
342+
FAILED optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139
343+
= 2 failed, 30554 passed, 2064 skipped, 10992 deselected, 76 xfailed, 7 xpassed, 40 warnings in 380.27s (0:06:20) =
344+
In versions 2023.07, 2 failing tests in scipy 1.11.1:
345+
FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris
346+
FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris_float32
347+
= 2 failed, 54409 passed, 3016 skipped, 223 xfailed, 13 xpassed, 10917 warnings in 892.04s (0:14:52) =
318348
In previous versions we were not as strict yet on the numpy/SciPy tests
319349
"""
320350
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
321-
if self.name == 'SciPy-bundle' and self.version == '2021.10' and cpu_target == CPU_TARGET_NEOVERSE_V1:
351+
if self.name == 'SciPy-bundle' and self.version in ['2021.10', '2023.07'] and cpu_target == CPU_TARGET_NEOVERSE_V1:
322352
self.cfg['testopts'] = "|| echo ignoring failing tests"
323353

324354

@@ -352,6 +382,7 @@ def pre_single_extension_isoband(ext, *args, **kwargs):
352382
'CGAL': parse_hook_cgal_toolchainopts_precise,
353383
'fontconfig': parse_hook_fontconfig_add_fonts,
354384
'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors,
385+
'pybind11': parse_hook_pybind11_replace_catch2,
355386
'Qt5': parse_hook_qt5_check_qtwebengine_disable,
356387
'UCX': parse_hook_ucx_eprefix,
357388
}

0 commit comments

Comments
 (0)