build(windows): package and validate PyPI wheels - #1118
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c05b40b7eb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
c05b40b to
2d71696
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d7169602b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep Linux, macOS, and MinGW behavior unchanged while adding native MSVC compiler, dependency, export, and test configuration. Configure LAPACKE complex types before MSVC consumes the OpenBLAS headers. Co-Authored-By: OpenAI Codex <codex@openai.com>
Co-Authored-By: OpenAI Codex <codex@openai.com>
Map host complex types to CUDA-native storage ids and replace the two-variant std::visit expansion with dtype-indexed template dispatch. This preserves promotion semantics while avoiding cudafe++ failures on Windows. Co-Authored-By: OpenAI Codex <codex@openai.com>
Provision Python 3.10, MSVC activation, MKL, and optional PyPI CUDA tooling in locked default and cuda environments. Keep release-wheel dependencies out of the contributor environments. Co-Authored-By: OpenAI Codex <codex@openai.com>
CUDA 13 device LTO makes nvlink search bin/x64, while the PyPI NVVM wheel installs its DLL below bin/x86_64. Create an idempotent hard-link or copy in the canonical directory during CUDA preparation. Co-Authored-By: OpenAI Codex <codex@openai.com>
Co-Authored-By: OpenAI Codex <codex@openai.com>
Add isolated OpenBLAS wheel environments, relocatable extension installs, Windows DLL discovery, and delvewheel repair plus clean-install validation while leaving CUDA runtimes in their declared PyPI distributions. Co-Authored-By: OpenAI Codex <codex@openai.com>
CMake classifies MODULE targets as LIBRARY artifacts on every platform. Keep the wheel install destination relative while using the portable artifact kind so Windows configuration succeeds. Co-Authored-By: OpenAI Codex <codex@openai.com>
Conda-forge BLAS and LAPACK DLLs contain export forwarders to the literal openblas.dll basename. Tell delvewheel not to mangle that DLL so clean wheel imports can resolve the forwarded symbols. Co-Authored-By: OpenAI Codex <codex@openai.com>
Co-Authored-By: OpenAI Codex <codex@openai.com>
2d71696 to
d0521d7
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d0521d71c0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Force delvewheel to vendor openblas.dll because PE export-forwarder strings are not discoverable from import tables. Keep its basename stable so libblas.dll and liblapack.dll forwarders remain valid. Co-Authored-By: OpenAI Codex <codex@openai.com>
Stack
master → #1110 → codex/windows-msvc-cuda-stack (#1116 patch) → #1117 → #1118 → #1119 → #1113Depends on #1117 and contains the Windows wheel packaging/runtime layer. Runtime dependency metadata is isolated in #1119; workflow invocation is isolated in #1113.
Summary
wheel-cpuandwheel-cudaenvironments;MODULEtarget through CMake's portableLIBRARYartifact rule into the relocatablecytnxpackage;os.add_dll_directory, since Windows has no ELF-style RUNPATH;Released users do not need
CUDA_PATH,CUTENSOR_ROOT,CUQUANTUM_ROOT, orCONDA_PREFIX. Development roots are not used as a fallback for installed wheels, avoiding accidental binding to an unrelated system CUDA.Integration layers
prepare-windowsorprepare-cudabefore cibuildwheel and adds the Windows CPU/CUDA jobs.Linux and macOS
CMake classifies
MODULEtargets asLIBRARYartifacts on every platform, so the relative install rule preserves Linux/macOS behavior while also installing the Windows.pyd. Existing macOS conda prefixes frommasterare retained.Validation
openblas.dllinclusion containscytnx.libs/openblas.dll;.pydunder the relativecytnxpackage;Part of #1114.