From ca105401c42a7b79e7cafa5ede9def5ef5191373 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Tue, 18 Aug 2026 13:22:51 -0600 Subject: [PATCH] Release 2026.08.18: keep the docs site out of the sdist The pre-publish audit caught the source distribution sweeping in the whole docs-site tree, node_modules included: 7,178 files and 71 MB for a package whose source is about thirty files. Excluded, which brings it back to 116 KB. No secrets were exposed (no local .env exists), but this is exactly the case the unpacked-sdist audit is meant to catch, and PyPI is immutable per version. --- pyproject.toml | 6 +++++- src/mcqemu/__init__.py | 2 +- tests/test_acceptance.py | 11 +++++------ uv.lock | 2 +- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index dda074a..e617d08 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mcqemu" -version = "2026.08.17" +version = "2026.08.18" description = "MCP server for managing QEMU virtual machines" readme = "README.md" requires-python = ">=3.11" @@ -53,6 +53,10 @@ exclude = [ ".env", ".mcp.json", "tests/", + # The docs site is a whole Astro project with its own node_modules; without + # this the sdist went from ~30 files to 7,178 and from kilobytes to 71 MB. + "docs-site/", + ".venv/", ".pytest_cache/", ".ruff_cache/", "dist/", diff --git a/src/mcqemu/__init__.py b/src/mcqemu/__init__.py index 424775f..00de8cc 100644 --- a/src/mcqemu/__init__.py +++ b/src/mcqemu/__init__.py @@ -1,3 +1,3 @@ """mcqemu — MCP server for managing QEMU virtual machines.""" -__version__ = "2026.08.17" +__version__ = "2026.08.18" diff --git a/tests/test_acceptance.py b/tests/test_acceptance.py index 30780d9..e87f97f 100644 --- a/tests/test_acceptance.py +++ b/tests/test_acceptance.py @@ -69,9 +69,10 @@ async def test_image_toolchain(dirs, tmp_path): assert len(chain) == 2, "overlay must report its backing file" result_data(await client.call_tool("image_resize", {"path": str(base), "size": "128M"})) - assert result_data(await client.call_tool("image_info", {"path": str(base)}))[ - "virtual-size" - ] == 128 * 1024**2 + assert ( + result_data(await client.call_tool("image_info", {"path": str(base)}))["virtual-size"] + == 128 * 1024**2 + ) converted = result_data( await client.call_tool( @@ -204,9 +205,7 @@ async def test_sandbox_guest_and_snapshot_journey(dirs): async with Client(mcp) as client: sandbox = result_data( - await client.call_tool( - "sandbox_vm", {"base_image": str(BASE_IMAGE), "memory_mb": 2048} - ) + await client.call_tool("sandbox_vm", {"base_image": str(BASE_IMAGE), "memory_mb": 2048}) ) assert sandbox["guest_agent"] == "responding", sandbox assert sandbox["network"] == "outbound blocked" diff --git a/uv.lock b/uv.lock index bdafce1..ea6a011 100644 --- a/uv.lock +++ b/uv.lock @@ -681,7 +681,7 @@ wheels = [ [[package]] name = "mcqemu" -version = "2026.8.17" +version = "2026.8.18" source = { editable = "." } dependencies = [ { name = "fastmcp" },