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: false is 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.
Hi, and thank you for annoy.
While reading
.github/workflows/ci.yml(at current HEAD379f744), I noticed theunit-testsjob defines an OS matrix that is never used:Because
runs-onis the literalubuntu-22.04, all 21 matrix combinations run on Ubuntu 22.04 — macOS and Windows are never actually exercised (and theubuntu-20.04matrix 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);os:matrix axis to make the config honest about what it tests (cuts 14 redundant jobs);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.