fix(install): redirect Windows users from install.sh to install.ps1 - #169
Conversation
install.sh is Linux/macOS-only, but curl and bash both exist on a typical Windows dev box, so Windows users run it by mistake. On Git Bash it died with a bare 'unsupported OS: MINGW64_NT-...' and no hint that a Windows installer exists; under WSL it succeeds but the binary is only usable inside WSL. Add a MINGW/MSYS/CYGWIN case to detect_target that points at the PowerShell one-liner, and document the WSL caveat in the README. Closes V2-969 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
dirvine
left a comment
There was a problem hiding this comment.
Reviewed exact head 11a9a3cda0324466b78a5e13dc38c7a7d580fa6c.
Verified:
bash -n install.shpasses.- Mocked
MINGW64,MSYS, andCYGWINuname -svalues all take the new guard, print the PowerShell installer guidance to stderr, and exit 1. - The command matches the existing
install.ps1; the current release includes the corresponding Windows archive. - Linux/macOS branches are unchanged.
- All 15 current checks pass.
Review team: 6/6 APPROVE, no dissent.
Non-blocking: normal PR CI does not directly exercise the new MINGW guard; the manual Windows test and local mocked-path reproductions are sufficient for this T0 change.
jacderida
left a comment
There was a problem hiding this comment.
Approved. Verified the diff is confined to installer stderr messaging (a MINGW*/MSYS*/CYGWIN* case arm placed before the existing *) fallthrough, so Linux/Darwin are unreachable) plus a README note.
The two red checks on this branch are the known repo-wide baselines, both already fixed on main: Security Audit was RUSTSEC-2026-0258 (h2 0.4.14), cleared by #177, and Merkle E2E (ubuntu) was killed at the 60m cap, raised to 90m by #178. Neither is attributable to this diff.
Resolves the merge-back conflict for the 0.3.4 / 0.7.0 promotion. Only README.md conflicted. Both sides added text at the same point, after the two install commands: `main` gained a note that the `curl | bash` installer is Linux/macOS only and WSL users want the PowerShell one (#169), and the rc branch gained the table of environment variables shared by both installers (#175). They are complementary, so both are kept — the note first, since it decides which installer to run, then the table that applies to either. Everything else merged cleanly, including both manifests and Cargo.lock. Verified after the merge that the promotion survived it: ant-core 0.7.0 and ant-cli 0.3.4, ant-protocol pinned to 2.3.3, both ant-node pins (optional devnet and dev-dependency) to 0.17.2, no `-rc.`/`-beta.` suffixes and no git+branch sources left in the lock. `cargo check --all-targets --all-features` passes against the published crates and left the lock unchanged. The release tags are unaffected: ant-core-v0.7.0 and ant-cli-v0.3.4 point at 7145a0d, which this merge builds on rather than rewrites.
Linear issue
V2-969
Risk tier
Compatibility
Semver impact
Test evidence
bash -n install.shpasses.install.shunder Git Bash on Windows 11 (uname -s=MINGW64_NT-10.0-26200): the new guard fires before any download, prints theirm ... | iexPowerShell one-liner, and exits 1. Previously this path died with a bareunsupported OSerror.MINGW*|MSYS*|CYGWIN*case arm sits before the existing*)fallthrough and is unreachable onLinux/Darwin.install-test.ymlworkflow exercises both installers in CI.New dependency
none
ADR
n/a
Mitigation / rollback
Revert the commit — the change is installer stderr messaging plus a README note; no shipped binaries or runtime code paths are affected.
🤖 Generated with Claude Code