Repository navigation
Commit aaa15ea
committed
ci: repair the Windows coverage wheels
Windows coverage has not collected a test since 2026-03-17. The job builds
its wheels with a plain `pip wheel`, which never reads [tool.cibuildwheel],
so the delvewheel repair every other Windows build performs never ran here.
Those wheels import a bare "MSVCP140.dll" and resolve it against whatever the
test machine has in System32, which on the coverage runner is 14.00.24215.1,
built in 2015.
_resource_handles.pyd is compiled by MSVC 14.44 and imports exactly _Mtx_lock
and _Mtx_unlock from that DLL -- never _Mtx_init_in_situ, because std::mutex
has had a constexpr constructor since VS 2022 17.10. The 2015 runtime still
expects that initialisation and dereferences a null handle on the first lock,
which _stream.pyx takes while cuda.core is still importing. It is the only
extension module in either package that locks a mutex, which is why
cuda.bindings and cuda.pathfinder have always passed on the same machine.
Repairing the wheels vendors msvcp140 14.44 into cuda_core.libs and rewrites
the import tables to match, so the process no longer depends on what the test
machine carries. Verified on the coverage runner: 18 failed, 2929 passed,
918 skipped in 394s, against three to seven seconds of dying beforehand, and
the first Windows coverage data since March.
The same commit pins cuda-bindings to the wheel built one step earlier.
PIP_PRE is set so pip will consider that wheel at all -- it carries a .devN
version -- but it also admits PyPI's pre-releases, and cuda-bindings 13.4.0b1,
published 2026-07-29, outranks the local build. Its cydriver.pxd comes from
CTK 13.4 headers where CUmemLocation has a `localized` field, while cuda.core
compiles against the 13.3.0 mini-CTK where it does not, so the build has been
failing on `error C2039` ever since.
The diagnostics that found this are removed: the crash handler, the probes,
the import breadcrumb, the environment fingerprint and the temporary triggers
all go, and run_pytest_with_stack.py returns to its upstream form.1 parent dcb2c59 commit aaa15ea
6 files changed
Lines changed: 38 additions & 1453 deletions
File tree
- .github/workflows
- ci/tools
Large diffs are not rendered by default.
This file was deleted.
0 commit comments