Skip to content

fix(ci): allow transitive prereleases in FastMCP prerelease job#32

Merged
naji247 merged 1 commit into
mainfrom
fix/prerelease-fastmcp-slim-resolution
Jun 29, 2026
Merged

fix(ci): allow transitive prereleases in FastMCP prerelease job#32
naji247 merged 1 commit into
mainfrom
fix/prerelease-fastmcp-slim-resolution

Conversation

@naji247

@naji247 naji247 commented Jun 22, 2026

Copy link
Copy Markdown
Member

Summary

  • The nightly MCP Prerelease Compatibility job has failed every night since FastMCP 3.4.0b1 landed on PyPI. The failure is in the install step, not a test — the test-mcp-prerelease job passes all tests; only the FastMCP job breaks.
  • Root cause: FastMCP 3.4.0 restructured into fastmcp + a transitive fastmcp-slim package. Pinning fastmcp==3.4.0b1 drags in a prerelease fastmcp-slim==3.4.0b1 that isn't named in our pyproject.toml, so uv sync --prerelease if-necessary-or-explicit refuses it and resolution fails (No solution found ... try: --prerelease=allow).
  • Fix: switch that one install step to --prerelease allow, the correct setting for a prerelease-testing job. The stable mcp-compatibility.yml workflow is unaffected (it uses no --prerelease flags).

There is no SDK breaking change — the full suite passes against FastMCP 3.4.0b1. The 3.4 change is purely a packaging split.

Test plan

  • Reproduced exact CI error locally: uv pip compile with if-necessary-or-explicit fails identically
  • Confirmed --prerelease allow resolves: fastmcp 3.4.0b1, fastmcp-slim 3.4.0b1, mcp 1.28.0
  • Ran the exact CI command uv sync --extra dev --extra community --prerelease allow on a sed-modified pyproject → exit 0
  • Ran the full test suite against FastMCP 3.4.0b1 in an isolated venv → 436 passed, 4 skipped, 3 xfailed
  • Trigger the workflow via workflow_dispatch to confirm the nightly job goes green

FastMCP 3.4.0 splits into fastmcp + a transitive fastmcp-slim package.
Pinning fastmcp==3.4.0b1 pulls fastmcp-slim==3.4.0b1, a prerelease not
named in our pyproject, so `uv sync --prerelease if-necessary-or-explicit`
refuses it and dependency resolution fails before any test runs. The
nightly prerelease job has failed every night since FastMCP 3.4.0b1
appeared on PyPI.

Switch to --prerelease=allow, which is the correct setting for a
prerelease-testing job. Verified the full test suite passes against
FastMCP 3.4.0b1 (436 passed, 4 skipped, 3 xfailed) — there is no SDK
breaking change, only the packaging split.
@naji247
naji247 requested a review from kashishhora June 25, 2026 13:50
@naji247
naji247 merged commit 5187c01 into main Jun 29, 2026
43 checks passed
@naji247
naji247 deleted the fix/prerelease-fastmcp-slim-resolution branch June 29, 2026 14:19
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.

2 participants