Skip to content

v0.21.1 — installs from PyPI work again

Choose a tag to compare

@DareDev256 DareDev256 released this 03 Sep 04:58
· 2 commits to feat/cutting-room-v0.17 since this release

Every install from PyPI since 0.19.2 was dead on arrival

If you installed this from PyPI on 0.19.2, 0.19.3, 0.20.0 or 0.21.0, the server never started. Your MCP client showed "Connection closed" and nothing else. Upgrade to 0.21.1.

pyproject.toml declared include = ["fcpxml*"], so setuptools silently omitted tools/ — which server.py imports at module scope. The published wheel's top_level.txt listed only fcpxml and server, and the sdist held 106 files with none under tools/. Importing the server raised ModuleNotFoundError: No module named 'tools' before it could answer initialize. 0.16.0 works, because its server.py predates the import.

The fix is one entry: include = ["fcpxml*", "tools*"].

It was invisible from a git checkout, where Python finds tools/ in the working directory. That is why 1,738 green tests, a green publish job, and a verify job that confirmed PyPI was serving the version all said nothing: serving a file is not the same as the file working.

Reported by Marty Hou, a documentary editor with no GitHub account, who had to find an address in the commit history because the one published with the package bounces. His analysis was checked against the real artifacts rather than reasoned from memory, and was correct in every particular. Thank you.

Also fixed

The author address published with the package, dare@jamesdare.com, does not exist. It is now dev@jamesdare.com.

Two new instruments, because none of the old ones could see this

  • tests/test_packaging.py parses the include list and asserts every first-party package that server.py and each tools/ module imports is matched by it. A new top-level package added without being packaged now fails immediately.
  • The publish workflow installs the built wheel into a clean venv, cds out of the source tree, and starts the server — asserting 13 groups and 88 handlers — before upload. Control-tested: the identical script exits 1 against the published 0.21.0 wheel and 0 against this one.

Verification

1742 tests across 65 suites. mcp floor 1735 pass / 7 skip · mcp 2.x 1736 / 6 · FCP_MCP_INDEX=off 1711 / 31 · no ffmpeg on PATH 1714 / 28.