CI: add Python 3.13 to the test matrix (and a Windows test job) — platform-gated code is never exercised #40

Closed
opened 2026-07-12 12:45:19 -04:00 by the_og · 0 comments
Owner

Found in audit of main @ 06326e5.

ci.yml tests on Ubuntu with Python 3.10 and 3.12 only, while the release workflow builds and ships macOS and Windows binaries with Python 3.12. Gaps:

  1. Python 3.13: users running from source on current Python get no CI signal. (An earlier revision of the Windows server_log_path tests actually failed on 3.13 due to the os.name monkeypatch interacting with pathlib — the kind of breakage this matrix hole hides. Current main passes on 3.13 locally.)
  2. Windows job: server_log_path, system_path registry reading, restart logic, and MSIX detection are all os.name == \"nt\" / sys.platform gated and only ever tested via monkeypatch on Linux. A windows-latest test job (the release workflow proves the runner exists) would exercise them for real.

Proposed fix: extend the test matrix to python: [\"3.10\", \"3.12\", \"3.13\"] and add an os: [ubuntu-latest, windows-latest] dimension (tests need no Qt, so this stays fast).

Acceptance: CI green on the expanded matrix.

**Found in audit of `main` @ 06326e5.** `ci.yml` tests on Ubuntu with Python 3.10 and 3.12 only, while the release workflow builds and ships macOS and Windows binaries with Python 3.12. Gaps: 1. **Python 3.13**: users running from source on current Python get no CI signal. (An earlier revision of the Windows `server_log_path` tests actually failed on 3.13 due to the `os.name` monkeypatch interacting with pathlib — the kind of breakage this matrix hole hides. Current `main` passes on 3.13 locally.) 2. **Windows job**: `server_log_path`, `system_path` registry reading, restart logic, and MSIX detection are all `os.name == \"nt\"` / `sys.platform` gated and only ever tested via monkeypatch on Linux. A `windows-latest` test job (the release workflow proves the runner exists) would exercise them for real. **Proposed fix**: extend the test matrix to `python: [\"3.10\", \"3.12\", \"3.13\"]` and add an `os: [ubuntu-latest, windows-latest]` dimension (tests need no Qt, so this stays fast). **Acceptance**: CI green on the expanded matrix.
the_og added the P2 label 2026-07-12 12:45:19 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: the_og/better-claude-config#40