Skip to content

ci: restore x86_64 Linux wheels in publish matrix#91

Open
brandon-springer wants to merge 1 commit into
akhundMurad:mainfrom
brandon-springer:bspringer/linux-x86_64-wheels
Open

ci: restore x86_64 Linux wheels in publish matrix#91
brandon-springer wants to merge 1 commit into
akhundMurad:mainfrom
brandon-springer:bspringer/linux-x86_64-wheels

Conversation

@brandon-springer

Copy link
Copy Markdown
Contributor

Problem

0.3.10 shipped manylinux_2_28_aarch64 wheels for cp310–cp314 and no x86_64 Linux wheels (0.3.9 had the reverse: x86_64 only, no aarch64). On x86_64 Linux, pip now finds no compatible wheel and falls back to building the Rust extension from sdist (or fails without a toolchain).

Cause

The build-wheels matrix listed ubuntu-latest as a base os with no target (native x86_64), and added aarch64 Linux builds as include entries keyed on os: ubuntu-latest + python-version.

GitHub Actions merges an include entry into an existing matrix combination when its base-dimension keys (os, python-version) all match, instead of creating a new combination. So each aarch64 include grafted its target onto the matching native ubuntu row, overwriting the empty target — replacing the x86_64 builds rather than running beside them. Wheel count stayed the same; the Linux arch silently flipped.

Fix

Drop ubuntu-latest from the base os list and declare both x86_64-unknown-linux-gnu and aarch64-unknown-linux-gnu as explicit include entries. Since os: ubuntu-latest no longer matches any base combination, each entry creates its own job.

Resulting matrix: 25 jobs — windows (5), Linux x86_64 (5), Linux aarch64 (5), macOS arm64 (5), macOS x86_64 (5).

The build-wheels matrix listed ubuntu-latest as a base os with no target,
producing native manylinux x86_64 wheels, and added aarch64 Linux builds via
include entries keyed on os: ubuntu-latest + python-version.

GitHub Actions merges an include entry into an existing matrix combination
when its base-dimension keys (os, python-version) match, rather than creating
a new combination. The aarch64 includes therefore grafted their target onto
the existing ubuntu-latest rows, overwriting the empty target and replacing
the native x86_64 builds instead of running alongside them. The result: 0.3.10
shipped manylinux_2_28_aarch64 wheels and no x86_64 Linux wheels, so pip on
x86_64 Linux falls back to building from sdist.

Drop ubuntu-latest from the base os list and declare both x86_64 and aarch64
Linux targets as explicit include entries so each arch gets its own job.
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