Skip to content

Add lightweight Windows and macOS compatibility smoke jobs #86

Description

@bagowix

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions