-
Notifications
You must be signed in to change notification settings - Fork 3.5k
ci(conformance): pin harness to 0.2.0-alpha.3 with expected-failures baseline #2877
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # Conformance scenarios not yet passing against the Python SDK on main. | ||
| # CI exits 0 if only these fail, exits 1 on unexpected failures or stale entries. | ||
| # | ||
| # Baseline established against @modelcontextprotocol/conformance pinned in | ||
| # .github/workflows/conformance.yml (CONFORMANCE_VERSION = 0.2.0-alpha.3). | ||
| # New conformance releases are adopted by deliberately bumping that pin and | ||
| # reconciling this file in the same change. | ||
| # | ||
| # Entries are grouped by SEP. As each SEP lands in the SDK the corresponding | ||
| # scenarios start passing and MUST be removed from this list (the runner fails | ||
| # on stale entries), so the baseline burns down per milestone. | ||
|
|
||
| client: | ||
| # --- Draft-spec scenarios (in `--suite draft`, also part of `--suite all`) --- | ||
| # SEP-2575 (request metadata / _meta envelope): client does not populate the | ||
| # _meta envelope or the MCP-Protocol-Version header semantics yet. | ||
| - request-metadata | ||
| # SEP-2322 (multi-round-trip requests): client does not echo requestState / | ||
| # handle IncompleteResult yet. | ||
| - sep-2322-client-request-state | ||
| # SEP-2243 (HTTP standardization): no fixture handler / client header support yet. | ||
| - http-custom-headers | ||
| - http-invalid-tool-headers | ||
| # SEP-2106 (JSON Schema $ref handling): client still dereferences network $refs. | ||
| - json-schema-ref-no-deref | ||
| # SEP-2468 (authorization response iss parameter): not implemented in the client. | ||
| - auth/iss-supported | ||
| - auth/iss-not-advertised | ||
| - auth/iss-supported-missing | ||
| - auth/iss-wrong-issuer | ||
| - auth/iss-unexpected | ||
| - auth/iss-normalized | ||
| - auth/metadata-issuer-mismatch | ||
| # SEP-2352 (authorization server migration): client does not re-register when | ||
| # PRM authorization_servers changes. | ||
| - auth/authorization-server-migration | ||
| # SEP-837 (application_type during DCR): the check only fires on draft-version | ||
| # runs; this draft scenario is the one place the client still hits it. | ||
| - auth/offline-access-not-supported | ||
|
|
||
| # --- Pre-existing scenarios that fail on checks added after conformance 0.1.15 --- | ||
| # SEP-2350 (scope step-up): WARNING-only; the expected-failures evaluator | ||
| # counts WARNINGs as failures. | ||
| - auth/scope-step-up | ||
| # SEP-990 (enterprise-managed authorization extension): no fixture handler / | ||
| # client support for the token-exchange + JWT bearer flow. | ||
| - auth/enterprise-managed-authorization | ||
|
|
||
| # The `active` suite (30 scenarios / 42 assertions) is fully green against | ||
| # mcp-everything-server. Draft-suite entries are added when the workflow | ||
| # gains a `--suite draft` step. | ||
| server: [] | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -13,10 +13,14 @@ concurrency: | |
| permissions: | ||
| contents: read | ||
|
|
||
| env: | ||
| # Pinned conformance harness version. Bump deliberately and reconcile | ||
| # .github/actions/conformance/expected-failures.yml in the same change. | ||
| CONFORMANCE_VERSION: "0.2.0-alpha.3" | ||
|
|
||
| jobs: | ||
| server-conformance: | ||
| runs-on: ubuntu-latest | ||
| continue-on-error: true | ||
| steps: | ||
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | ||
| with: | ||
|
|
@@ -29,11 +33,14 @@ jobs: | |
| with: | ||
| node-version: 24 | ||
| - run: uv sync --frozen --all-extras --package mcp-everything-server | ||
| - run: ./.github/actions/conformance/run-server.sh | ||
| - name: Run server conformance (active suite) | ||
| run: >- | ||
| ./.github/actions/conformance/run-server.sh | ||
| --suite active | ||
| --expected-failures ./.github/actions/conformance/expected-failures.yml | ||
|
|
||
| client-conformance: | ||
| runs-on: ubuntu-latest | ||
| continue-on-error: true | ||
| steps: | ||
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | ||
| with: | ||
|
|
@@ -46,4 +53,9 @@ jobs: | |
| with: | ||
| node-version: 24 | ||
| - run: uv sync --frozen --all-extras --package mcp | ||
| - run: npx @modelcontextprotocol/conformance@0.1.13 client --command 'uv run --frozen python .github/actions/conformance/client.py' --suite all | ||
| - name: Run client conformance (all suite) | ||
| run: >- | ||
| npx --yes @modelcontextprotocol/conformance@"$CONFORMANCE_VERSION" client | ||
| --command 'uv run --frozen python .github/actions/conformance/client.py' | ||
| --suite all | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm actually not sure
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Land it for now though, we can fix if we end up with remaining failures that aren't covered by any SEPs |
||
| --expected-failures ./.github/actions/conformance/expected-failures.yml | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we not have EMA in Python at all? Do we need to build this into Python potentially @pcarleton?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yea it does not apparently