Add native Windows Arm64 library and binding lane - #1089
Conversation
Add hosted and production Arm64 lanes, fail-closed architecture validation, and native process-oracle coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run shared fail-closed payload and native-host checks in both Arm64 CI lanes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Harden API detection and package-lock verification, use HTTPS artifact downloads, make tests import-safe, and clarify diagnostic output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Report missing pacman as a structured failure, warn explicitly on WOW execution, clarify payload diagnostics, and keep the private Arm64 job opt-in. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fail C++ validation under WOW on an Arm64 host, harden malformed lock diagnostics, and install hosted-runner packages from the shared lock. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove a tautological check and accurately describe the validator as architecture-only. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Make PE reports deterministic, add explicit WOW diagnostics and standard includes, and add REUSE metadata. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Improve Win32 diagnostics, harden pacman output parsing, expand fail-closed CLI tests, and make PE reports deterministic. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Automated review is being run on mirror PR yeelam-gordon#1. Findings and fixes are pushed to this same head branch. This PR depends on OpenShot/libopenshot-audio#171. |
Clear and capture the Win32 last-error value around IsWow64Process2 so successful and failed assertions are unambiguous. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reject non-placeholder archive hashes until package archive verification is implemented, with regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Install exact package versions from the lock and reject unsafe package names before invoking pacman. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve the OpenShotAudio checkout from the pull-request head owner and ref so the Arm64 pipeline consumes PR A before it is merged, while preserving owner/ref fallback after merge. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Print the bounded generated Ninja region only when the native libopenshot build fails, enabling diagnosis without changing normal builds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Mark ctest label commands VERBATIM so the regex end anchor is escaped correctly in generated Ninja files on Windows Arm64. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use avcodec_get_supported_config for modern libavcodec while preserving legacy fields, and correct channel-layout equality handling. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build tracked-object support independently of OpenCV, accept OpenCV 5, link MagickCore explicitly, and keep test media paths CMake-style for Windows compiler definitions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Include calib3d and imgproc where their APIs are used instead of relying on transitive headers removed by OpenCV 5. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use version-specific geometry module headers while preserving the existing OpenCV integer typedef workaround and OpenCV 4 compatibility. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid COM IStream name collisions between the full Windows SDK surface and Catch2. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep a forward trailing slash after Windows path normalization so tests that append fixture names resolve the examples directory correctly. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the Unix-only mkstemp helper with the C++17 temporary directory API for Windows Arm64 test execution. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Support OpenCV 5 with a 4.3 minimum fallback and generate collision-resistant ObjectMask test paths portably. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Honor avcodec_get_supported_config counts on FFmpeg 8/9 and reserve ObjectMask temporary files atomically with QTemporaryFile. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Hosted Windows Arm64 CI now compiles the complete library and runs 516 tests; 512 pass. The remaining four failures are isolated dependency-runtime follow-ups (FFmpeg 9 spherical metadata and ImageMagick 7 ImageWriter crashes), documented on the mirror review PR: yeelam-gordon#1. The copilot-pr-autopilot round-cap circuit breaker stopped further scope expansion after all Arm64 lane/build blockers were resolved. |
|
Latest hosted Windows Arm64 evidence: the complete library, Python binding, FFmpeg 9/OpenCV 5 compatibility code, examples, and all 516 test executables compile successfully. CTest passes 512/516. Remaining explicit follow-ups are two FFmpeg 9 spherical-metadata round-trip tests and two ImageMagick 7 ImageWriter crashes. The automated review loop stopped at its round-cap circuit breaker with zero open threads rather than hiding or disabling these dependency-runtime failures. |
Summary
IsWow64Process2native result(UNKNOWN, ARM64)Dependency
Requires OpenShot/libopenshot-audio#171.
Motivation
This is PR B of the Windows Arm64 chain requested by OpenShot/openshot-qt#5853. It produces libopenshot and the Python extension consumed by openshot-qt.
Validation
git diff --checkpassesBoundaries
Production execution requires OpenShot's private
windows-arm64GitLab runner and the accepted artifact from PR A.AI assistance disclosure: implementation and review used GitHub Copilot CLI.