Skip to content

Bump pydocket>=0.19.0, drop fakeredis pin#3822

Merged
chrisguidry merged 1 commit intomainfrom
bump-pydocket-0.19
Apr 10, 2026
Merged

Bump pydocket>=0.19.0, drop fakeredis pin#3822
chrisguidry merged 1 commit intomainfrom
bump-pydocket-0.19

Conversation

@chrisguidry
Copy link
Copy Markdown
Collaborator

pydocket 0.19.0 fixes the fakeredis 2.35.0 FakeConnection rename internally (chrisguidry/docket#382), so we no longer need to carry the fakeredis[lua]<2.35.0 ceiling in the tasks extra. This simplifies the dependency to just pydocket>=0.19.0 and lets fakeredis float as a transitive.

Also bumps the _MIN_DOCKET_VERSION floor to match.

Follows up on #3804.

🤖 Generated with Claude Code

pydocket 0.19.0 fixes the fakeredis 2.35.0 FakeConnection rename
internally, so we no longer need to carry the fakeredis ceiling
ourselves. Removes the direct fakeredis[lua]<2.35.0 dependency from the
tasks extra entirely — it's just a transitive of pydocket now.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@chrisguidry chrisguidry marked this pull request as ready for review April 10, 2026 17:30
Copy link
Copy Markdown
Member

@jlowin jlowin left a comment

Choose a reason for hiding this comment

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

👍

@marvin-context-protocol marvin-context-protocol Bot added enhancement Improvement to existing functionality. For issues and smaller PR improvements. dependencies Updates to project dependencies. Automatically applied to dependabot PRs. labels Apr 10, 2026
@marvin-context-protocol
Copy link
Copy Markdown
Contributor

marvin-context-protocol Bot commented Apr 10, 2026

Test Failure Analysis

(Updated to reflect latest run: 24256002384)

Summary: TestMCPConfig::test_run_mcp_config in the newly added tests/cli/test_run.py timed out on Windows — it spawns a real Python subprocess that can't start within the 5-second unit-test timeout.

Root Cause: test_run_mcp_config creates a StdioMCPServer(command="python", args=[str(script_path)]) and then connects to it via a FastMCP proxy client. This spawns a real subprocess that must import fastmcp and start an MCP server. On Windows CI, subprocess startup + module loading regularly exceeds 5 seconds. All Linux runners passed because the same operation is faster there.

Suggested Solution: Move TestMCPConfig::test_run_mcp_config to the integration test suite (or give it an explicit longer timeout marker). The simplest fix is to mark only that test:

@pytest.mark.integration  # spawns a real subprocess
async def test_run_mcp_config(self, tmp_path: Path):
    ...

…or add @pytest.mark.timeout(30) so it isn't killed by the 5-second unit-test ceiling. The sibling test test_validate_mcp_config is fine in the unit suite since it never spawns a process.

Detailed Analysis

Failing job: Tests: Python 3.10 on windows-latest (job ID 70827620326)

Relevant log excerpt:

tests\cli\test_run.py ........+++++++++++++++++++++++++++++++++++ Timeout +++++++++++++++++++++++++++++++++++

8 tests pass, then the 9th (test_run_mcp_config) exceeds the 5-second limit. The traceback ends deep inside asyncio's select.select polling loop — the event loop is waiting for the subprocess pipe to become readable, but the subprocess hasn't started yet:

File "C:\hostedtoolcache\windows\Python\3.10.11\x64\lib\selectors.py", line 315, in _select
    r, w, x = select.select(r, w, w, timeout)
+++++++++++++++++++++++++++++++++++ Timeout +++++++++++++++++++++++++++++++++++

The test body (lines 104–137 of tests/cli/test_run.py):

mcp_config = MCPConfig(
    mcpServers={
        "test_server": StdioMCPServer(command="python", args=[str(script_path)])
    }
)
...
client = Client[FastMCPTransport](server)
async with client:
    tools = await client.list_tools()   # triggers subprocess spawn
    assert len(tools) == 1

tests/cli/test_run.py was newly introduced in this commit (893 lines added). The unit test timeout is 5 seconds; subprocess startup on Windows CI routinely takes longer.

Related Files
  • tests/cli/test_run.py — newly added file; TestMCPConfig::test_run_mcp_config at line 104 is the failing test
  • src/fastmcp/mcp_config.pyMCPConfig / StdioMCPServer that launches the subprocess

@chrisguidry chrisguidry merged commit db9e268 into main Apr 10, 2026
15 of 16 checks passed
@chrisguidry chrisguidry deleted the bump-pydocket-0.19 branch April 10, 2026 17:41
dsfaccini added a commit to dsfaccini/pydantic-ai that referenced this pull request Apr 14, 2026
fastmcp v3.2.4 merged PrefectHQ/fastmcp#3807 (version-check
is_docket_available()) and PrefectHQ/fastmcp#3822 (declare
pydocket>=0.19.0 as a hard dep), fixing the transitive pydocket
crash. The workspace constraint is no longer needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Updates to project dependencies. Automatically applied to dependabot PRs. enhancement Improvement to existing functionality. For issues and smaller PR improvements.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants