Repository navigation
ci: pin pydantic in the minimum-mcp job to a known-good version - #18
Merged
Merged
Conversation
mcp 1.12.0 imports eval_type_backport from pydantic._internal._typing_extra. With pydantic unpinned, pip now resolves 2.14.1, where that name is gone, so every test module that imports mcp.server.fastmcp fails during collection. Pin the tested combination (mcp 1.12.0 + pydantic 2.11.10) in this job only; the exact pydantic version that breaks it is not narrowed down.
7 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Describe the bridge, schema, export, compatibility, documentation, or test change.
CI-only change, split out of #17 as requested there.
The
minimum-mcpjob installsmcp==1.12.0but leavespydanticunpinned, so pip now resolves pydantic 2.14.1. mcp 1.12.0 importseval_type_backportfrompydantic._internal._typing_extra, which no longer exists in that version. Every test module that importsmcp.server.fastmcpthen fails during collection..github/workflows/ci.yml: theminimum-mcpjob now installs"pydantic==2.11.10"together with"mcp==1.12.0", with a comment naming this as the known-good combination. Thetestmatrix andpyproject.tomlare unchanged.Validation
python -m pytest -q -p no:cacheproviderpython -m ruff check src testsReproduced the job locally on Python 3.11 (Windows, uv venv), from current
main:pip install -e ".[dev]" "mcp==1.12.0"→ pydantic 2.14.1,ImportError: cannot import name 'eval_type_backport', 11 errors during collection.pip install -e ".[dev]" "mcp==1.12.0" "pydantic==2.11.10"→ 339 passed.python -m ruff check src tests scripts: all checks passed (no Python file changes). The workflow file parses as YAML.Data and security
Licensing
CONTRIBUTING.md(AGPL-3.0-only, plus granting the maintainer the right to offer commercial licenses)Compatibility
List affected devices, regions, datasets, commands, schemas, or MCP tools.
minimum-mcpCI job. No devices, regions, datasets, commands, schemas or MCP tools change.pydantic>=2,mcp>=1.12,<2.0) stays as it is. Users who install exactly mcp 1.12.0 together with a recent pydantic would hit the same import error; that is outside this PR.