Skip to content

fix(install): redirect Windows users from install.sh to install.ps1 - #169

Merged
jacderida merged 1 commit into
mainfrom
fix/install-sh-windows-guidance
Aug 25, 2026
Merged

fix(install): redirect Windows users from install.sh to install.ps1#169
jacderida merged 1 commit into
mainfrom
fix/install-sh-windows-guidance

Conversation

@Nic-dorman

Copy link
Copy Markdown
Member

Linear issue

V2-969

Risk tier

  • T0 — docs / tooling / CI / pure UX-output. Repo CI only.
  • T1 — client-only, no network-facing behavior change. CI + prod compat smoke.
  • T2 — node/client logic with behavioral surface, no protocol/format/economics change. Dev testnet + ADR.
  • T3 — protocol / storage format / payments / routing. T2 evidence + adversarial testing.

Compatibility

  • Wire: none
  • Storage: none
  • API: none

Semver impact

  • breaking
  • feature
  • fix

Test evidence

  • bash -n install.sh passes.
  • Ran the modified install.sh under Git Bash on Windows 11 (uname -s = MINGW64_NT-10.0-26200): the new guard fires before any download, prints the irm ... | iex PowerShell one-liner, and exits 1. Previously this path died with a bare unsupported OS error.
  • Linux/macOS behavior unchanged: the new MINGW*|MSYS*|CYGWIN* case arm sits before the existing *) fallthrough and is unreachable on Linux/Darwin.
  • The install-test.yml workflow 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

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 dirvine left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed exact head 11a9a3cda0324466b78a5e13dc38c7a7d580fa6c.

Verified:

  • bash -n install.sh passes.
  • Mocked MINGW64, MSYS, and CYGWIN uname -s values 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 jacderida left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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.

@jacderida
jacderida merged commit c83c54a into main Aug 25, 2026
15 checks passed
@jacderida
jacderida deleted the fix/install-sh-windows-guidance branch August 25, 2026 21:00
jacderida added a commit that referenced this pull request Aug 26, 2026
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.
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.

3 participants