Skip to content

ci: add Python 3.14 test lane exercising the 3.14 compatibility surface - #54

Closed
spfcraze wants to merge 1 commit into
mainfrom
feat/ci-py314-lane
Closed

ci: add Python 3.14 test lane exercising the 3.14 compatibility surface#54
spfcraze wants to merge 1 commit into
mainfrom
feat/ci-py314-lane

Conversation

@spfcraze

@spfcraze spfcraze commented Aug 10, 2026

Copy link
Copy Markdown
Owner

ci: add Python 3.14 test lane

Summary

Adds a test-py314 job to .github/workflows/tests.yml that exercises the
Python 3.14 compatibility surface on a supported CI interpreter. The
project's CI is currently 3.11-only (uv python install 3.11 /
uv sync --locked --python 3.11 in both test jobs); the 3.14 support work
(daemon_pool WorkerContext, wake-word ai-edge-litert bridge, stdlib
removals) has no CI coverage.

This addresses the gap noted in sweeper reviews of the daemon_pool 3.14
work: the project's requires-python was capped below 3.14, so the
3.14-specific tests could not exercise _create_worker_context on a
supported CI interpreter. Once the ceiling is raised, this lane is what
actually verifies the 3.14 surface on every PR.

What the lane runs

  • uv sync --locked --python 3.14 --extra all --extra dev --extra wake
    — the same pinned lockfile, resolved for 3.14 (cp314 wheels verified for
    the full dependency set; tflite-runtime is excluded on 3.12+ via the
    marker-gated override in pyproject.toml).
  • The 3.14-specific test surface, in one bounded run:
    • tests/tools/test_daemon_pool.py (WorkerContext)
    • tests/tools/test_wake_word.py (ai-edge-litert bridge)
    • tests/tools/test_delegate.py (depends on the daemon pool timeout executor)
    • tests/tools/test_async_delegation.py
    • tests/agent/test_compression_concurrent_fork.py
  • API keys blanked (same as the 3.11 lane) — no real API calls.
  • Separate job (not a matrix expansion) so a 3.14 regression fails
    independently of the 3.11 lane and the duration-cache merge.

Verification (this machine, Python 3.14.4, the exact lane command)

$ python -m pytest tests/tools/test_daemon_pool.py \
    tests/tools/test_wake_word.py tests/tools/test_delegate.py \
    tests/tools/test_async_delegation.py \
    tests/agent/test_compression_concurrent_fork.py \
    -q --no-header -p no:cacheprovider
156 passed, 3 skipped in 29.98s

Why this is additive

The open daemon_pool 3.14 PRs all modify tools/daemon_pool.py; none
touches .github/workflows/. This PR is CI-only — it makes all of those
fixes verifiable, and is independent of which daemon_pool implementation
lands.

Notes

  • Requires requires-python to accept 3.14 (the ceiling raise is handled
    by the separate 3.14-support PRs). The lane installs with --locked
    against the current lockfile; until the ceiling is raised the lane will
    need the lockfile's 3.14 markers (already present in uv.lock).
  • test-py314 is intentionally bounded (5 files) to keep CI time in
    check; it can be expanded to the full slice matrix once 3.14 is the
    supported default.

@spfcraze
spfcraze force-pushed the feat/ci-py314-lane branch from dddc27e to 4749eb3 Compare August 10, 2026 19:57
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown

૮ >ﻌ< ა ci review

ran on 4749eb3 — ci: add Python 3.14 test lane exercising the 3.14 compatibil

❌ Job failures

Python tests / test-py314 · View job

Job Python tests / test-py314 failed.


⚠️ Action required

CI-sensitive file review · View job

This PR changes CI-sensitive files (eslint config, workflow YAMLs, or composite actions). These influence what the js-autofix job executes and pushes to main.

Sensitive files changed:

How to fix:

Add the ci-reviewed label after verifying:

  • no new eslint rules with custom fix functions that write outside linted paths,
  • no workflow changes that widen permissions or remove guards,
  • no composite action changes that alter what gets executed.

⚠️ Warnings

OSV vulnerability scan · View job

2 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


debug info

CI timings

CI timings · View report · View job

Wall time 7m38s vs 7m50s (-2.6%). 17 job(s) slower, 22 faster, 1 unchanged.

  • JS & TS checks / web / check: -36.0s
  • Python tests / Run tests slice 12/12: +32.0s
  • JS & TS checks / apps/desktop / check:test:ui: +31.0s
  • JS & TS checks / apps/shared / check: -27.0s
  • Python tests / Run tests slice 11/12: +17.0s

@spfcraze

Copy link
Copy Markdown
Owner Author

Folded into #53 — the 3.14 CI lane belongs with the 3.14 support change it exercises (the lane is untestable without the daemon_pool fix + requires-python raise from #53). PR #53 now includes this lane.

@spfcraze spfcraze closed this Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant