Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Run local conformance against any SDK at any ref (unblocks removing vendored examples)

Aperta
#250 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Ambito
testing, tooling

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} with clone/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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelcontextprotocol/conformance

Tutte le issue di modelcontextprotocol/conformance

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.