From eab05aa8c337fff0cdd4d5cf3426051f20f68834 Mon Sep 17 00:00:00 2001 From: Transurgeon Date: Thu, 11 Jun 2026 22:58:53 -0400 Subject: [PATCH] Repair Windows wheels with delvewheel to bundle openblas.dll Windows wheels shipped a .pyd that dynamically links openblas.dll from vcpkg, but cibuildwheel has no default repair step on Windows (unlike auditwheel/delocate), so the DLL was never bundled and every import failed with 'DLL load failed'. Run delvewheel to vendor the DLL into the wheel, and add a smoke-test import on all platforms so a broken wheel can't publish again. Fixes #15 Co-Authored-By: Claude Fable 5 --- .github/workflows/build-and-publish.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index 2e27fa1..8d33d33 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -65,8 +65,11 @@ jobs: CIBW_ARCHS_MACOS: "x86_64 universal2" CIBW_ARCHS_LINUX: "auto aarch64" CIBW_BEFORE_BUILD_LINUX: "yum install -y openblas-devel || apt-get install -y libopenblas-dev" - CIBW_BEFORE_BUILD_WINDOWS: "vcpkg install openblas:x64-windows" + CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel && vcpkg install openblas:x64-windows" CIBW_ENVIRONMENT_WINDOWS: "CMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" + # Bundle openblas.dll into the wheel (auditwheel/delocate handle this on Linux/macOS) + CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel} --add-path C:/vcpkg/installed/x64-windows/bin" + CIBW_TEST_COMMAND: python -c "import sparsediffpy" - name: Check wheels shell: bash run: |