Skip to content

Conversation

@K20shores
Copy link

@K20shores K20shores commented Dec 11, 2025

Description

In response to the conversation about #5883 in #5919, I'm adding tests for Windows ARM runners, both with and without Mingw. This uses the windows-arm-11 runner.

Fortunately, I didn't see the same build error reported in #5883. These are still good tests to add, though. In my testing, the issue was present in pybind11 3.0.0, but it was fixed when updating to 3.0.1. It appears that #5757 includes a fix that already addresses #5883.

For mingw under windows arm with clang, I've had to update the visibility tests. I believe it's scoped appropriately, but I may be wrong.

Suggested changelog entry:

  • Add CI tests for windows-11-arm with clang/MSVC (currently python 3.13), windows-11-arm with clang/mingw (currently python 3.12)

📚 Documentation preview 📚: https://pybind11--5932.org.readthedocs.build/

@K20shores K20shores requested a review from henryiii as a code owner December 11, 2025 20:55
@K20shores
Copy link
Author

@rwgk @baburton I've added this PR in response to comments on #5919. It seems the issue has already been fixed in the latest version of pybind11 (3.0.1). At least, it fixes it for me. @baburton, if you try 3.0.1 do you see the same error?

K20shores and others added 5 commits December 11, 2025 15:52
Rename the Windows ARM clang jobs to windows_arm_clang_msvc and windows_arm_clang_msys2 and adjust their display names to clang-msvc / clang-msys2. The first runs clang against the MSVC/Windows SDK toolchain and python.org CPython for Windows ARM, while the second runs clang inside the MSYS2/MinGW-w64 CLANGARM64 environment with MSYS2 Python.

Using clearly distinguished job names makes it easier to discuss failures and behavior in each environment without ambiguity, both in logs and in PR review discussions.
Limit the windows_arm_clang_msvc job to Python 3.13 and the windows_arm_clang_msys2 job to Python 3.12 to stay within our constrained GitHub Actions resources. Keep both jobs using a matrix over os and python so their structure stays aligned and it remains easy to expand coverage when needed.
@rwgk
Copy link
Collaborator

rwgk commented Dec 13, 2025

I worked on this PR with the help of Cursor. Initially I wasn't clear about the nature of the differences between the two new jobs.

After adding two commits, I asked Cursor for it's opinion, this came back (and I agree):

This looks merge-ready to me.

  • CI changes: The two Windows ARM jobs are clearly named (windows_arm_clang_msvc / windows_arm_clang_msys2), structurally aligned, and trimmed to a single Python each to respect free GHA limits while keeping the matrix shape extensible.

  • Tests/requirements: The NumPy pinning now cleanly separates ARM64 CPython (2.3.0 for ≥3.11) from non‑ARM64, which matches the practical wheel availability story.

  • XFAIL: The unnamed‑namespace XFAIL condition now correctly covers “any libc++” (including Windows ARM MSYS2) plus non‑Windows Clang, which aligns with the environments where the issue is known.

@K20shores could you please review the two commits I added (I also merged master)?

  • commit 832a6ab — Clarify Windows ARM clang job naming
  • commit 40a9321 — Reduce Windows ARM clang matrix size

@baburton could you please confirm that your original issue is resolved already on master (or 3.0.1)?

@K20shores
Copy link
Author

@rwgk I left a comment on commit 40a9321. Everything looks good to me, unless you think my comment there requires more changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants