chore: cap requires-python at <3.14 across workspace#573
Merged
Conversation
Python 3.14 has no scipy 1.15.3 wheels for macOS arm64, so uvx falls through to a source build that needs gfortran and fails. Capping the workspace at <3.14 makes uv pick a compatible interpreter (3.10-3.13) instead.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThis PR adds an upper bound Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The init scaffold produced new projects with `requires-python = ">=3.10"`, inheriting the same Python 3.14 / scipy wheel problem the rest of the workspace just fixed.
maxkahan
approved these changes
May 21, 2026
This was referenced May 21, 2026
aliev
added a commit
that referenced
this pull request
May 25, 2026
…CI (#582) * chore: declare Python 3.14 support and add per-version compat CI Lifts the `<3.14` cap added in #573 from `agents-core` and every plugin except `kokoro` and `smart_turn` (both pin `numpy<2.3`, which conflicts with the `numpy>=2.3.2` `getstream[webrtc]` carries on 3.14). The workspace temporarily sources `getstream` from a `main` commit until a release containing GetStream/stream-py#253 lands on PyPI. `smart_turn` and `vogent` had their `requires-python` raised to `>=3.11` — both depend on `onnxruntime>=1.24.3`, which has no `cp310` wheels, so the previous `>=3.10` metadata was broken. Adds `dev.py check-python-versions <ver>` and a matching `.github/workflows/python-versions.yml` matrix (3.10–3.14). For every workspace member it resolves `pyproject.toml` from a tmpdir (so workspace `override-dependencies` don't mask the install path real users see) and skips members whose `requires-python` excludes the target. This is what caught the `smart_turn`/`vogent` 3.10 regression. * chore(vogent): cap requires-python at <3.14 `vogent-turn==0.1.1` pulls `onnxruntime-gpu==1.22.*` on Linux/Windows x86_64, and that has no `cp314` wheels. The new compat CI caught this on Ubuntu — the macOS local run had missed it because the platform marker `(platform_machine == 'x86_64' and sys_platform == 'linux') or (platform_machine == 'x86_64' and sys_platform == 'win32')` excludes macOS arm64 from the `onnxruntime-gpu` dependency. * chore: address CodeRabbit feedback * CHANGELOG: add (#582) to the Python 3.14 support and the `smart_turn`/`vogent` `requires-python` fix headings, matching the existing per-entry PR-reference convention. * Examples that depend on the now-3.11+ `smart_turn` or `vogent` plugins (pocket, inworld, openrouter, moondream, elevenlabs, fast_whisper, fish, mistral, examples/01_simple_agent_example) had their own `requires-python` floors raised so their metadata reflects what actually installs. Skipped: the suggestion to pin `actions/checkout` to a full commit SHA and set `persist-credentials: false`. The other workflows in the repo (`ci.yml`, `run_tests.yml`, `daily.yml`) all use `@v6` with default credential handling, and matching that pattern is more valuable here than a workflow-only deviation. * chore: bump getstream to >=3.4.0 and drop temporary git pin `getstream` 3.4.0 is on PyPI now (the first release that includes the Python 3.14 wheel-availability fix from GetStream/stream-py#253), so the temporary `[tool.uv.sources]` git pin against a `main` commit is no longer needed. * Drop the `getstream = { git = ... }` source override in the root `pyproject.toml`. * Raise the lower bound to `>=3.4.0` in `agents-core` and the `getstream` plugin (3.3.4 cannot install on 3.14). * Regenerate `uv.lock` (now resolves `getstream` from PyPI). * Trim the matching paragraph in `CHANGELOG.md` so it no longer mentions a temporary pin. * chore(ci): rename "Python compat" workflow to "Python compatibility check" `Python compat` was ambiguous out of context — could read as a feature claim rather than a CI gate. Renaming the workflow (and its `concurrency` group) makes it clear at a glance that the job verifies dependency resolution across Python versions.
aliev
added a commit
that referenced
this pull request
May 25, 2026
#573 (Python 3.14 cap) and #582 (Python 3.14 support + smart_turn/vogent requires-python bump) both happened between v0.6.1 and v0.6.2. The net user-visible change in v0.6.2 is "Python 3.14 now works", so the intermediate cap is dropped from the changelog and the #582 entries are folded in instead — feature under New Features, the smart_turn/vogent metadata fix under Bug Fixes alongside the packaging fix. Also picks up entries that landed on main and were missing from this PR: - #581 (Richer `vision-agents init` scaffold) — tests/, Dockerfile, and the simpler `uv run agent.py run` invocation. - #583 (Gemini default model bump) — `gemini-3.1-flash-lite-preview` was decommissioned; replaced with `gemini-flash-lite-latest`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Trying
uvx vision-agentson a machine where Python 3.14 is the newest installed interpreter currently fails: uv picks 3.14, scipy 1.15.3 has no cp314 wheels for macOS arm64, and the resulting source build needs a Fortran compiler:scipyarrives transitively throughgetstream[webrtc], so we cannot easily fix the wheel coverage from our side. The workspace also only advertises support for 3.11/3.12/3.13 via trove classifiers inagents-core/pyproject.toml, so admitting 3.14 was unintentional.Changes
<3.14upper bound torequires-pythonin every workspace member (agents-core+ all plugins + theirexample/projects).uv.lock.With this,
uvx vision-agentswill pick a compatible interpreter automatically (3.10-3.13) instead of falling into the scipy source build. We can bump the cap once upstream wheels (and our own trove classifiers) cover 3.14.