You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
sync_schemas.py: support ADCP_BASE_URL env override for parity with JS SDK #284
DX-expert pre-merge review of #275 flagged a parity gap with the JS SDK:
@adcp/client/scripts/sync-schemas.ts reads ADCP_BASE_URL from env (defaults to https://adcontextprotocol.org), so CI / local dev can point sync at a fake CDN serving a fixture tarball.
adcp-client-python/scripts/sync_schemas.py hardcodes BUNDLE_BASE_URL = "https://adcontextprotocol.org/protocol" as a module constant. No way to redirect without editing source.
This bites whenever someone wants to:
Run cross-SDK CI against a fixture server (e.g. validate that JS + Python sync produce equivalent local trees from the same tarball).
Test sync_schemas.py locally against a release tarball that hasn't deployed to production yet.
Stand up an integration test that exercises the full sync pipeline without depending on the live CDN.
Proposal
Match the JS pattern: BUNDLE_BASE_URL = os.environ.get("ADCP_BASE_URL", "https://adcontextprotocol.org") + "/protocol".
Same env var name (ADCP_BASE_URL) so cross-SDK CI scripts can set it once.
Out of scope
Other configuration drift between the two SDKs (separate triage)
Adding integration tests that exercise the env override (would be nice, not required)
Classification: Feature request Bucket(s): no label match — scripts/ tooling DX has no defined label; gap flagged in run summary Status: drafting-pr Milestone: (omitted)
What the experts said:
code-reviewer: approved after fixing env-sensitive test_default_value (relied on already-loaded _mod; switched to fresh module load + monkeypatch.delenv)
My take: Minimal non-breaking change — default behavior is identical, the env var adds a zero-config redirect for fixture-CDN CI. PR #285 drafts the fix with three new tests covering the default, override, and trailing-slash cases.
Drafted PR: #285 — feat(adcp): support ADCP_BASE_URL env override in sync_schemas.py
Activity
bokelley commentedon Apr 26, 2026
Triage
Classification: Feature request
Bucket(s): no label match —
scripts/tooling DX has no defined label; gap flagged in run summaryStatus: drafting-pr
Milestone: (omitted)
What the experts said:
test_default_value(relied on already-loaded_mod; switched to fresh module load +monkeypatch.delenv).rstrip("/")guard addresses the trailing-slash / doubled/protocoledge case;!sigil convention followed; JS SDK parity confirmedMy take: Minimal non-breaking change — default behavior is identical, the env var adds a zero-config redirect for fixture-CDN CI. PR #285 drafts the fix with three new tests covering the default, override, and trailing-slash cases.
Drafted PR: #285 —
feat(adcp): support ADCP_BASE_URL env override in sync_schemas.pyTriaged by Claude Code. Session: https://claude.ai/code/session_01KXfYPHYKr3R6EDqUbbo9ty
Generated by Claude Code
feat(adcp): support ADCP_BASE_URL env override in sync_schemas.py (#285)