Skip to content

ci: smoke-test the published package on a schedule - #4

Merged
shossain786 merged 1 commit into
masterfrom
ci/pypi-smoke-test
Aug 22, 2026
Merged

shossain786 merged 1 commit into
masterfrom
ci/pypi-smoke-test

Conversation

@shossain786

Copy link
Copy Markdown
Contributor

Follow-up to #2 / #3.

Why

The mcp 2.0.0 breakage was not caught by CI, by a release check, or by me. It was caught by a user, 25 days after it started, because nothing anywhere installed the published package and tried to start it.

The fix in #3 stops that specific bug. This stops the class of it.

What it does

Daily (plus manual dispatch), on Python 3.10 / 3.12 / 3.13:

  1. pip install --no-cache-dir seleniumboot-mcp — from PyPI, as a user would
  2. import it, and assert every registered tool has a handler and every handler has a tool
  3. run the seleniumboot-mcp entry point and require a clean exit

One deliberate design decision

The job does not check out the repo. The artifact under test is the one on PyPI, resolved against whatever its declared dependencies pull today. A checkout would put src/ on sys.path, and the test could pass green while the published release was broken — which is exactly the failure mode this is meant to catch.

It also means the test is sensitive to upstream releases, not just to our commits. That is the point: nothing we did broke on 2026-07-28. mcp did.

Verified in both directions

A smoke test that cannot detect the original bug is worthless, so this was checked against both:

Environment Result
0.4.2 + mcp 1.29.0 (current PyPI) pass — 85 tools, 85 handlers, entry point exits 0
0.4.1 + mcp 2.0.0 (the bug) fail, exit 1 — reproduces the AttributeError from #2

Note on notification

Scheduled-workflow failures email the repo owner by default. Given that #2 sat unanswered for two days, that is worth confirming is actually reaching an inbox you read — otherwise this detects the outage and tells nobody.

🤖 Generated with Claude Code

The mcp 2.0.0 breakage (#2) was not caught by CI, by a release check, or by the
maintainer. It was caught by a user, 25 days after it started, because nothing
anywhere installed the published package and tried to start it.

This does that daily: pip install from PyPI, import, assert every registered
tool has a handler and vice versa, then run the entry point and require a clean
exit.

It deliberately does not check out the repo. The artifact under test is the one
on PyPI, resolved against whatever its declared dependencies pull today — a
checkout would put src/ on sys.path and could pass while the release is broken.

Verified both directions before landing: passes against 0.4.2 (85 tools, mcp
1.29.0), and fails with exit 1 against 0.4.1 + mcp 2.0.0, reproducing the
AttributeError from #2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@shossain786
shossain786 merged commit 05ee061 into master Aug 22, 2026
3 checks passed
@shossain786
shossain786 deleted the ci/pypi-smoke-test branch August 22, 2026 09: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.

1 participant