Skip to content

Conversation

Avasam
Copy link
Collaborator

@Avasam Avasam commented Apr 26, 2025

Announcement: https://github.com/orgs/community/discussions/155713

Predecessor / based on:

Changes unique to this PR:

  • Updated artefacts names
  • Add ARM64 to the Build and test job
  • Keep cross-compiling before Python 3.11
  • Updated link in make_all.bat to directly point to cross-compilation info

@Avasam Avasam changed the title Native ARM64 CI wheels Native ARM64 CI tests and wheels Apr 26, 2025
@Avasam Avasam force-pushed the Native-ARM64-CI-wheels branch from 6193867 to f25b8e4 Compare April 26, 2025 22:23
@Avasam Avasam force-pushed the Native-ARM64-CI-wheels branch from 7add533 to 22b2594 Compare April 27, 2025 05:10
@Avasam Avasam marked this pull request as draft April 27, 2025 05:13
@Avasam
Copy link
Collaborator Author

Avasam commented Apr 28, 2025

Alright, I'm getting actual failed tests on ARM64 now. Not too surprising since I doubt many contributors have an AMR64 Windows machine.

I think this is the failing test: https://github.com/mhammond/pywin32/actions/runs/14699426077/job/41246179979?pr=2581#step:11:500

Traceback (most recent call last):
  File "C:\a\pywin32\pywin32\com\win32com\test\testPyComTest.py", line 53, in <module>
    universal.RegisterInterfaces("{6BCDCB60-5605-11D0-AE5F-CADD4C000000}", 0, 1, 1)
  File "C:\Users\runneradmin\AppData\Roaming\Python\Python311-arm64\site-packages\win32com\universal.py", line 76, in RegisterInterfaces
    _doCreateVTable(iid, name, is_dispatch, method_defs)
  File "C:\Users\runneradmin\AppData\Roaming\Python\Python311-arm64\site-packages\win32com\universal.py", line 86, in _doCreateVTable
    vtbl = pythoncom._univgw.CreateVTable(defn, is_dispatch)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
testit (__main__.PyCOMTest.testit) ... FAIL
NotImplementedError: not implemented on this platform

The only matching error message I could find is this:

#else // other arches
/* The MAINWIN toolkit allows us to build this on Linux!!! */
#pragma message("XXXXXXXXX - win32com.universal won't work on this platform - need make_method")
PyErr_SetString(PyExc_NotImplementedError, "not implemented on this platform");
code = NULL;

@Avasam Avasam changed the title Native ARM64 CI tests and wheels Native ARM64 CI builds and tests Apr 30, 2025
@Avasam Avasam marked this pull request as ready for review May 1, 2025 00:19
Comment on lines +888 to +893
except NotImplementedError:
if platform.machine() == "ARM64":
raise SkipTest(
"`win32com.universal.RegisterInterfaces` doesn't support ARM64 yet"
)
raise
Copy link
Collaborator Author

@Avasam Avasam May 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I carved this very specific exception so that if support is added (or attempted) and the error changes or disappears, this will have to be updated accordingly (hopefully by removing the try-except entirely)

@Avasam Avasam marked this pull request as draft May 2, 2025 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant