CI: os matrix is never used — all 21 jobs run on ubuntu-22.04, macOS/Windows never tested
Hi, and thank you for annoy.
While reading .github/workflows/ci.yml (at current HEAD 379f744), I noticed the unit-tests job defines an OS matrix that is never used:
runs-on: ubuntu-22.04 # <- literal, not ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.7", ..., "3.13"]
os: ["ubuntu-20.04", "macos-latest", "windows-latest"]Because runs-on is the literal ubuntu-22.04, all 21 matrix combinations run on Ubuntu 22.04 — macOS and Windows are never actually exercised (and the ubuntu-20.04 matrix entry is a GitHub-retired image, though it's inert as written). The matrix triples CI time without adding coverage.
Why an issue rather than a PR: the mechanical fix is runs-on: ${{ matrix.os }}, but flipping it on may surface real macOS/Windows build failures for the C++ extension (e.g. the themes in #659 and #523), and I didn't want to hand you red CI without discussing first. Options:
runs-on: ${{ matrix.os }}and accept/triage whatever fails (fail-fast: falseis already set);- drop the unused
os:matrix axis to make the config honest about what it tests (cuts 14 redundant jobs); - some middle path (e.g. one macOS + one Windows lane on the newest Python only).
Happy to send a PR for whichever direction you prefer.
For transparency: I used AI assistance to spot and draft this; I verified the workflow content myself.
Source: spotify/annoy