Add native Windows ARM64 CI and release wheels - #757
Draft
ssss141414 wants to merge 41 commits into
Draft
Conversation
…ding Windows with uvloop debug which is broken.) * add another branch to test on my end * force trigger workflow * reformat test_context with black * reformat all tests to obey flake8 * fix flake8 errors * add dns related things from winloop * try something that isn't invalid on 3.8 * reformat with black using valid 3.8 syntax and the 79 character limit * update setup.py * fix more formatting problems with test_process * uncomment trest_process_streams_pass_fds on windows * slience all other known to fail tests with windows * fix if statement for dns.pyx * silencing reamining failures * remove whitespace * update tests * update tests * skip signal test on apple for now * remove whitespace * reformat with black once more
* add another branch to test on my end * force trigger workflow * reformat test_context with black * reformat all tests to obey flake8 * fix flake8 errors * add dns related things from winloop * try something that isn't invalid on 3.8 * reformat with black using valid 3.8 syntax and the 79 character limit * update setup.py * fix more formatting problems with test_process * uncomment trest_process_streams_pass_fds on windows * slience all other known to fail tests with windows * fix if statement for dns.pyx * silencing reamining failures * remove whitespace * update tests * update tests * skip signal test on apple for now * remove whitespace * reformat with black once more * mark todo for issue 126 (winloop) related * skip test_call_later_2 on windows normal asyncio in 3.11 due to rounding bug * reformat test_base.py * uvloop still has the same problem on windows 3.11 * siganls fork test broken * better skipping system for test_base.py * add extra removal to makefile * nope, 3.8+ on windows has the same problem wiht test_call_later_2
* add another branch to test on my end * force trigger workflow * reformat test_context with black * reformat all tests to obey flake8 * fix flake8 errors * add dns related things from winloop * try something that isn't invalid on 3.8 * reformat with black using valid 3.8 syntax and the 79 character limit * update setup.py * fix more formatting problems with test_process * uncomment trest_process_streams_pass_fds on windows * slience all other known to fail tests with windows * fix if statement for dns.pyx * silencing reamining failures * remove whitespace * update tests * update tests * skip signal test on apple for now * remove whitespace * reformat with black once more * mark todo for issue 126 (winloop) related * skip test_call_later_2 on windows normal asyncio in 3.11 due to rounding bug * reformat test_base.py * uvloop still has the same problem on windows 3.11 * siganls fork test broken * better skipping system for test_base.py * add extra removal to makefile * nope, 3.8+ on windows has the same problem wiht test_call_later_2 * add __Pyx_MonitoringEventTypes_CyGen_count as a macro incase accidently exposed in windows debug mode * skip create over ssl when in win32 3.14t it's currently a todo bugfix. * skip test_getaddrinfo_4 on mac, it can randomly freeze at different times.
* add another branch to test on my end * force trigger workflow * reformat test_context with black * reformat all tests to obey flake8 * fix flake8 errors * add dns related things from winloop * try something that isn't invalid on 3.8 * reformat with black using valid 3.8 syntax and the 79 character limit * update setup.py * fix more formatting problems with test_process * uncomment trest_process_streams_pass_fds on windows * slience all other known to fail tests with windows * fix if statement for dns.pyx * silencing reamining failures * remove whitespace * update tests * update tests * skip signal test on apple for now * remove whitespace * reformat with black once more * mark todo for issue 126 (winloop) related * skip test_call_later_2 on windows normal asyncio in 3.11 due to rounding bug * reformat test_base.py * uvloop still has the same problem on windows 3.11 * siganls fork test broken * better skipping system for test_base.py * add extra removal to makefile * nope, 3.8+ on windows has the same problem wiht test_call_later_2 * add __Pyx_MonitoringEventTypes_CyGen_count as a macro incase accidently exposed in windows debug mode * skip create over ssl when in win32 3.14t it's currently a todo bugfix. * skip test_getaddrinfo_4 on mac, it can randomly freeze at different times. * fix subprocess shell code for window's end * update stdlib with os.path.join to help it out * add isabs to subprocess_shell * make outer modules used into constant values * forgot about errors.pyx let me fix that up real quickly
* add another branch to test on my end * force trigger workflow * reformat test_context with black * reformat all tests to obey flake8 * fix flake8 errors * add dns related things from winloop * try something that isn't invalid on 3.8 * reformat with black using valid 3.8 syntax and the 79 character limit * update setup.py * fix more formatting problems with test_process * uncomment trest_process_streams_pass_fds on windows * slience all other known to fail tests with windows * fix if statement for dns.pyx * silencing reamining failures * remove whitespace * update tests * update tests * skip signal test on apple for now * remove whitespace * reformat with black once more * mark todo for issue 126 (winloop) related * skip test_call_later_2 on windows normal asyncio in 3.11 due to rounding bug * reformat test_base.py * uvloop still has the same problem on windows 3.11 * siganls fork test broken * better skipping system for test_base.py * add extra removal to makefile * nope, 3.8+ on windows has the same problem wiht test_call_later_2 * add __Pyx_MonitoringEventTypes_CyGen_count as a macro incase accidently exposed in windows debug mode * skip create over ssl when in win32 3.14t it's currently a todo bugfix. * skip test_getaddrinfo_4 on mac, it can randomly freeze at different times. * fix subprocess shell code for window's end * update stdlib with os.path.join to help it out * add isabs to subprocess_shell * make outer modules used into constant values * forgot about errors.pyx let me fix that up real quickly * put more externals required into stdlib.pxi where they all belong
…the slow executor.
* retain --debug and other flags when debug is used and is not windows * this addtional thing is temporary * provide some extra grace for windows 3.11 * lets bump it to 0.015 instead so that 3.12 windows has some chance of winning * give a bigger buffer and shorter timeout on windows. * readjust timeout of test_socket_cancel_sendall * mark windows as both winning and loosing this test it's an unwanted coinflip. * final straw for test_socket_cancel_sock_sendall * test_call_later_2 time decrease * last but not least
* apply cx-freeze bugfix * initiate tests over here temporarly
* skip test_create_sock_cancel_fd_leak for now... * fix tcp tests for windows that weren't working previously. * really quickly let's run windows in the testsuite will get rid of this when we are done. * reformat test_tcp and reapply skipping the test_shutdown_timeout * re-remove windows branch from workflows we did our job.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft builds on and preserves the generic Windows implementation from #736, then adds native Windows ARM64 validation and release integration.
windows-11-armregression coverage for CPython 3.11.9, 3.12.10, 3.13.15, 3.14.7, and 3.14twin_arm64tag and an ARM64 (0xAA64) native extension before uploadAttribution and coordination
The 35 commits from #736 are retained with their original authorship. They provide the generic Windows prerequisite and are not presented as Windows ARM64 evidence. The ARM64-specific workflow and validation changes are the commits after the #736 head.
This is intentionally a draft so the work can be coordinated with #736 and validated on GitHub-hosted runners before it is considered ready.
Local validation
Native Windows ARM64:
cp312-cp312-win_arm64, PE0xAA64; clean install and smoke passed; 526 tests, 374 passed, 152 skippedcp313-cp313-win_arm64, PE0xAA64; clean install and smoke passed; 526 tests, 374 passed, 152 skippedWindows AMD64 regression under Windows ARM64 x64 emulation:
cp312-cp312-win_amd64, PE0x8664; clean install and smoke passedPYTHONASYNCIODEBUG=1: 526 tests, 374 passed, 152 skippedOne additional Windows-only skip is limited to the stdlib asyncio baseline for
test_subprocess_fd_leak_2. Windowspsutil.Process.num_handles()varied in full-suite runs even though focused reruns passed. The corresponding uvloop test remains enabled and passes.Remaining draft checks
This draft does not claim merge, publication, or upstream acceptance.