Run local conformance against any SDK at any ref (unblocks removing vendored examples)
I maintainer di solito rispondono entro 7 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- typescript
Direzione di ricerca
Inizia con i vendored examples in examples/{clients,servers}/typescript/ e con il .github/workflows/conformance.yml del TypeScript SDK per comprendere il comportamento esistente. Per prima cosa fai eseguire conformance al runner locale rispetto a un ref del TypeScript SDK, poi verifica che un ref bloccato dell’SDK possa sostituire i vendored examples senza modificare i risultati attuali.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Context
The conformance repo currently vendors a typescript-sdk client and server in examples/{clients,servers}/typescript/ so its own CI can test-the-tests. That's drifted from typescript-sdk's canonical conformance fixtures and creates a version-bump dance whenever a new scenario lands ahead of SDK support.
Per Discord discussion the lean is option (1): delete the vendored examples, keep only negative-path fixtures here, and rely on the real SDK repos for the passing implementation. Nate's condition, which I agree with: this only works if we make it "super easy to clone and test an SDK."
That condition is the blocker, and it overlaps with the inner-loop pain when writing scenarios (#237 review): the implementation that passes a new scenario is usually still on an unmerged SDK branch, and getting from "scenario edited" to "ran against typescript-sdk@that-branch" is currently a manual pnpm link dance documented only for typescript-sdk.
Goal
One command that runs the local conformance build against <sdk>@<ref>, for any official SDK, locally and in CI.
./some-script.sh --sdk typescript-sdk@main
./some-script.sh --sdk python-sdk@some-branch --scenario sep-2164-resource-not-found
./some-script.sh --matrix typescript-sdk@main,python-sdk@main,[email protected]
What's needed
Each SDK already encodes "how to build me and start the conformance fixture" in its .github/workflows/conformance.yml, but the shapes differ — python-sdk pins an npm version + bash script, typescript-sdk uses npm scripts, go-sdk and others use this repo's composite action. We need a small declarative contract the runner can consume directly. Either:
- Parse what's already in each SDK's workflow (fragile), or
- Each SDK publishes a
conformance.config.{json,yaml}withclone/build/server-command/client-command. Same file can carry the per-SDK expected-failures baseline (#99) and the scenario→fixture mapping (#114 comment).
CI here
Once ./some-script.sh --sdk works, this repo's CI replaces the vendored examples with run --sdk typescript-sdk@<pinned-sha> (a known-good ref, not main, so SDK regressions don't break conformance CI). A separate non-blocking matrix job can run against @main of each official SDK and comment results on the PR.
Negative-path fixtures (servers that deliberately violate the spec) stay in this repo since no SDK should ship those.
First step
The first step for this is making it easy to run the typescript-sdk to preserve existing behavior, and then we can attempt to generalize.
Related: #114, #243, #248, #237.
- Lingua principale
- TypeScript
- Stelle
- 130
- Fork
- 107
- Merge medio
- 8g 19h
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/conformance
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
modelcontextprotocol/conformance#531 · 1 commento ·
I maintainer di solito rispondono entro 7 giorni
-
server-stateless: 500 ms whole-request deadline in no-log-without-loglevel reports slow servers as failuresForse già presa @birbprophet l’ha presa 10 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/conformance#530 ·
I maintainer di solito rispondono entro 7 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/conformance#519 ·
I maintainer di solito rispondono entro 7 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
modelcontextprotocol/conformance#315 · 1 commento ·
I maintainer di solito rispondono entro 7 giorni
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/conformance#312 · 1 commento ·
I maintainer di solito rispondono entro 7 giorni
Tutte le issue di modelcontextprotocol/conformance
Issue simili
-
Tenant
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
MTES-MCT/Dossier-Facile-Frontend#2061 ·
I maintainer di solito rispondono entro 1 giorno
-
area:frontend
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
interledger/publisher-tools#905 ·
I maintainer di solito rispondono entro 1 giorno
-
Add: Cbeebies PL SDApertaapproved check:passed streams:add
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
iptv-org/iptv#54525 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
DB-plane provider_chat_options.* is accepted by config set but never merged into the loaded configAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
area:web
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
praetorianer777/GoTome#178 ·
I maintainer di solito rispondono entro 1 giorno