Skip to content

CI: run the ASan/UBSan job in a container instead of on macOS - #862

Merged
rgommers merged 1 commit into
PyWavelets:mainfrom
rgommers:ci-fix-asan
Aug 17, 2026
Merged

CI: run the ASan/UBSan job in a container instead of on macOS#862
rgommers merged 1 commit into
PyWavelets:mainfrom
rgommers:ci-fix-asan

Conversation

@rgommers

Copy link
Copy Markdown
Member

The job was hanging in brew install llvm@19. Use the prebuilt ghcr.io/nascheme/cpython-asan image, as NumPy now does for its Linux ASan job: it ships clang-21 and an ASan-instrumented CPython 3.14, so no Homebrew, no pyenv and no interpreter build are needed.

Set ASAN_OPTIONS=detect_leaks=0 for the build. LeakSanitizer is on by default under ASan on Linux (on macOS it is unsupported), and makes the numpy include-dir probe in pywt/_extensions/meson.build exit non-zero.

Skip test_swt2_iswt2_integration, which costs ~3.5 minutes and covers the same C code as test_swt2_iswt2_quick and test_swtn_iswtn_integration, and drop the unused CYTHON_TRACE and CYTHONSPEC env vars.

AI usage declaration: used Claude Opus 5.0 for debugging and fixing things up. I didn't know about the (fairly brain dead) pyenv rehash thing, so this saved me a bunch of head-scratching.

The job was hanging in `brew install llvm@19`. Use the prebuilt
ghcr.io/nascheme/cpython-asan image, as NumPy now does for its Linux ASan
job: it ships clang-21 and an ASan-instrumented CPython 3.14, so no
Homebrew, no pyenv and no interpreter build are needed.

Set ASAN_OPTIONS=detect_leaks=0 for the build. LeakSanitizer is on by
default under ASan on Linux (on macOS it is unsupported), and makes the
numpy include-dir probe in pywt/_extensions/meson.build exit non-zero.

Skip test_swt2_iswt2_integration, which costs ~3.5 minutes and covers the
same C code as test_swt2_iswt2_quick and test_swtn_iswtn_integration, and
drop the unused CYTHON_TRACE and CYTHONSPEC env vars.
@rgommers rgommers added this to the v1.10.0 milestone Aug 17, 2026
@rgommers rgommers added the CI Continuous integration label Aug 17, 2026
@rgommers
rgommers merged commit b5087c2 into PyWavelets:main Aug 17, 2026
17 checks passed
@rgommers
rgommers deleted the ci-fix-asan branch August 17, 2026 10:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant