Skip to content

WoA: build win_arm64 wheels and run the unit suite - #3039

Open
fboudra wants to merge 2 commits into
snowflakedb:mainfrom
fboudra:woa-wheels
Open

fboudra wants to merge 2 commits into
snowflakedb:mainfrom
fboudra:woa-wheels

Conversation

@fboudra

@fboudra fboudra commented Sep 16, 2026

Copy link
Copy Markdown
  1. What GitHub issue is this PR addressing? Make sure that there is an accompanying issue to your PR.

    Related to SNOW-2091311: Provide wheel for Windows ARM64 #2314

  2. Fill out the following pre-review checklist:

    • I am adding a new automated test(s) to verify correctness of my new code
    • I am adding new logging messages
    • I am adding a new telemetry message
    • I am modifying authorization mechanisms
    • I am adding new credentials
    • I am modifying OCSP code
    • I am adding a new dependency
  3. Please describe how your code solves the related issue.

Per the comment #2314 (comment)

However, if you wish to run the Python driver on Windows on ARM64 (by compiling it from source locally for now), we would be more than happy to welcome a PR that updates the Python driver's code to make the tests pass on GitHub Actions on Windows on ARM64 nodes - available for testing in GhA already. This way next releases could include those changes.

Improve the situation for the WoA platform support:

  • add a Windows on Arm (WoA) unit-test entry to the full test matrix
  • build win_arm64 wheels for Python 3.10-3.14

…matrix

windows-11-arm was excluded from every matrix, so no CI job ever ran on a
Windows on Arm (WoA) runner. Add one entry: Python 3.13 on aws, tagged with
tox_envs "unit", so the test job runs only the unit suite there.

Only 3.13 is tested. The other versions are still built (see build_matrix) but
a single test gate is enough to catch platform breakage. Only one CSP (aws):
the runners are the same across cloud providers, and the others would just add
duplicate jobs.

The unit suite is all that can run on WoA today: pyarrow doesn't publishes
win_arm64 wheel yet, which blocks the pandas category, and integration tests
aren't wired to live accounts on this runner.

generated_full_matrix.json is regenerated with a new entry.
generated_pr_matrix.json is byte-identical. PR runs doesn't include the WoA
gate, so the generator now keeps EXCLUSIONS (full) and PR_EXCLUSIONS (PR) as
separate lists.

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
The test matrix lists win_arm64 only for Python 3.13, so the build matrix
derived from it would produce a single WoA wheel. Append the other four
versions (3.10, 3.11, 3.12, 3.14) to build_matrix in the define-matrix job,
next to the existing always-build manylinux py3.11 entry.

3.14t is deliberately absent: cryptography doesn't publishes cp314t-win_arm64
wheel yet, so that build cannot resolve its dependencies.

The test job now takes its tox env list from an optional matrix.tox_envs field.
Entries without it keep the previous list (extras, unit-parallel,
integ-parallel, pandas-parallel, sso), so existing platforms are unaffected.
The WoA entry sets tox_envs to "unit" and runs py313-unit-ci.

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>

@snowflake-security-bot snowflake-security-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Snowflake Security Review

Security grade: A — Passed ✅

This PR was classified as LOW risk by the automated pre-screen.

This branch has not been deployed

No deployments
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.

1 participant