Skip to content

Add support for Python 3.15 - #3688

Merged
Kludex merged 2 commits into
mainfrom
codex/python-315-support
Oct 12, 2026
Merged

Kludex merged 2 commits into
mainfrom
codex/python-315-support

Conversation

@Kludex

@Kludex Kludex commented Oct 12, 2026

Copy link
Copy Markdown
Member

Add Python 3.15 to the Linux and Windows test matrix and the mcp and mcp-types classifiers. Update CI's test-job uv and the lockfile, require compatible dependency versions only on Python 3.15, and adapt the BlockBuster fixture to its available checks.

Validation: full tests, 100% branch coverage, and strict-no-cover on Python 3.15.0rc3 with locked and lowest-direct dependencies, plus Python 3.10 with locked dependencies. Ruff and pyright with the Linux target pass; Windows runs in CI.

AI Disclaimer

This PR was developed with the assistance of either Claude or Codex. I've reviewed and verified the changes.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-12T11:42:50.930200Z 830b55e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Comment thread docs/get-started/installation.md Outdated
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Preview https://pr-3688.mcp-python-docs.pages.dev
Deployment https://dc693db6.mcp-python-docs.pages.dev
Commit 64ce058
Triggered by @Kludex
Updated 2026-10-12 11:45:59 UTC

@Kludex
Kludex enabled auto-merge (squash) October 12, 2026 11:43

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found and verified against the latest diff

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="pyproject.toml">

<violation number="1" location="pyproject.toml:139">
P2: The frozen lock routes Python 3.15.0rc3 through the `<3.15` branch and installs Pydantic 2.12.5, despite this marker requiring 2.14.0. Use a prerelease-aware full-version cutoff in the conditional requirements and regenerate the lock.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Comment thread pyproject.toml
"httpx2>=2.10.0",
"mcp-types=={{ version }}",
"pydantic>=2.12.0",
"pydantic>=2.14.0; python_version >= '3.15'",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The frozen lock routes Python 3.15.0rc3 through the <3.15 branch and installs Pydantic 2.12.5, despite this marker requiring 2.14.0. Use a prerelease-aware full-version cutoff in the conditional requirements and regenerate the lock.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At pyproject.toml, line 139:

<comment>The frozen lock routes Python 3.15.0rc3 through the `<3.15` branch and installs Pydantic 2.12.5, despite this marker requiring 2.14.0. Use a prerelease-aware full-version cutoff in the conditional requirements and regenerate the lock.</comment>

<file context>
@@ -133,14 +136,16 @@ dependencies = [
     "httpx2>=2.10.0",
     "mcp-types=={{ version }}",
-    "pydantic>=2.12.0",
+    "pydantic>=2.14.0; python_version >= '3.15'",
+    "pydantic>=2.12.0; python_version < '3.15'",
     "starlette>=0.48.0; python_version >= '3.14'",
</file context>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".github/workflows/shared.yml">

<violation number="1" location=".github/workflows/shared.yml:75">
P1: The lockfile now uses revision 5, but the other jobs in this workflow still install uv 0.9.5 and run frozen syncs; those jobs will fail to read it. Upgrade the remaining lockfile-consuming jobs to a uv version that supports this revision.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

with:
enable-cache: true
version: 0.9.5
version: 0.12.24

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1: The lockfile now uses revision 5, but the other jobs in this workflow still install uv 0.9.5 and run frozen syncs; those jobs will fail to read it. Upgrade the remaining lockfile-consuming jobs to a uv version that supports this revision.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At .github/workflows/shared.yml, line 75:

<comment>The lockfile now uses revision 5, but the other jobs in this workflow still install uv 0.9.5 and run frozen syncs; those jobs will fail to read it. Upgrade the remaining lockfile-consuming jobs to a uv version that supports this revision.</comment>

<file context>
@@ -72,7 +72,7 @@ jobs:
         with:
           enable-cache: true
-          version: 0.9.5
+          version: 0.12.24
 
       - name: Install the project
</file context>

@Kludex
Kludex disabled auto-merge October 12, 2026 11:48
@Kludex
Kludex merged commit 3ecd2af into main Oct 12, 2026
45 checks passed
@Kludex
Kludex deleted the codex/python-315-support branch October 12, 2026 11:48

@claude claude 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.

Nothing blocking. The comments below are optional suggestions. There is no need to push a fix for them before merging.

Comment thread pyproject.toml
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