Skip to content

Commit 8402832

Browse files
GWealecopybara-github
authored andcommitted
feat!: Raise minimum Python version to 3_10
Co-authored-by: George Weale <gweale@google.com> PiperOrigin-RevId: 833363352
1 parent 1dd97f5 commit 8402832

File tree

3 files changed

+12
-16
lines changed

3 files changed

+12
-16
lines changed

AGENTS.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ app = App(
119119
### Requirements
120120

121121
**Minimum requirements:**
122-
- Python 3.9+ (**Python 3.11+ strongly recommended** for best performance)
122+
123+
- Python 3.10+ (**Python 3.11+ strongly recommended** for best performance)
123124
- `uv` package manager (**required** - faster than pip/venv)
124125

125126
**Install uv if not already installed:**
@@ -326,11 +327,6 @@ pytest tests/unittests -n auto
326327
# Run a specific test file during development
327328
pytest tests/unittests/agents/test_llm_agent.py
328329

329-
# Python 3.9 compatibility mode (excludes features requiring 3.10+)
330-
pytest tests/unittests \
331-
--ignore=tests/unittests/a2a \
332-
--ignore=tests/unittests/tools/mcp_tool \
333-
--ignore=tests/unittests/artifacts/test_artifact_service.py
334330
```
335331

336332
### Testing Philosophy

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ part before or alongside your code PR.
145145

146146
3. **Create and activate a virtual environment:**
147147

148-
**NOTE**: ADK supports Python 3.9+. Python 3.11 and above is strongly
148+
**NOTE**: ADK supports Python 3.10+. Python 3.11 and above is strongly
149149
recommended.
150150

151151
Create a workspace venv using uv.

pyproject.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
name = "google-adk"
66
description = "Agent Development Kit"
77
readme = "README.md"
8-
requires-python = ">=3.9"
8+
requires-python = ">=3.10"
99
license = { file = "LICENSE" }
1010
authors = [{ name = "Google LLC", email = "googleapis-packages@google.com" }]
1111
classifiers = [ # List of https://pypi.org/classifiers/
@@ -27,7 +27,7 @@ dependencies = [
2727
# go/keep-sorted start
2828
"PyYAML>=6.0.2, <7.0.0", # For APIHubToolset.
2929
"aiosqlite>=0.21.0", # For SQLite database
30-
"anyio>=4.9.0, <5.0.0;python_version>='3.10'", # For MCP Session Manager
30+
"anyio>=4.9.0, <5.0.0", # For MCP Session Manager
3131
"authlib>=1.5.1, <2.0.0", # For RestAPI Tool
3232
"click>=8.1.8, <9.0.0", # For CLI tools
3333
"fastapi>=0.115.0, <0.119.0", # FastAPI framework
@@ -44,7 +44,7 @@ dependencies = [
4444
"google-genai>=1.45.0, <2.0.0", # Google GenAI SDK
4545
"graphviz>=0.20.2, <1.0.0", # Graphviz for graph rendering
4646
"jsonschema>=4.23.0, <5.0.0", # Agent Builder config validation
47-
"mcp>=1.8.0, <2.0.0;python_version>='3.10'", # For MCP Toolset
47+
"mcp>=1.8.0, <2.0.0", # For MCP Toolset
4848
"opentelemetry-api>=1.37.0, <=1.37.0", # OpenTelemetry - limit upper version for sdk and api to not risk breaking changes from unstable _logs package.
4949
"opentelemetry-exporter-gcp-logging>=1.9.0a0, <2.0.0",
5050
"opentelemetry-exporter-gcp-monitoring>=1.9.0a0, <2.0.0",
@@ -93,7 +93,7 @@ dev = [
9393

9494
a2a = [
9595
# go/keep-sorted start
96-
"a2a-sdk>=0.3.11,<0.4.0;python_version>='3.10'",
96+
"a2a-sdk>=0.3.4,<0.4.0",
9797
# go/keep-sorted end
9898
]
9999

@@ -114,9 +114,9 @@ eval = [
114114

115115
test = [
116116
# go/keep-sorted start
117-
"a2a-sdk>=0.3.0,<0.4.0;python_version>='3.10'",
117+
"a2a-sdk>=0.3.0,<0.4.0",
118118
"anthropic>=0.43.0", # For anthropic model tests
119-
"crewai[tools];python_version>='3.10' and python_version<'3.14'", # For CrewaiTool tests
119+
"crewai[tools];python_version>='3.10' and python_version<'3.12'", # For CrewaiTool tests; chromadb/pypika fail on 3.12+
120120
"kubernetes>=29.0.0", # For GkeCodeExecutor
121121
"langchain-community>=0.3.17",
122122
"langgraph>=0.2.60, <0.4.8", # For LangGraphAgent
@@ -126,7 +126,7 @@ test = [
126126
"pytest-asyncio>=0.25.0",
127127
"pytest-mock>=3.14.0",
128128
"pytest-xdist>=3.6.1",
129-
"pytest>=8.3.4",
129+
"pytest>=9.0.0,<10.0.0",
130130
"python-multipart>=0.0.9",
131131
"rouge-score>=0.1.2",
132132
"tabulate>=0.9.0",
@@ -146,7 +146,7 @@ docs = [
146146
extensions = [
147147
"anthropic>=0.43.0", # For anthropic model support
148148
"beautifulsoup4>=3.2.2", # For load_web_page tool.
149-
"crewai[tools];python_version>='3.10' and python_version<'3.14'", # For CrewaiTool
149+
"crewai[tools];python_version>='3.10' and python_version<'3.12'", # For CrewaiTool; chromadb/pypika fail on 3.12+
150150
"docker>=7.0.0", # For ContainerCodeExecutor
151151
"kubernetes>=29.0.0", # For GkeCodeExecutor
152152
"langgraph>=0.2.60, <0.4.8", # For LangGraphAgent
@@ -208,7 +208,7 @@ asyncio_mode = "auto"
208208

209209

210210
[tool.mypy]
211-
python_version = "3.9"
211+
python_version = "3.10"
212212
exclude = "tests/"
213213
plugins = ["pydantic.mypy"]
214214
# Start with non-strict mode, and swtich to strict mode later.

0 commit comments

Comments
 (0)