Relax pydantic upper bound to support Python 3.14#333
Conversation
The `<2.12.0` constraint forces resolution to pydantic 2.11.x, which depends on pydantic-core 2.33.x. That version has no pre-built wheels for Python 3.14 and cannot compile from source (PyO3 0.24.1 / jiter 0.9.0 use CPython C APIs removed in 3.14). pydantic >=2.13 depends on pydantic-core >=2.46 which ships cp314 wheels. Homebrew already packages mcpm 2.14.0 against pydantic 2.13.3 without issues.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughA single dependency constraint update that widens Pydantic support from versions <2.12.0 to <3.0, allowing compatibility with newer Pydantic releases while maintaining the minimum version requirement at >=2.5.1. ChangesPydantic Dependency Update
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Review Summary by QodoRelax pydantic upper bound to support Python 3.14
WalkthroughsDescription• Relax pydantic upper bound constraint to <3.0 • Enable installation on Python 3.14 with pydantic-core wheels • Resolve build failures from removed CPython C APIs • Align with Homebrew's mcpm 2.14.0 packaging Diagramflowchart LR
A["pydantic constraint<br/>2.5.1,<2.12.0"] -->|"resolves to"| B["pydantic 2.11.x<br/>+ pydantic-core 2.33.x"]
B -->|"no cp314 wheels<br/>build fails"| C["❌ Python 3.14<br/>installation fails"]
D["pydantic constraint<br/>2.5.1,<3.0"] -->|"resolves to"| E["pydantic 2.13+<br/>+ pydantic-core 2.46+"]
E -->|"has cp314 wheels"| F["✅ Python 3.14<br/>installation works"]
File Changes1. pyproject.toml
|
Code Review by Qodo
1.
|
There was a problem hiding this comment.
Pull request overview
This PR updates mcpm’s pydantic version constraint to allow newer Pydantic 2.x releases, unblocking installation on Python 3.14 by enabling resolution to pydantic-core versions that ship prebuilt cp314 wheels.
Changes:
- Relax
pydanticupper bound from<2.12.0to<3.0inpyproject.toml.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "rich>=12.0.0", | ||
| "rich-click>=1.8.0", | ||
| "requests>=2.28.0", | ||
| "pydantic>=2.5.1,<2.12.0", | ||
| "pydantic>=2.5.1,<3.0", | ||
| "mcp>=1.8.0", |
Run `uv lock --upgrade-package pydantic --upgrade-package pydantic-core` to resolve pydantic 2.13.4 and pydantic-core 2.46.4, which ship pre-built wheels for Python 3.14.
Summary
mcpm cannot be installed on Python 3.14 (the current stable release) because the pydantic dependency is constrained to
<2.12.0, which forces resolution to a pydantic-core version that has no pre-built wheels for Python 3.14 and cannot be compiled from source.Dependency chain causing the failure:
pyproject.tomlspecifiespydantic>=2.5.1,<2.12.0pydantic==2.11.10→pydantic-core==2.33.2pydantic-core==2.33.2has no pre-built wheels forcp314on any platformPyUnicode_New,PyUnicode_KIND,PyUnicode_DATA) that were removed in Python 3.14Why this fix works:
pydantic>=2.13depends onpydantic-core>=2.46, which ships pre-built wheels for Python 3.14. Homebrew's mcpm 2.14.0 formula already packages mcpm against pydantic 2.13.3 without issues.Change:
pydantic>=2.5.1,<2.12.0→pydantic>=2.5.1,<3.0Build failure on Python 3.14
Summary by CodeRabbit