StellarForge CLI treats supported-platform failures as release blockers unless a limitation is explicitly documented and reviewed.
| Operating system | Runtime | Validation level |
|---|---|---|
| Linux (GitHub-hosted Ubuntu) | Node.js 22.13+ LTS | Full quality gate, tests, build |
| Linux (GitHub-hosted Ubuntu) | Node.js 24 LTS | Tests and build |
| macOS (GitHub-hosted macOS) | Node.js 22.13+ LTS | Tests and build |
| Windows (GitHub-hosted Windows) | Node.js 22.13+ LTS | Tests and build |
The package engine range remains Node.js >=22.13.0 <25 and npm >=10.9.0, matching package.json. Node.js 22 and Node.js 24 are the supported LTS majors for the current MVP. Intermediate non-LTS Node releases are not release-validation targets. These documented ranges mirror the CI matrix and must not be expanded or contracted without a policy review.
The platform jobs run the repository test suite and production build. This includes coverage for:
- compiled CLI startup, help, version, and parser exit behavior;
- project path validation and generation safety;
- generated Basic App, Full Stack, Smart Contract, and API Service smoke checks;
- platform-specific executable selection such as the Windows npm wrapper,
cargo.exe, andstellar.exe; - subprocess supervision and failure propagation;
- project test/development workflow resolution;
- project configuration loading and security validation.
The Linux quality job additionally runs type checking, linting, and Prettier validation.
StellarForge code should expose platform differences deliberately instead of hiding them behind shell behavior.
- npm subprocesses use a fixed
cmd.exe /d /s /c npm ...wrapper because Windows.cmdshims are not directly executable under the CLI'sshell: falsepolicy; - Cargo subprocesses use
cargo.exe; - Stellar deployment subprocesses use
stellar.exe; - path tests must use Node path APIs rather than assuming POSIX separators;
- commands must not rely on Bash being the default shell.
- npm, Cargo, and Stellar executables use their ordinary executable names;
- generated projects and CLI subprocesses still use argument arrays rather than shell command concatenation.
A green platform job validates StellarForge's code and tests on that OS; it does not guarantee every optional external tool is preinstalled on every runner.
stellarforge doctor is responsible for reporting the actual local availability of Git, Rust, Cargo, Stellar CLI, Docker, and supported runtimes. Tests accept either a healthy or diagnostic-failure result where runner tool availability is intentionally variable.
A failing Linux, macOS, or Windows matrix job blocks merge/release for changes that affect the supported CLI surface. A failure may be waived only through an explicit project decision that documents the affected platform, reason, user impact, and follow-up plan.
Platform-specific failures must not be hidden with continue-on-error in the supported matrix.
For installation and setup failures, see Troubleshooting. Runtime and tool requirements are in Installation, and exit codes are defined in Exit Codes.