Commit 4f554ad
ci: expand test matrix to macOS and Windows
unpythonic is pure Python but exercises unusual control-flow
machinery (continuations, dynvars, TCO, generator tricks), where
OS-specific regressions can surface independently of the Python
minor version.
Matrix shape: full Python 3.10–3.14 plus pypy-3.11 on Linux
(where most contributors develop); newest CPython (3.14) plus
pypy-3.11 on macOS and Windows. PyPy is included on every OS
because it's a separate interpreter family — the control-flow
code paths differ from CPython and can have their own quirks.
To make the workflow cross-platform:
- Add a job-level `shell: bash` default so the `tr` used in
"Determine Python version string for PDM" works on Windows
(uses Git Bash).
- Replace the `pdm use --venv in-project && source .venv/bin/activate
&& python runtests.py` activation dance in the test step with
`pdm run python runtests.py`. `source .venv/bin/activate` hard-
codes the POSIX venv layout and would fail on Windows (where the
activate script lives at .venv/Scripts/activate). `pdm run`
abstracts the platform-specific layout and uses the same venv
that the earlier `pdm install` step created — matching the
convention already documented in CLAUDE.md.
Also add `fail-fast: false` so a failure in one cell doesn't
cancel the others: the diagnostic value of seeing which
(Python × OS) combinations regress outweighs the minute savings
from aborting early, especially with a matrix this small.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 3f663a1 commit 4f554ad
1 file changed
Lines changed: 23 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
37 | 40 | | |
| 41 | + | |
38 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
39 | 51 | | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
40 | 61 | | |
41 | 62 | | |
42 | 63 | | |
| |||
62 | 83 | | |
63 | 84 | | |
64 | 85 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
| 86 | + | |
69 | 87 | | |
70 | 88 | | |
71 | 89 | | |
| |||
0 commit comments