Skip to content

Python: Add Python 3.15 support and refresh dependencies - #9363

Merged
Eduard van Valkenburg (eavanvalkenburg) merged 3 commits into
mainfrom
python-315-support
Oct 14, 2026
Merged

Eduard van Valkenburg (eavanvalkenburg) merged 3 commits into
mainfrom
python-315-support

Conversation

@eavanvalkenburg

Copy link
Copy Markdown
Member

Motivation & Context

Python 3.15 is now stable, but the released Python packages do not advertise support for it and the standard agent-framework install has not been validated against the final interpreter. This change establishes an explicit support boundary: the compatible meta-package set is tested and documented, while integrations blocked by upstream dependencies remain clearly unavailable or limited.

The compatibility pass also refreshes the Python tooling required for 3.15 and incorporates the outstanding Python frontend dependency updates so the branch is validated against the current development stack.

Description & Review Guide

Related Issue

Fixes #9362

No competing PR was found for the implementation issue. The dependency refresh incorporates and supersedes the still-open #9307, #9308, and #9309 updates.

AI Assistance

  • No material AI assistance was used.
  • This is an AI-assisted contribution. I reviewed, understood, and verified all submitted content and accept responsibility for it.

AI assistance details: GitHub Copilot assisted with the dependency audit, implementation, compatibility testing, documentation, and PR description.

Contribution Checklist

  • The code builds clean without any errors or warnings
  • All unit tests pass, and I have added new tests where possible
  • The PR follows the Contribution Guidelines
  • This PR links to an agreed issue with no competing open PR, or the Related Issue section documents a trivial-change or repository-automation exception.
  • This is not a breaking change. If it is a breaking change, add the breaking change label (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and the title prefix in sync automatically.

@github-code-quality

github-code-quality Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Python

Python / code-coverage/python

The overall line coverage in commit 321807a in the python-315-support branch remains at 92%, unchanged from commit 8ec38c4 in the main branch.


Updated October 14, 2026 11:54 UTC

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

SQL Server advertises and tests Python 3.15 despite its locked driver providing no compatible wheel or source distribution.

3 open findings
What changed in this PR

Adds Python 3.15 support metadata and CI coverage while documenting unsupported integrations and refreshing Python/frontend dependencies.

Changes:

  • Adds Python 3.15 classifiers, CI lanes, and compatibility documentation.
  • Updates uv, SQL Server, type-checking, linting, and build dependencies.
  • Incorporates React, ChatKit, and Lucide dependency updates from #9307–#9309.
File Description
python/​uv.lock Refreshes uv and SQL Server dependency locks.
python/​tooling/​requirements-typing.txt Updates ty and zuban.
python/​tooling/​requirements-quality.txt Updates Ruff.
python/​tooling/​requirements-api-compatibility.txt Updates Griffe.
python/​samples/​05-end-to-end/​chatkit-integration/​frontend/​package.json Updates ChatKit and React dependencies.
python/​samples/​05-end-to-end/​chatkit-integration/​frontend/​package-lock.json Regenerates ChatKit sample lockfile.
python/​samples/​05-end-to-end/​ag_ui_workflow_handoff/​frontend/​src/​App.tsx Imports the React JSX type.
python/​samples/​05-end-to-end/​ag_ui_workflow_handoff/​frontend/​package.json Upgrades the sample to React 19.3.
python/​samples/​05-end-to-end/​ag_ui_workflow_handoff/​frontend/​package-lock.json Regenerates the handoff sample lockfile.
python/​samples/​05-end-to-end/​ag_ui_single_agent/​frontend/​package.json Upgrades the sample to React 19.3.
python/​samples/​05-end-to-end/​ag_ui_single_agent/​frontend/​package-lock.json Regenerates the single-agent lockfile.
python/​README.md Documents Python 3.15 support limitations.
python/​pyproject.toml Advertises 3.15 and updates uv.
python/​packages/​typesafe/​tests/​typesafe/​test_chat_client.py Suppresses a new ty diagnostic.
python/​packages/​typesafe/​pyproject.toml Adds 3.15 metadata and updates uv_build.
python/​packages/​tools/​pyproject.toml Adds Python 3.14–3.15 classifiers.
python/​packages/​sql-server/​README.md Claims expanded driver compatibility.
python/​packages/​sql-server/​pyproject.toml Removes the 3.15 cap and updates mssql-python.
python/​packages/​redis/​README.md Documents the RedisVL 3.15 limitation.
python/​packages/​qdrant/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​purview/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​postgres/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​orchestrations/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​oracle/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​openai/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​ollama/​pyproject.toml Adds classifiers and updates uv_build.
python/​packages/​monty/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​mongodb/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​mistral/​pyproject.toml Adds classifiers and updates uv_build.
python/​packages/​mem0/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​lab/​uv.lock Refreshes Lab tooling dependencies.
python/​packages/​lab/​README.md Documents Lab’s 3.15 blockers.
python/​packages/​lab/​pyproject.toml Updates Lab development tooling.
python/​packages/​hosting/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​hosting-telegram/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​hosting-responses/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​hosting-mcp/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​hosting-a2a/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​github_copilot/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​gemini/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​foundry/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​foundry_local/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​foundry_hosting/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​duckdb/​README.md Documents missing DuckDB 3.15 wheels.
python/​packages/​devui/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​devui/​frontend/​yarn.lock Locks updated frontend dependencies.
python/​packages/​devui/​frontend/​package.json Updates React and Lucide.
python/​packages/​devui/​frontend/​package-lock.json Regenerates the DevUI npm lockfile.
python/​packages/​declarative/​README.md Documents Power Fx version limitations.
python/​packages/​core/​tests/​core/​conftest.py Adds narrow ty suppressions.
python/​packages/​core/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​copilotstudio/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​claude/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​chatkit/​pyproject.toml Adds Python 3.14–3.15 classifiers.
python/​packages/​bedrock/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​azure-documentdb/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​azure-cosmos/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​azure-cosmos-memory/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​azure-contentunderstanding/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​azure-ai-search/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​anthropic/​pyproject.toml Adds the Python 3.15 classifier.
python/​packages/​ag-ui/​README.md Documents A2UI’s 3.15 limitation.
python/​packages/​ag-ui/​pyproject.toml Adds Python 3.14–3.15 classifiers.
python/​packages/​a2a/​pyproject.toml Adds the Python 3.15 classifier.
python/​.pre-commit-config.yaml Updates the uv pre-commit hook.
.github/​workflows/​python-tests.yml Extends Python 3.15 CI coverage.
.github/​workflows/​python-lab-tests.yml Updates setup-uv.
.github/​workflows/​python-api-compatibility.yml Updates setup-uv and uv.
.github/​workflows/​issue-triage.yml Updates setup-uv.
.github/​workflows/​github-automation-tests.yml Updates setup-uv and uv.
.github/​workflows/​devflow-pr-review.yml Updates setup-uv.
.github/​workflows/​devflow-fix-ci.yml Updates setup-uv.
.github/​actions/​python-setup/​action.yml Updates the shared setup-uv action.
Files not reviewed (4)
  • python/packages/devui/frontend/package-lock.json: Generated file
  • python/samples/05-end-to-end/ag_ui_single_agent/frontend/package-lock.json: Generated file
  • python/samples/05-end-to-end/ag_ui_workflow_handoff/frontend/package-lock.json: Generated file
  • python/samples/05-end-to-end/chatkit-integration/frontend/package-lock.json: Generated file

🧠 Review effort: Balanced


💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/python-tests.yml
Comment thread python/packages/sql-server/pyproject.toml
Comment thread python/packages/sql-server/README.md

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MAF Automated Review — Iteration 1

Result: No findings
Scope: full PR (1 commit(s)): 1565f2c3567a
Model: gpt-5.6-sol

Overview

The PR explicitly scopes Python 3.15 support to compatible published packages, encodes incompatible integrations with environment markers, and adds Linux full-suite plus Windows install/import validation. The uv and frontend dependency updates are coordinated with their manifests and lockfiles, while narrow typing suppressions remain confined to test doubles. The checked-in workspace lock still excludes Python 3.15 because Redis remains a workspace member, but that constraint predates this range and does not contradict the documented released-package contract, so no publishable defect remains after reconciliation.

Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
No publishable findings remained after source verification for this scope.

@jpalvarezl Jose Alvarez (jpalvarezl) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Python 3.15 support boundary, dependency refresh, generated locks, and CI coverage look consistent. I left one non-blocking documentation note about aligning contributor setup guidance with the new supported range.

Comment thread python/README.md
Comment thread python/README.md

@baywet Vincent Biret (baywet) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

while I understand the "no breaking changes" policy, it seems that removing support for older versions of python is something that's often done without major revisions in the ecosystem.
microsoft/kiota-python#349

Of course, you're the resident python expert, if we still don't want to do it now, can you at least log an issues for the next major version please?

Comment thread .github/workflows/github-automation-tests.yml Outdated
@eavanvalkenburg

Eduard van Valkenburg (eavanvalkenburg) commented Oct 14, 2026 •

Copy link
Copy Markdown
Member Author

Follow-up from Vincent Biret (@baywet)’s review: #9373 now tracks removing Python 3.10 support as a Python release change, with a target completion date of October 31, 2026. This PR keeps the agreed documentation-only soft deprecation and leaves metadata and CI coverage intact.

@baywet Vincent Biret (baywet) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for making the changes!

This branch was successfully deployed

1 active deployment
github-app-auth — 321807a0 Deployed Oct 14, 2026 by eavanvalkenburg via add_label #25300
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs lab Usage: [Issues, PRs], Target: lab packages python Usage: [Issues, PRs], Target: Python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python: Support Python 3.15 in the standard package set

4 participants