feat: implement solana-test-validator-up runtime installer#9210
Open
ulissesferreira wants to merge 4 commits into
Open
feat: implement solana-test-validator-up runtime installer#9210ulissesferreira wants to merge 4 commits into
ulissesferreira wants to merge 4 commits into
Conversation
Base automatically changed from
add-solana-test-validator-up-package-scaffold
to
main
June 22, 2026 09:25
ae45215 to
1be60e9
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1be60e9. Configure here.
- Parse .yarnrc.yml as YAML for global-cache detection - Tolerate a missing package.json in the CLI option reader - Merge partial release overrides with pinned defaults - Propagate child termination signals as a non-zero wrapper exit
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
This PR is the second of two PRs splitting #8826, stacked on top of:
@metamask/solana-test-validator-uppackage #9209 — scaffold:feat: scaffold @metamask/solana-test-validator-up packageIt contains only the real implementation of the Solana/Agave test-validator runtime installer, with no unrelated monorepo changes.
What's included (delta vs scaffold PR)
src/install.ts— core Agave/solana-test-validatordownload, checksum verification, extraction, and install logicsrc/bin/solana-test-validator-up.ts— CLI entry point (registered asbininpackage.json)src/index.ts— updated exportssrc/install.test.ts— Jest tests for the installersrc/index.test.ts— removed (replaced by install tests)package.json— addsbinfield + version bumpCHANGELOG.md— changelog entry for the initial implementationREADME.md— full usage documentationjest.config.js— updated for the new test structureyarn.lock— updated for any new depsWhat's NOT included
No
knip.config.tschanges, no CODEOWNERS/teams.json churn (those are in the scaffold PR), no unrelated monorepo changes.Replaces
Together with #9209, this replaces #8826 with two clean, reviewable PRs based on current
origin/main.Verification
All passed ✓
Note
Low Risk
New dev/CI tooling package with checksum-verified downloads and tests; no changes to wallet, auth, or production runtime paths.
Overview
Replaces the scaffold placeholder with a runtime-only installer modeled on
@metamask/foundryup: it downloads a pinned Agave v3.1.14 release per platform, verifies SHA-256 checksums, extracts the archive into the MetaMask cache, and writessolana-test-validatorandsolanawrappers undernode_modules/.bin. The harness is expected to start the validator and seed accounts; this package does not run Docker or a node.Adds
solana-test-validator-upCLI (install, default install,cache clean,--help) and exports the install API fromsrc/index.ts. Cache location follows Yarn: YAML-parsed.yarnrc.ymlenableGlobalCacheselects~/.cache/metamaskvs repo.metamask/cache. Options merge frompackage.json(solanaTestValidatorUpand aliases), CLI flags, and defaults; partialreleaseoverrides shallow-merge platform maps instead of replacing pinned defaults. Missingpackage.jsonyields empty config so flag-only commands work.Generated bin wrappers use
spawnSyncand exit non-zero when the child exits on a signal. Addsyamldependency, broadinstall.test.ts, README/changelog, relaxed Jest coverage thresholds, and drops the greeter stub test.Reviewed by Cursor Bugbot for commit b133f26. Bugbot is set up for automated code reviews on this repo. Configure here.