Skip to content

feat(install): install.ps1 is published beside install.sh, and runs on Windows PowerShell 5.1 - #951

Merged
David-Noble-at-work merged 2 commits into
developfrom
feature/948-install-ps1-is-published-beside
Sep 25, 2026
Merged

David-Noble-at-work merged 2 commits into
developfrom
feature/948-install-ps1-is-published-beside

Conversation

@David-Noble-at-work

@David-Noble-at-work David-Noble-at-work commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Lane 1 of #949. Design #798: ruling 1 stands; ruling 3 reversed 2026-09-24 (recorded on #798).

  • Published — release.yaml's sync step copies install.sh and install.ps1 to the site's public/, adds both, and the release summary shows the Windows one-liner. irm https://devlore.noblefactor.com/install.ps1 | iex stops being a 404 on the next release.
  • Runs on 5.1 — #Requires -Version 5.1; Get-OSName reads PSEdition before $IsWindows/$IsMacOS/$IsLinux, which 5.1 lacks and Set-StrictMode would refuse; -UseBasicParsing on Invoke-RestMethod and Invoke-WebRequest; TLS 1.2 forced before the first request. One code path, 5.1 and 7, Windows, macOS and Linux. Nothing installed but the products.
  • The header states the floor and the execution-policy note for the file form.
  • Plan — docs/plans/feature/948-install-ps1-is-published-beside.md, active: the 5.1 live run and the site's publication close after this merges.

Resolves #948

Test plan

  • install.ps1 parses under pwsh 7 (0 errors) and every cmdlet, operator and .NET member it uses is inside 5.1's surface (listed in the plan)
  • Under pwsh 7 on linux/arm64: scratch prefix, DEVLORE_TOOLS=writ, pre-release v0.1.0-dev.20260924074819, checksum verified, writ --version → build d54626d2; nothing written outside the prefix
  • PSScriptAnalyzer 1.25.0 with the organization's settings: 33 findings, all present on the base, none new
  • release.yaml parses as YAML; the sync step's shell block passes bash -n; shellcheck's one finding (SC2164, cd website) is pre-existing
  • Under Windows PowerShell 5.1 on DANOBLE-WD11-3, both invocation forms, scratch prefix — the owner's run
  • After the next release: curl -sI https://devlore.noblefactor.com/install.ps1 → 200

Time

Marker UTC Elapsed
opened (first commit) 2026-09-24T20:20:07Z —
submitted (PR opened) 2026-09-25T04:45:08Z 8.4 h after opened
merged 2026-09-25T04:57:06Z 0.2 h after submitted; 8.6 h in all

Computed by the algorithm of noblefactor-ops#188 at merge.

…n Windows PowerShell 5.1

release.yaml's sync step copied install.sh to the site and nothing else, so install.ps1's own
usage line -- irm https://devlore.noblefactor.com/install.ps1 | iex -- was a 404. It syncs both
scripts now, and the release summary shows the Windows one-liner beside the Unix one.

install.ps1 was written for PowerShell 7, which a fresh Windows machine does not have. Ruled
2026-09-24 (#798, ruling 3 reversed): the installer uses what is on the box, Windows PowerShell
5.1, and installs nothing but lore, star and writ. So: #Requires -Version 5.1; Get-OSName reads
PSEdition before the $Is* automatic variables, which 5.1 lacks and strict mode would refuse;
-UseBasicParsing on every web call, since 5.1's default engages the Internet Explorer parser;
TLS 1.2 forced before the first request. The body is otherwise #914's.

Verified under pwsh 7 on linux/arm64 against a scratch prefix with a real pre-release. The run
under 5.1 on a Windows machine is the owner's, and the plan says so.

Resolves #948

Claude-Session: https://claude.ai/code/session_01DuNfZFyfxBoD9pdaiDEMrY
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.

install.ps1 is published beside install.sh, and runs on Windows PowerShell 5.1 — what a fresh Windows machine has

1 participant