Skip to content

Conversation

cclauss
Copy link
Contributor

@cclauss cclauss commented Sep 5, 2025

- python-version: ["3.10", "3.11", "3.12", "3.13"]
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]

Python v3.14 -- October 7th

Call to action
We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.14 during this phase, and publish Python 3.14 wheels on PyPI to be ready for the final release of 3.14.0, and to help other projects do their own testing. Any binary wheels built against Python 3.14.0 release candidates will work with future versions of Python 3.14.

Motivation and Context

Let's ensure things work as expected on the next version of CPython as recommended by the Python Core Team.

How Has This Been Tested?

Breaking Changes

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

@cclauss cclauss requested a review from a team as a code owner September 5, 2025 14:12
@felixweinberger
Copy link
Contributor

Curious what other maintainers think about adding 3.14 already to our CI @Kludex @dsp-ant @ihrpr

Looks like 3.14 is currently pre-release with release slated for 7 Oct 2025 so relatively soon (https://devguide.python.org/versions/)

@Kludex
Copy link
Member

Kludex commented Sep 6, 2025

I mean, if you are able to make the pipeline pass, then sure...

@cclauss cclauss force-pushed the patch-2 branch 2 times, most recently from ad5ebde to e8229ab Compare September 6, 2025 13:49
@cclauss
Copy link
Contributor Author

cclauss commented Sep 6, 2025

@cclauss cclauss force-pushed the patch-2 branch 4 times, most recently from ff8d859 to 7e204c0 Compare September 6, 2025 14:18
@Kludex
Copy link
Member

Kludex commented Sep 6, 2025

We don't really need to build the docs in 3.14.

You can add a marker to not install on that version. python_version < '3.14' should work.

@cclauss
Copy link
Contributor Author

cclauss commented Sep 6, 2025

Sorry. I am out of my depth. uv --all-extras will ignore python_version markers and install everything.

@cclauss
Copy link
Contributor Author

cclauss commented Sep 8, 2025

mkdocs-material v9.6.19 was released, so we can force mkdocs-material[imaging] to use pillow v11.3 instead of v10.

Now the problem is pydantic --> pydantic-core --> pyo3.

Using the alpha release https://pypi.org/project/pydantic/2.12.0a1, we finally get the build to succeed.
However, the Pydantic differences now mean that 7 modelcontextprotocol/python-sdk pytests fail.

@cclauss cclauss force-pushed the patch-2 branch 2 times, most recently from 8179c10 to 9a66350 Compare September 8, 2025 07:47
with:
enable-cache: true
version: 0.7.2
Copy link
Member

Choose a reason for hiding this comment

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

Please put this back.

Copy link
Contributor Author

@cclauss cclauss Sep 9, 2025

Choose a reason for hiding this comment

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

https://github.com/astral-sh/uv/releases/tag/0.8.11 Added Python 3.14rc2 and 0.8.12 speeds up zstandard performance.

Copy link
Member

Choose a reason for hiding this comment

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

You can change the version, but there's no need to remove it.

We actually need to set this version in the pyproject.toml.

@@ -25,7 +25,8 @@ dependencies = [
"anyio>=4.5",
"httpx>=0.27.1",
"httpx-sse>=0.4",
"pydantic>=2.11.0,<3.0.0",
"pydantic>=2.11.0,<3.0.0; python_version < '3.14'",
Copy link
Member

Choose a reason for hiding this comment

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

Missing the classifier above.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

?

Copy link
Member

@Kludex Kludex Sep 18, 2025

Choose a reason for hiding this comment

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

This is missing on line 22.

    "Programming Language :: Python :: 3.14",

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I was not going to commit to supporting 3.14 until after we got the tests to pass, but here we go...

@cclauss cclauss force-pushed the patch-2 branch 3 times, most recently from 34f46d1 to 2ac61e5 Compare September 18, 2025 14:54
```diff
- python-version: ["3.10", "3.11", "3.12", "3.13"]
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
```
https://www.python.org/download/pre-releases
https://www.python.org/downloads/release/python-3140rc2
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.

3 participants