Skip to content

ci: clean up stale .ghaignore entries + re-enable 3 working anchor examples#48

Merged
mikemaccana merged 2 commits into
mainfrom
claude/wonderful-einstein-HmaHM
Jun 4, 2026
Merged

ci: clean up stale .ghaignore entries + re-enable 3 working anchor examples#48
mikemaccana merged 2 commits into
mainfrom
claude/wonderful-einstein-HmaHM

Conversation

@mikemaccana

@mikemaccana mikemaccana commented Jun 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Scoped-down audit of .github/.ghaignore. Removes entries whose exclusion reasons are stale, and re-enables three Anchor examples verified to pass locally.

Scope note: this PR originally also included a native-test-harness fix + re-enabling native examples. CI revealed that surfacing real native results exposes a pre-existing, repo-wide breakage (see below), so that work has been split out into a follow-up. This PR is limited to changes that are green-able today.

Changes

1. Remove 14 stale steel entries — every steel directory was already deleted from the repo; the ignore entries were dead.

2. Re-enable 3 Anchor examples (verified locally with Anchor 1.0.0 + Solana CLI + surfpool, full anchor build + anchor test):

Also documented the real reason basics/pyth/anchor stays ignored (pyth-solana-receiver-sdk 1.1.0 pulls a borsh incompatible with Anchor 1.0 / Solana 3.x).

Follow-up (split out of this PR): native bankrun tests are broken repo-wide

While verifying a test-harness fix, I found that the native node:test files were being run through ts-mocha, which sees zero mocha tests, prints "0 passing", and exits 0 — so pnpm test (and the Native workflow) reported success even when the in-process node:test bankrun tests failed. Every native bankrun suite has effectively been unverified (false-green).

Switching the runner to node --import tsx --test (so failures actually propagate) reveals the real problem: solana-bankrun cannot execute programs built by the repo's pinned Solana 3.1.14 toolchain. Every native bankrun example fails identically with:

Program failed to complete: unsupported BPF instruction

Confirmed it is not caused by my changes and not trivially fixable:

  • Reproduces with the exact CI toolchain (Solana 3.1.14 / platform-tools v1.52).
  • Not fixed by bumping solana-bankrun 0.3.1 → 0.4.0 (latest).
  • Not fixed by building with --arch v0/v1/v2/v3.
  • The Rust-side cargo test (litesvm 0.11.0) path passes for the same programs — so the programs are fine; only the JS bankrun runtime is incompatible.

This needs a dedicated effort (likely migrating native tests onto the working Rust/litesvm path, or finding a compatible SVM/toolchain) and will land separately.

Still excluded (other follow-ups)

  • compression/{cutils,cnft-vault,cnft-burn}/anchor — migrated but have no tests.
  • basics/pyth/anchor — upstream SDK/borsh incompatibility.
  • Metaplex native token examples — need devnet→bankrun test rewrites.
  • tokens/token-extensions/{metadata,nft-meta-data-pointer}/anchor, tools/shank-and-solita/native — dep bumps.

https://claude.ai/code/session_013dpnF6uSGWXjkJJZseqzcP

claude added 2 commits June 4, 2026 18:07
All 14 steel project paths referenced directories that no longer exist
(the steel framework was removed; there is no steel workflow). Removing
the dead ignore entries.

https://claude.ai/code/session_013dpnF6uSGWXjkJJZseqzcP
These three Anchor examples were already migrated to Anchor 1.0.0 with
complete Rust (litesvm/solana-kite) test suites, but were still listed in
.ghaignore for reasons that no longer apply:

- finance/escrow/anchor: old reason was a JS helpers bug (#40); the test
  is now pure Rust, so that bug is irrelevant. Verified: anchor test green
  (4/4 + lib test).
- finance/token-swap/anchor: verified anchor build + 18/18 tests pass.
- tokens/external-delegate-token-master/anchor: verified 3/3 tests pass.

All three verified locally with Anchor 1.0.0, Solana CLI, and surfpool,
matching the CI flow (anchor keys sync -> anchor build -> anchor test).

Also clarifies basics/pyth/anchor's ignore reason: it fails because
pyth-solana-receiver-sdk 1.1.0 pulls a borsh version incompatible with
Anchor 1.0 / Solana 3.x (PriceUpdateV2 fails BorshDeserialize). Left
ignored pending a compatible upstream SDK.

https://claude.ai/code/session_013dpnF6uSGWXjkJJZseqzcP
@mikemaccana mikemaccana force-pushed the claude/wonderful-einstein-HmaHM branch from 36b09fd to fdeaccc Compare June 4, 2026 18:38
@mikemaccana mikemaccana changed the title ci: re-enable working examples + fix native test harness ci: clean up stale .ghaignore entries + re-enable 3 working anchor examples Jun 4, 2026
@mikemaccana mikemaccana merged commit 3446817 into main Jun 4, 2026
18 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.

2 participants