From 29333e67557bcf9ee683652fabf6c46f8b6d33ed Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 5 Nov 2026 07:03:35 +0000 Subject: [PATCH 1/2] BLD: Print the BLAS and LAPACK information before the wheel tests numpy.show_runtime() ran before SciPy was imported, so threadpoolctl listed only the OpenBLAS library of NumPy, although SciPy ships its own OpenBLAS (a different version in a local check). In the run of 5 November the output had no BLAS entry at all on Windows ARM64. Import statsmodels.api first, so that the library of SciPy is loaded and listed too, and print numpy.show_config() and scipy.show_config() for the BLAS and LAPACK that each was built with. Several wheel tests failed depending on the platform and the OpenBLAS kernel, which the printed architecture shows. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/build-wheels.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index bd250ea..682517c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -42,7 +42,11 @@ jobs: # Skip musl for 3.8 and 3.9 since no upstream wheels CIBW_SKIP: "*-win32 *musllinux_aarch64*" CIBW_TEST_REQUIRES: pytest pytest-xdist pytest-randomly threadpoolctl pytest-run-parallel pandas<3.1 - CIBW_TEST_COMMAND: python -c "import numpy; numpy.show_runtime(); import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2','--randomly-dont-reset-seed'], exit=True)" + # Print the runtime and the BLAS and LAPACK libraries before the tests, + # to help diagnose test failures that depend on the platform. statsmodels + # is imported first so that the library of SciPy is loaded, and so is + # listed by threadpoolctl in show_runtime, next to the one of NumPy. + CIBW_TEST_COMMAND: python -c "import numpy, scipy, statsmodels.api; numpy.show_runtime(); numpy.show_config(); scipy.show_config(); statsmodels.test(['-m','(not slow and not example)','-n','2','--randomly-dont-reset-seed'], exit=True)" # Avoid testing on emulated architectures and Pyodide # Skip testing for now on Windows ARM11 due to linalg segfaults upstream CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x}" From 0d293ba23e728f2fbf2c59eaa78e95f19426743e Mon Sep 17 00:00:00 2001 From: Kevin Sheppard Date: Thu, 5 Nov 2026 07:17:49 +0000 Subject: [PATCH 2/2] Fix formatting in build-wheels.yml for test requirements --- .github/workflows/build-wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 682517c..bc327ee 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -41,12 +41,12 @@ jobs: # No support for musl or Win32 for 3.10+ # Skip musl for 3.8 and 3.9 since no upstream wheels CIBW_SKIP: "*-win32 *musllinux_aarch64*" - CIBW_TEST_REQUIRES: pytest pytest-xdist pytest-randomly threadpoolctl pytest-run-parallel pandas<3.1 + CIBW_TEST_REQUIRES: pytest pytest-randomly threadpoolctl pytest-run-parallel pandas<3.1 # Print the runtime and the BLAS and LAPACK libraries before the tests, # to help diagnose test failures that depend on the platform. statsmodels # is imported first so that the library of SciPy is loaded, and so is # listed by threadpoolctl in show_runtime, next to the one of NumPy. - CIBW_TEST_COMMAND: python -c "import numpy, scipy, statsmodels.api; numpy.show_runtime(); numpy.show_config(); scipy.show_config(); statsmodels.test(['-m','(not slow and not example)','-n','2','--randomly-dont-reset-seed'], exit=True)" + CIBW_TEST_COMMAND: python -c "import numpy, scipy, statsmodels.api; numpy.show_runtime(); numpy.show_config(); scipy.show_config(); statsmodels.test(['-m','(not slow and not example)','--randomly-dont-reset-seed'], exit=True)" # Avoid testing on emulated architectures and Pyodide # Skip testing for now on Windows ARM11 due to linalg segfaults upstream CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x}"