Motivation
The package declares generic Python 3.11–3.14 support, but CI executes only on Ubuntu. Platform-sensitive areas include:
threading.Timer, daemon workers, and sync timeout behavior;
- loopback HTTP E2E tests and socket cleanup;
- asyncio cancellation and event-loop shutdown;
- path/package installation behavior.
A foundational library benefits from detecting platform regressions before users do.
Proposed CI shape
Keep the full quality/coverage/Redis matrix on Ubuntu. Add a smaller smoke matrix on windows-latest and macos-latest for the oldest and newest supported Python versions, or start with one Python version per OS if runtime cost is a concern.
Acceptance criteria
- Run core, timeout, pipeline, state-machine, typing-surface runtime, and loopback integration tests on Windows and macOS.
- Skip only tests that genuinely require Linux services; document every exclusion.
- Use
uv sync --frozen and the same locked dependency graph.
- Ensure jobs are cancellable with the existing workflow concurrency policy.
- Keep the matrix intentionally lightweight and avoid duplicating Ruff/mypy/pyright on every OS.
- Document the supported/tested platform policy in
CONTRIBUTING.md or the docs.
Motivation
The package declares generic Python 3.11–3.14 support, but CI executes only on Ubuntu. Platform-sensitive areas include:
threading.Timer, daemon workers, and sync timeout behavior;A foundational library benefits from detecting platform regressions before users do.
Proposed CI shape
Keep the full quality/coverage/Redis matrix on Ubuntu. Add a smaller smoke matrix on
windows-latestandmacos-latestfor the oldest and newest supported Python versions, or start with one Python version per OS if runtime cost is a concern.Acceptance criteria
uv sync --frozenand the same locked dependency graph.CONTRIBUTING.mdor the docs.