Skip to content

Matrix checker - #205

Merged
truthixify merged 1 commit into
wraith-protocol:developfrom
midenotch:matrix-checker
Oct 22, 2026
Merged

truthixify merged 1 commit into
wraith-protocol:developfrom
midenotch:matrix-checker

Conversation

@midenotch

@midenotch midenotch commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Closes #184


Summary

Compile the Solana contract guide against a reference workspace, and check the
compatibility matrix in CI. Rebased onto develop; contains only the matrix
checker work (the Rust quickstart and Solana snippet stacks live in #203/#204).

Related Issue

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring
  • Other (CI + validation tooling)

Changes Made

  • scripts/check-compatibility-matrix.mjs — validates each chain section of
    reference/compatibility-matrix.mdx against the entry that owns each value
    (EVM: contracts/evm.mdx, Stellar: scripts/contract-registry.json, CKB:
    contracts/ckb.mdx) instead of checking that an identifier merely appears
    somewhere in the docs.
  • SDK core table is compared against the installed package version. CI
    installs the packed SDK tarball, which leaves a file:/tmp/…tgz specifier in
    package.json that carries no version; the checker now reads the canonical
    version from node_modules/<pkg>/package.json and compares the documented
    value against that, so the matrix is validated against the version under test.
  • scripts/check-compatibility-matrix.test.mjs — regression fixtures for the
    checker, including the file:-specifier case.
  • CI: the Compile docs snippets job now runs the matrix checker and its unit
    tests.
  • The live Mintlify preview check now runs only when MINTLIFY_PREVIEW_URL is
    supplied; the script skips (exit 0) instead of failing when no preview URL is
    provided.

Testing

  • node --test scripts/check-compatibility-matrix.test.mjs — 28 tests pass
  • node scripts/check-compatibility-matrix.mjs — passes (14 rows / 8 identifiers)
  • Simulated the CI install (@wraith-protocol/sdk declared as
    file:/tmp/wraith-protocol-sdk-1.4.5.tgz) — checker passes against the
    installed version 1.4.5
  • node scripts/check-preview-redirect.mjs without a preview URL — skips, exit 0
  • All required CI checks green on this head

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Documentation updated (if applicable)
  • Tests added/updated (if applicable)
  • No new warnings or errors
  • Commit messages follow conventional commits
  • Author and committer identity match GitHub account

@midenotch
midenotch requested a review from truthixify as a code owner October 17, 2026 21:20
@drips-wave

drips-wave Bot commented Oct 17, 2026

Copy link
Copy Markdown

@midenotch Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@truthixify truthixify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking findings:

  1. This does not meet the issue's “exact installed” requirement. scripts/check-compatibility-matrix.mjs:142-145,297-327 reads dependency specifiers from package.json, strips ^ / ~, and calls those the installed versions. The lockfile actually resolves @stellar/stellar-sdk from ^13.1.0 to 13.3.0 and @solana/web3.js from ^1.95.0 to 1.98.4; the checker still accepts matrix values 13.1.0 and 1.95.0. Resolve and compare the exact versions from pnpm-lock.yaml (or installed package metadata), and add a regression fixture where the specifier stays constant while the resolved lockfile version drifts.

  2. The PR is stacked on the unmerged Rust/Solana snippet branches and is currently conflicting. Both required snippet jobs are red, so the new required check cannot land in a passing required workflow. Rebase/isolate the matrix-checker commit on current develop, remove the unrelated snippet/doc changes, and get both required jobs green.

@truthixify truthixify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Current-head required checks are still red for branch-owned changes. The matrix checker compares the documented ^1.4.5 value with the CI-installed file:/tmp/wraith-protocol-sdk-1.4.5.tgz path and fails, rather than comparing the package version represented by that artifact. The branch also carries unrelated Rust quickstart edits that fail snippet compilation with undeclared Scalar/CompressedEdwardsY/etc., and the preview check exits because MINTLIFY_PREVIEW_URL is unset. Rebase/drop the stacked snippet changes, make the compatibility check compare a canonical exact installed version, and only require the preview job when its URL is actually supplied.

@midenotch

Copy link
Copy Markdown
Contributor Author

Current-head required checks are still red for branch-owned changes. The matrix checker compares the documented ^1.4.5 value with the CI-installed file:/tmp/wraith-protocol-sdk-1.4.5.tgz path and fails, rather than comparing the package version represented by that artifact. The branch also carries unrelated Rust quickstart edits that fail snippet compilation with undeclared Scalar/CompressedEdwardsY/etc., and the preview check exits because MINTLIFY_PREVIEW_URL is unset. Rebase/drop the stacked snippet changes, make the compatibility check compare a canonical exact installed version, and only require the preview job when its URL is actually supplied.

fixed

@truthixify truthixify left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed exact head 0411ec6. The required workflow now runs both the compatibility checker and its regression fixtures after installing the pinned SDK artifact. The checker compares local file specifiers against the installed artifact version, and local verification passed all 28 unit/integration cases plus the live matrix check. All required checks are green.

@truthixify
truthixify merged commit 0e109de into wraith-protocol:develop Oct 22, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Wave 10] Run the compatibility matrix checker in docs CI

2 participants