ci: add Python server integration-test and happy-path workflow#120
Open
vishkaty wants to merge 3 commits into
Open
ci: add Python server integration-test and happy-path workflow#120vishkaty wants to merge 3 commits into
vishkaty wants to merge 3 commits into
Conversation
Path-filter push/pull_request triggers to rest/python/** and the workflow file itself, matching the path-filtered shape of the Node.js workflow proposed in Universal-Commerce-Protocol#126, so unrelated changes do not spend CI minutes booting the Python server.
The Python server consumes ucp-sdk as an editable path dependency, so the purpose of this job is to catch server-vs-SDK drift as it happens. Pinning the SDK to a fixed SHA turns the check green by testing a frozen combination and hides exactly the drift it exists to surface. Track main instead; a red run is the signal to adapt the server (as samples#127 did for the SDK type-alias change). Verified: samples main + python-sdk main boot and pass the integration tests + happy-path client.
c8d7a6c to
c78f1ab
Compare
8 tasks
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #118. CI today is lint-only: nothing installs the Python server's dependencies, boots it, or runs the integration tests that already exist at
rest/python/server/integration_test.py— so incompatibilities like #118 (the server on main cannot import against python-sdk@main since python-sdk#48) stay invisible until a newcomer follows the README and hits the ImportError.This adds a workflow that exercises the documented paths end-to-end on every PR/push:
uv syncforrest/python/server(with thepython-sdksibling checkout the editable path dependency expects, pinned to the last compatible commitf54858e; the pin comment documents why and how to bump);rest/python/test_data/flower_shopper the server README;/.well-known/ucpfor readiness;Had this workflow existed, it would have turned red the day python-sdk#48 merged — exactly the early signal #118 asks for.
Verification: full local dry-run of every step, plus the identical workflow running green in my fork: https://github.com/vishkaty/samples/actions/runs/28898090014
Scope notes
pyproject.tomlor the README here. The complementary fix for the human setup path (pinning the dependency itself, per Python server won't start when following the README: samples main is incompatible with python-sdk main (ap2_mandate.Checkout removed in sdk #48) #118) is a small follow-up I'm happy to make in whichever direction you prefer (pinned git rev vs released PyPI version).rest/pythononly; the nodejs sample and a2a could get sibling jobs as follow-ups.