Skip to content

Python: [BREAKING] Remove Python 3.10 support - #9948

Merged
Eduard van Valkenburg (eavanvalkenburg) merged 2 commits into
mainfrom
remove-python-3-10
Nov 2, 2026
Merged

Eduard van Valkenburg (eavanvalkenburg) merged 2 commits into
mainfrom
remove-python-3-10

Conversation

@eavanvalkenburg

Copy link
Copy Markdown
Member

Motivation & Context

Complete the Python 3.10 support removal now that the interpreter has reached upstream end of life. The supported baseline is already Python 3.11+, but package metadata still allows Python 3.10 installation and the codebase retains compatibility branches for it.

Description & Review Guide

  • What are the major changes? Raise affected package and sample requirements to Python 3.11; update Ruff, MyPy, pyupgrade, and development settings; remove the Python 3.10 sample Pyright profile; and regenerate both workspace and standalone Lab lockfiles. Remove obsolete typing imports, TOML fallbacks, cancellation branches, and test skips. Update support documentation and the public consumer skill.
  • What is the impact of these changes? New distributions reject Python 3.10 installations. Users must upgrade to Python 3.11 or later, subject to existing integration-specific upper bounds. Keep backports still needed on Python 3.11, including Pydantic-compatible TypedDict, TypeVar defaults, override, and Sentinel. Existing timeout APIs remain unchanged: disable the newly activated ASYNC109 rule rather than rename their parameters. Changelog and release-note assembly remain with the central release workflow.
  • What do you want reviewers to focus on? Completeness of the minimum-version change across distributions and samples, preservation of supported-version behavior, and the distinction between obsolete and still-required backports. Workflow cleanup must continue to distinguish Task objects from plain Future objects.

Targeted Python 3.11 suites passed for core APIs, MCP, workflows, OpenAI, GitHub Copilot, Cosmos memory, declarative MCP handling, AG-UI, and release/dependency tooling. The full workspace unit suite and live-service integration suites were not run. Representative exact commands, run from python/:

  • uv run --no-sync python -m pytest packages/core/tests/core/test_vectors.py -m 'not integration' -q --tb=short — passed.
  • uv run --no-sync python -m pytest packages/github_copilot/tests/test_github_copilot_agent.py packages/azure-cosmos-memory/tests/test_context_provider.py packages/declarative/tests/test_default_mcp_tool_handler.py packages/ag-ui/tests/ag_ui/test_ag_ui_client.py packages/core/tests/workflow/test_functional_workflow.py scripts/tests scripts/dependencies/tests -m 'not integration' -q --tb=short — passed.
  • uv run --no-sync --with-requirements tooling/requirements-typing.txt pyright --project packages/core/pyproject.toml — passed with zero errors and warnings. Changed source also passed strict Pyright or its package-specific configuration.
  • uv lock --quiet --check and uv lock --quiet --check --directory packages/lab — passed.

Built core and meta-package wheels both declare Requires-Python: >=3.11. Manifest checks confirmed Python 3.10 rejection in all 52 project manifests and 85 inline script manifests. Core/OpenAI source lint passed; the broader baseline comparison found no newly introduced lint failures.

Related Issue

Fixes #9373

The issue has the ready-for-implementation label. No competing open PR was found for this issue.

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 implementation, test updates and execution, documentation, lockfile regeneration, and this 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 title prefix in sync automatically.

Copilot AI balanced review requested due to automatic review settings November 2, 2026 09:32
@agent-framework-automation agent-framework-automation Bot added documentation Usage: [Issues, PRs], Target: documentation in the code base and learn docs python Usage: [Issues, PRs], Target: Python lab Usage: [Issues, PRs], Target: lab packages breaking change Usage: [PRs], Target: all PRs that introduce changes that are not backward compatible labels Nov 2, 2026
@github-code-quality

github-code-quality Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Code coverage overview

Languages: Python

Python / code-coverage/python

main 5b8c9c8 remove-python-3-10 48d8dd9 +/-
92% 92% 0%
View coverage of the 10 most impacted files.
File main 5b8c9c8 remove-python-3-10 48d8dd9 +/-
packages/core/a..._model_utils.py 61% 59% -2%
packages/core/a...amework/_mcp.py 91% 91% 0%
packages/declar...tive/_loader.py 78% 78% 0%
packages/azure-...ext_provider.py 89% 89% 0%
packages/core/a...t_info_mixin.py 91% 91% 0%
packages/openai...enai/_shared.py 92% 92% 0%
packages/orches.../_group_chat.py 84% 84% 0%
packages/core/a...ion_executor.py 92% 92% 0%
packages/declar...arative_base.py 93% 93% 0%
packages/core/a.../_functional.py 90% 91% +1%

ℹ️ Calculations represent line coverage. Results may change as calculations are updated.


Updated November 02, 2026 10:14 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.

🟢 Approval recommended

No active review issues are reported for the Python 3.11 minimum-version update.

No open issues 🎉

What changed in this PR

Completes the breaking removal of Python 3.10 support by enforcing Python 3.11+ across affected packages and samples, and removing obsolete compatibility code.

Changes:

  • Raise installation requirements and tooling targets while preserving integration-specific upper bounds.
  • Simplify typing imports, TOML parsing, cancellation handling, and version-gated tests, retaining backports still needed on Python 3.11.
  • Update support documentation, development settings, and dependency-lock metadata.

This pull request is too complex or risky for automated approval.

File Description
TRANSPARENCY_FAQ.md Update Python platform requirements.
skills/​agent-framework-builder-python/​SKILL.md Document the Python 3.11 minimum.
python/​uv.lock Refresh dependency markers and tooling metadata.
python/​scripts/​workspace_poe_tasks.py Remove Python 3.10 sample-profile selection.
python/​scripts/​tests/​test_prepare_release.py Update release-test project requirements.
python/​scripts/​sample_validation/​report.py Use standard-library Never.
python/​scripts/​sample_validation/​create_dynamic_workflow_executor.py Use standard-library Never.
python/​scripts/​dependencies/​tests/​test_upgrade_dev_dependencies.py Update dependency-marker fixtures.
python/​scripts/​dependencies/​tests/​test_dependency_bounds_release.py Update minimum-version fixtures and expectations.
python/​scripts/​_toml.py Use built-in tomllib.
python/​samples/​semantic-kernel-migration/​processes/​nested_process.py Raise minimum and update Never import.
python/​samples/​semantic-kernel-migration/​processes/​fan_out_fan_in_process.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​orchestrations/​sequential.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​orchestrations/​magentic.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​orchestrations/​handoff.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​orchestrations/​group_chat.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​orchestrations/​concurrent_basic.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​openai_responses/​03_responses_agent_structured_output.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​openai_responses/​02_responses_agent_with_tool.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​openai_responses/​01_basic_responses_agent.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​copilot_studio/​02_copilot_studio_streaming.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​copilot_studio/​01_basic_copilot_studio_agent.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​chat_completion/​03_chat_completion_thread_and_stream.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​chat_completion/​02_chat_completion_with_tool.py Require Python 3.11.
python/​samples/​semantic-kernel-migration/​chat_completion/​01_basic_chat_completion.py Require Python 3.11.
python/​samples/​SAMPLE_GUIDELINES.md Update inline script-metadata guidance.
python/​samples/​autogen-migration/​single_agent/​03_agent_thread_and_stream.py Require Python 3.11.
python/​samples/​autogen-migration/​single_agent/​02_agent_with_tool.py Require Python 3.11.
python/​samples/​autogen-migration/​single_agent/​01_basic_agent.py Require Python 3.11.
python/​samples/​05-end-to-end/​workflow_evaluation/​create_workflow.py Use standard-library Never.
python/​samples/​05-end-to-end/​neo4j_graphrag/​main.py Require Python 3.11.
python/​samples/​05-end-to-end/​evaluation/​self_reflection/​self_reflection.py Require Python 3.11.
python/​samples/​05-end-to-end/​evaluation/​red_teaming/​red_team_agent_sample.py Require Python 3.11.
python/​samples/​05-end-to-end/​chatkit-integration/​app.py Require Python 3.11.
python/​samples/​05-end-to-end/​ag_ui_single_agent/​backend/​server.py Require Python 3.11.
python/​samples/​04-hosting/​mcp/​workflow_app.py Require Python 3.11.
python/​samples/​04-hosting/​mcp/​session_app.py Require Python 3.11.
python/​samples/​04-hosting/​mcp/​pyproject.toml Raise sample project minimum.
python/​samples/​04-hosting/​mcp/​mcpserver_app.py Require Python 3.11.
python/​samples/​04-hosting/​mcp/​manual_app.py Require Python 3.11.
python/​samples/​04-hosting/​mcp/​agent_app.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​tools/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​observability/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​mcp/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​foundry_toolbox/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​foundry_toolbox_mcp_skills/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​foundry_memory/​provision_memory_store.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​foundry_memory/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​files/​upload_file.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​files/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​custom_storage/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​responses/​azure_search_rag/​main.py Require Python 3.11.
python/​samples/​04-hosting/​foundry-hosted-agents/​invocations/​telegram/​tests/​test_infrastructure.py Group tomllib with standard-library imports.
python/​samples/​04-hosting/​foundry-hosted-agents/​invocations/​basic/​workflow.py Require Python 3.11.
python/​samples/​04-hosting/​container/​hyperlight_codeact/​call_server.py Require Python 3.11.
python/​samples/​04-hosting/​af-hosting/​local_telegram/​pyproject.toml Raise sample project minimum.
python/​samples/​04-hosting/​af-hosting/​local_telegram/​polling_app.py Require Python 3.11.
python/​samples/​04-hosting/​af-hosting/​local_telegram/​app.py Require Python 3.11.
python/​samples/​04-hosting/​af-hosting/​local_responses/​pyproject.toml Raise sample project minimum.
python/​samples/​04-hosting/​af-hosting/​local_responses_workflow/​pyproject.toml Raise sample project minimum.
python/​samples/​04-hosting/​af-hosting/​local_responses_harness/​pyproject.toml Raise sample project minimum.
python/​samples/​03-workflows/​visualization/​concurrent_with_visualization.py Use standard-library Never.
python/​samples/​03-workflows/​tool-approval/​agent_as_tool_vs_workflow_approval.py Use standard-library Never.
python/​samples/​03-workflows/​state-management/​state_with_agents.py Use standard-library Never.
python/​samples/​03-workflows/​parallelism/​map_reduce_and_visualization.py Use standard-library Never.
python/​samples/​03-workflows/​parallelism/​fan_out_fan_in_edges.py Use standard-library Never.
python/​samples/​03-workflows/​parallelism/​aggregate_results_of_different_types.py Use standard-library Never.
python/​samples/​03-workflows/​orchestrations/​sequential_custom_executors.py Use standard-library Never.
python/​samples/​03-workflows/​observability/​executor_io_observation.py Use standard-library Never.
python/​samples/​03-workflows/​human-in-the-loop/​agents_with_HITL.py Use standard-library Never.
python/​samples/​03-workflows/​human-in-the-loop/​agents_with_approval_requests.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​workflow_cancellation.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​switch_case_edge_group.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​sequential_streaming.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​sequential_executors.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​multi_selection_edge_group.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​intermediate_vs_terminal_outputs.py Use standard-library Never.
python/​samples/​03-workflows/​control-flow/​edge_condition.py Use standard-library Never.
python/​samples/​03-workflows/​composition/​sub_workflow_request_interception.py Use standard-library Never.
python/​samples/​03-workflows/​composition/​sub_workflow_parallel_requests.py Use standard-library Never.
python/​samples/​03-workflows/​composition/​sub_workflow_basics.py Use standard-library Never.
python/​samples/​03-workflows/​agents/​azure_chat_agents_tool_calls_with_feedback.py Use standard-library Never.
python/​samples/​03-workflows/​_start-here/​step1_executors_and_edges.py Use standard-library Never.
python/​samples/​02-agents/​vector_stores/​optimized_data_formats.py Require Python 3.11.
python/​samples/​02-agents/​vector_stores/​azure_ai_search.py Require Python 3.11.
python/​samples/​02-agents/​providers/​mistral/​mistral_embeddings.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_with_google_search.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_with_google_maps.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_with_code_execution.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_search_agent.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_image_search_agent.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_embeddings.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_basic.py Require Python 3.11.
python/​samples/​02-agents/​providers/​gemini/​gemini_advanced.py Require Python 3.11.
python/​samples/​02-agents/​providers/​copilotstudio/​copilotstudio_with_explicit_settings.py Require Python 3.11.
python/​samples/​02-agents/​observability/​workflow_observability.py Use standard-library Never.
python/​samples/​02-agents/​observability/​microsoft_opentelemetry_distro.py Require Python 3.11.
python/​samples/​02-agents/​observability/​foundry_tracing.py Require Python 3.11.
python/​samples/​02-agents/​observability/​foundry_agent_tracing.py Require Python 3.11.
python/​samples/​02-agents/​middleware/​atr_validation_middleware.py Require Python 3.11.
python/​samples/​02-agents/​harness/​harness_research.py Require Python 3.11.
python/​samples/​02-agents/​harness/​harness_data_processing.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step04_production_ready/​hosted.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step04_production_ready/​evals.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step04_production_ready/​console_app.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step04_production_ready/​agent.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step03_scaling_capabilities.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step02_working_with_data.py Require Python 3.11.
python/​samples/​02-agents/​harness/​build_your_own_claw/​claw_step01_meet_your_claw.py Require Python 3.11.
python/​samples/​02-agents/​embeddings/​foundry_image_embeddings.py Require Python 3.11.
python/​samples/​02-agents/​embeddings/​foundry_embeddings.py Require Python 3.11.
python/​samples/​02-agents/​devui/​workflow_spam/​workflow.py Use standard-library Never.
python/​samples/​02-agents/​devui/​workflow_fanout/​workflow.py Use standard-library Never.
python/​samples/​02-agents/​devui/​in_memory_mode.py Use standard-library Never.
python/​samples/​02-agents/​context_providers/​azure_content_understanding/​05_large_doc_file_search.py Require Python 3.11.
python/​samples/​02-agents/​context_providers/​azure_content_understanding/​04_invoice_processing.py Require Python 3.11.
python/​samples/​02-agents/​context_providers/​azure_content_understanding/​03_multimodal_chat.py Require Python 3.11.
python/​samples/​02-agents/​context_providers/​azure_content_understanding/​02_multi_turn_session.py Require Python 3.11.
python/​samples/​02-agents/​context_providers/​azure_content_understanding/​01_document_qa.py Require Python 3.11.
python/​samples/​02-agents/​compaction/​tiktoken_tokenizer.py Require Python 3.11.
python/​samples/​02-agents/​auto_retry.py Require Python 3.11.
python/​samples/​01-get-started/​07_hosting.py Require Python 3.11.
python/​samples/​01-get-started/​05c_first_graph_workflow.py Use standard-library Never.
python/​README.md Document the enforced installation minimum.
python/​pyrightconfig.samples.py310.json Delete the obsolete sample profile.
python/​pyproject.toml Raise minimum and tooling targets; preserve timeout APIs.
python/​packages/​typesafe/​samples/​mcp_weather_server.py Require Python 3.11.
python/​packages/​typesafe/​samples/​mcp_function_calling.py Require Python 3.11.
python/​packages/​typesafe/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​typesafe/​agent_framework_typesafe/​_chat_client.py Use standard-library Self.
python/​packages/​tools/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​sql-server/​README.md Remove Python 3.10 installation guidance.
python/​packages/​sql-server/​pyproject.toml Raise package minimum.
python/​packages/​sql-server/​agent_framework_sql_server/​_vector_store.py Use standard-library Self.
python/​packages/​redis/​README.md Update support guidance, retaining the upper bound.
python/​packages/​redis/​pyproject.toml Raise minimum while preserving the upper bound.
python/​packages/​redis/​agent_framework_redis/​_context_provider.py Remove the Self compatibility branch.
python/​packages/​qdrant/​README.md Remove Python 3.10 installation guidance.
python/​packages/​qdrant/​pyproject.toml Raise package minimum.
python/​packages/​purview/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​purview/​agent_framework_purview/​_settings.py Remove obsolete TypedDict import branching.
python/​packages/​postgres/​tests/​test_postgres_integration.py Use standard-library Self.
python/​packages/​postgres/​README.md Update support and binary-install version ranges.
python/​packages/​postgres/​pyproject.toml Raise package minimum.
python/​packages/​postgres/​agent_framework_postgres/​_vector_store.py Use standard-library Self.
python/​packages/​orchestrations/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​orchestrations/​agent_framework_orchestrations/​_magentic.py Move Never; retain backported Sentinel.
python/​packages/​orchestrations/​agent_framework_orchestrations/​_group_chat.py Use standard-library Never.
python/​packages/​orchestrations/​agent_framework_orchestrations/​_concurrent.py Use standard-library Never.
python/​packages/​orchestrations/​agent_framework_orchestrations/​_base_group_chat_orchestrator.py Use standard-library Never.
python/​packages/​oracle/​README.md Remove Python 3.10 installation guidance.
python/​packages/​oracle/​pyproject.toml Raise package minimum.
python/​packages/​oracle/​agent_framework_oracle/​_vector_store.py Use standard-library Self.
python/​packages/​openai/​tests/​openai/​test_openai_embedding_client_azure.py Use exception notes directly.
python/​packages/​openai/​tests/​openai/​test_openai_chat_completion_client_azure.py Use exception notes directly.
python/​packages/​openai/​tests/​openai/​test_openai_chat_client.py Assert exception-note preservation unconditionally.
python/​packages/​openai/​tests/​openai/​test_openai_chat_client_azure.py Use exception notes directly.
python/​packages/​openai/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​openai/​agent_framework_openai/​_shared.py Remove obsolete TypedDict import branching.
python/​packages/​openai/​agent_framework_openai/​_chat_completion_client.py Remove obsolete TypedDict import branching.
python/​packages/​openai/​agent_framework_openai/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​ollama/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​ollama/​agent_framework_ollama/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​nvidia/​pyproject.toml Raise package minimum.
python/​packages/​monty/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​mongodb/​README.md Remove Python 3.10 installation guidance.
python/​packages/​mongodb/​pyproject.toml Raise package minimum.
python/​packages/​mistral/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​mistral/​agent_framework_mistral/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​mem0/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​mem0/​agent_framework_mem0/​_context_provider.py Remove the Self compatibility branch.
python/​packages/​lab/​README.md Remove Python 3.10 installation guidance.
python/​packages/​lab/​pyproject.toml Raise minimum and remove direct tomli dependency.
python/​packages/​hyperlight/​tests/​hyperlight/​test_hyperlight_codeact.py Remove a Python 3.10-specific Windows skip.
python/​packages/​hyperlight/​README.md Update supported backend Python range.
python/​packages/​hyperlight/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​hosting/​pyproject.toml Raise package minimum.
python/​packages/​hosting-telegram/​pyproject.toml Raise package minimum.
python/​packages/​hosting-responses/​pyproject.toml Raise package minimum.
python/​packages/​hosting-mcp/​pyproject.toml Raise package minimum.
python/​packages/​hosting-a2a/​pyproject.toml Raise package minimum.
python/​packages/​github_copilot/​tests/​test_github_copilot_agent.py Remove obsolete SDK import skip.
python/​packages/​github_copilot/​pyproject.toml Remove redundant SDK version marker.
python/​packages/​github_copilot/​agent_framework_github_copilot/​_agent.py Remove the Self compatibility branch.
python/​packages/​gemini/​tests/​test_gemini_client.py Use standard-library NotRequired.
python/​packages/​gemini/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​gemini/​agent_framework_gemini/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​foundry/​tests/​foundry/​test_foundry_chat_client.py Use exception notes directly.
python/​packages/​foundry/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​foundry/​agent_framework_foundry/​_memory_provider.py Remove obsolete typing import branches.
python/​packages/​foundry/​agent_framework_foundry/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​foundry/​agent_framework_foundry/​_agent.py Remove obsolete TypedDict import branching.
python/​packages/​foundry_local/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​foundry_local/​agent_framework_foundry_local/​_foundry_local_client.py Remove obsolete TypedDict import branching.
python/​packages/​foundry_hosting/​tests/​test_responses.py Use standard-library Any.
python/​packages/​foundry_hosting/​tests/​test_responses_int.py Use standard-library Never.
python/​packages/​foundry_hosting/​tests/​test_invocations.py Use standard-library Any.
python/​packages/​foundry_hosting/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​foundry_hosting/​agent_framework_foundry_hosting/​_responses.py Use standard-library Any.
python/​packages/​foundry_hosting/​agent_framework_foundry_hosting/​_invocations.py Use standard-library Any.
python/​packages/​duckdb/​README.md Update supported installation version ranges.
python/​packages/​duckdb/​pyproject.toml Raise package minimum.
python/​packages/​devui/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​devui/​agent_framework_devui/​_session.py Use standard-library NotRequired.
python/​packages/​declarative/​tests/​test_default_mcp_tool_handler.py Assert cancellation-message preservation.
python/​packages/​declarative/​README.md Remove Python 3.10 installation guidance.
python/​packages/​declarative/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​declarative/​agent_framework_declarative/​_workflows/​_declarative_base.py Remove obsolete TypedDict import branching.
python/​packages/​declarative/​agent_framework_declarative/​_loader.py Remove obsolete TypedDict import branching.
python/​packages/​core/​tests/​workflow/​test_workflow_states.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_workflow_kwargs.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_workflow_context.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_workflow_agent.py Use standard-library typing helpers.
python/​packages/​core/​tests/​workflow/​test_workflow_agent_intermediate.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_typevar_validation.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_sub_workflow.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_strict_mode_event_labeling.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_output_executors_contract.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_output_designation.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_functional_workflow.py Remove obsolete cancellation and TaskGroup skips.
python/​packages/​core/​tests/​workflow/​test_function_executor.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_full_conversation.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_executor.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_checkpoint.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_checkpoint_validation.py Use standard-library Never.
python/​packages/​core/​tests/​workflow/​test_agent_executor_tool_calls.py Use standard-library Never.
python/​packages/​core/​tests/​core/​test_vectors.py Use standard-library TypeVar without defaults.
python/​packages/​core/​tests/​core/​test_sessions.py Use standard-library Self.
python/​packages/​core/​tests/​core/​test_serializable_mixin.py Use standard-library Self.
python/​packages/​core/​tests/​core/​test_observability.py Use standard-library Self.
python/​packages/​core/​tests/​core/​test_mcp.py Remove obsolete skips and exception-group guards.
python/​packages/​core/​tests/​core/​test_mcp_http_auth.py Remove version-dependent cancellation expectations.
python/​packages/​core/​tests/​core/​test_harness_file_access.py Update Windows-fallback test documentation.
python/​packages/​core/​README.md Document the enforced installation minimum.
python/​packages/​core/​pyproject.toml Raise minimum and remove redundant integration marker.
python/​packages/​core/​agent_framework/​_workflows/​_workflow_context.py Move Never; retain backported TypeVar.
python/​packages/​core/​agent_framework/​_workflows/​_workflow_builder.py Simplify Self import and update examples.
python/​packages/​core/​agent_framework/​_workflows/​_viz.py Use Python 3.11 starred subscript syntax.
python/​packages/​core/​agent_framework/​_workflows/​_request_info_mixin.py Use standard-library overload directly.
python/​packages/​core/​agent_framework/​_workflows/​_model_utils.py Remove the Self compatibility branch.
python/​packages/​core/​agent_framework/​_workflows/​_functional.py Simplify cancellation handling; preserve Task/Future distinction.
python/​packages/​core/​agent_framework/​_workflows/​_function_executor.py Use standard-library overload directly.
python/​packages/​core/​agent_framework/​_workflows/​_agent_executor.py Move Never; retain backported TypedDict.
python/​packages/​core/​agent_framework/​_vectors.py Move Self; retain required typing backports.
python/​packages/​core/​agent_framework/​_types.py Move Required; retain backported TypedDict.
python/​packages/​core/​agent_framework/​_settings.py Remove obsolete Python 3.10 commentary.
python/​packages/​core/​agent_framework/​_middleware.py Remove obsolete TypedDict import branching.
python/​packages/​core/​agent_framework/​_mcp.py Simplify typing imports and cancellation detection.
python/​packages/​core/​agent_framework/​_harness/​_todo.py Use standard-library NotRequired.
python/​packages/​core/​agent_framework/​_harness/​_loop.py Use standard-library Self.
python/​packages/​core/​agent_framework/​_clients.py Remove the Self compatibility branch.
python/​packages/​core/​agent_framework/​_agents.py Remove obsolete typing import branches.
python/​packages/​copilotstudio/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​claude/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​claude/​agent_framework_claude/​_agent.py Remove obsolete TypedDict import branching.
python/​packages/​chatkit/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​bedrock/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​bedrock/​agent_framework_bedrock/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​azure-documentdb/​README.md Remove Python 3.10 installation guidance.
python/​packages/​azure-documentdb/​pyproject.toml Raise package minimum.
python/​packages/​azure-documentdb/​agent_framework_azure_documentdb/​_vector_store.py Use standard-library Self.
python/​packages/​azure-cosmos/​README.md Remove Python 3.10 installation guidance.
python/​packages/​azure-cosmos/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​azure-cosmos-memory/​tests/​test_integration.py Remove obsolete toolkit import skip.
python/​packages/​azure-cosmos-memory/​tests/​test_emulator.py Remove obsolete toolkit import skip.
python/​packages/​azure-cosmos-memory/​tests/​test_context_provider.py Remove obsolete toolkit import skip.
python/​packages/​azure-cosmos-memory/​agent_framework_azure_cosmos_memory/​_context_provider.py Remove the Self compatibility branch.
python/​packages/​azure-contentunderstanding/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​azure-contentunderstanding/​agent_framework_azure_contentunderstanding/​_context_provider.py Remove the Self compatibility branch.
python/​packages/​azure-ai-search/​README.md Remove Python 3.10 installation guidance.
python/​packages/​azure-ai-search/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​azure-ai-search/​agent_framework_azure_ai_search/​_context_provider.py Remove the Self compatibility branch.
python/​packages/​anthropic/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​anthropic/​agent_framework_anthropic/​_chat_client.py Remove obsolete TypedDict import branching.
python/​packages/​ag-ui/​tests/​ag_ui/​test_approval_state.py Use standard-library Self.
python/​packages/​ag-ui/​tests/​ag_ui/​test_ag_ui_client.py Update task-ownership commentary.
python/​packages/​ag-ui/​README.md Remove Python 3.10 installation guidance.
python/​packages/​ag-ui/​pyproject.toml Raise package minimum.
python/​packages/​ag-ui/​agent_framework_ag_ui/​_types.py Remove obsolete TypedDict import branching.
python/​packages/​ag-ui/​agent_framework_ag_ui/​_client.py Remove obsolete typing import branches.
python/​packages/​ag-ui/​agent_framework_ag_ui_examples/​agents/​ui_generator_agent.py Remove obsolete TypedDict import branching.
python/​packages/​a2a/​pyproject.toml Raise package minimum and MyPy target.
python/​packages/​a2a/​agent_framework_a2a/​_agent.py Remove obsolete TypedDict import branching.
python/​devsetup.sh Install supported Python versions.
python/​DEV_SETUP.md Update development-version requirements.
python/​CODING_STANDARD.md Document the Python 3.11 lint target.
python/​agent_framework_meta/​__init__.py Remove TOML fallback and redundant suppression.
python/​.vscode/​tasks.json Remove Python 3.10 selection.
python/​.pre-commit-config.yaml Target Python 3.11 in pyupgrade.
python/​.github/​skills/​python-code-quality/​SKILL.md Update tooling targets and sample-profile guidance.

Review effort: Balanced

@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)): 19de0523b957
Model: gpt-5.6-sol

Overview

The Python 3.11 baseline is consistently represented in package metadata, lockfiles, tooling, CI matrices, and documentation, while required post-3.11 typing backports remain intact. The workflow and MCP compatibility cleanup preserves supported-runtime cancellation guards, including the distinction between plain futures and tasks. No Critical, High, or Medium defect is introduced on a changed right-side line in the authoritative pipeline diff.

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.

@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 2

Result: No findings
Scope: 1 net-new commit(s): 48d8dd92c033
Model: gpt-5.6-sol

Overview

This incremental commit applies Python 3.11 pyupgrade rewrites, replacing asyncio.TimeoutError with its identical built-in alias and datetime.timezone.utc with the identical datetime.UTC singleton. Existing timeout handling, cancellation, cleanup, state transitions, and public contracts remain unchanged, with focused tests covering the affected high-risk paths. No publishable concern was established.

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

Merged via the queue into main with commit 6fdeb2d Nov 2, 2026
73 checks passed
@eavanvalkenburg
Eduard van Valkenburg (eavanvalkenburg) deleted the remove-python-3-10 branch November 2, 2026 16:36

This branch was previously deployed

1 inactive deployment
github-app-auth — 48d8dd92 Deployed Nov 2, 2026 by eavanvalkenburg via team_check #8333
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change Usage: [PRs], Target: all PRs that introduce changes that are not backward compatible 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: Drop Python 3.10 support by October 31, 2026

3 participants