ci: add Python reference seller interop gate#1986
Merged
Merged
Conversation
…rkflow-status # Conflicts: # scripts/schemas-ensure.ts
There was a problem hiding this comment.
Approving. Right shape: fail-closed gate on release publishing, pinned, with a pre-flight existence check that names the upstream PR you need.
Things I checked
release.ymladdspython-interopas a sibling job and thereleasejob carriesneeds: python-interop. Fail-closed beats fail-open — a broken Python interop now blocks npm publish.- Harness pinned to
v6.1.0-beta.2, the first known-good tag with the 3.1 reference seller fix; the workflow errors with a pointer toadcontextprotocol/adcp-client-python#818if a future ref override drops the harness script (interop-python.yml:84-89). permissions: contents: readis the floor. No write scopes.set -euo pipefailon every inline shell step, plus the tarball-count guard atinterop-python.yml:53-58— ifnpm packever produces more than one tarball, we error instead of silently picking one.- Storyboard artifacts upload with
if: always()andif-no-files-found: ignoreso a harness crash still yields the seller log. - Empty-frontmatter changeset matches the established no-bump pattern in this repo (e.g.
.changeset/cluster-3-schema-validation-sweep.md). CLAUDE.md explicitly excludes.github/workflows/from the changeset requirement; the file is there purely as a changelog note. - The new
Python reference sellercheck already runs green on this PR — the gate validates itself.
Follow-ups (non-blocking — file as issues)
- Tag pin (
v6.1.0-beta.2) vs commit-SHA pin: tags are mutable upstream. SHA pinning would harden against a force-moved tag at the cost of legibility. Not urgent — same-org repo — but worth a follow-up. - The default ref
v6.1.0-beta.2is repeated three times (workflow_dispatch.inputs.default,workflow_call.inputs.default, and theinputs.python_ref || 'v6.1.0-beta.2'env fallback forpull_requesttriggers). Pulling it into a singleenvconstant at workflow scope would prevent drift when the pin bumps.
Minor nits (non-blocking)
- PR description overstates the diff. The bullet about
scripts/schemas-ensure.tsaccepting prerelease cache directories doesn't appear in this diff — the merge commit99a0dea1resolved a conflict by taking what main already had. Not a code problem, but the PR body reads as if four things ship here when three do.
Safe to merge.
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.
Summary
adcp-client-python@v6.1.0-beta.2, the first known-good tag with the 3.1 reference seller fixschemas:ensureso3.1.0-beta.3cache satisfies local/CI buildsCloses #1916.
Validation
npx prettier --check .github/workflows/interop-python.yml .github/workflows/release.yml .changeset/python-reference-seller-interop.md scripts/schemas-ensure.ts.github/workflows/interop-python.ymland.github/workflows/release.ymlnpm run build:lib@adcp/sdk@8.1.0-beta.8+adcp-client-python@v6.1.0-beta.2:Status: passing,88 passed / 0 failed / 2 skipped,controller_detected: truenpm run typecheck, library build