feat: install.ps1 - #60
Conversation
|
Warning Review limit reached
Next review available in: 41 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@themis-blindfold review |
⚖️ Themis review: 🧹 Ship it, nits insideClean, well-structured PowerShell installer that faithfully mirrors
🧹 Nits
📝 Walkthrough
🧪 How to verify
Automate: the existing release workflow's Product take: Windows goes from "grab the .zip manually" to a proper 🧭 Assumptions & unverified claims
PowerShell without a PowerShell machine — that's commitment to CI-driven development. · reviewed at 16ee32e |
Zaimwa9
left a comment
There was a problem hiding this comment.
Pre-approving depending on whether you want to fix the nit
Mirrors install.sh: pinned version bumped by release-please, sha256 from checksums.txt, ~\.local\bin, PATH edited unless told otherwise. Two Windows-specific wrinkles. PATH goes through the HKCU\Environment registry key as ExpandString, because [Environment]::SetEnvironmentVariable rewrites REG_EXPAND_SZ as REG_SZ and would break any %VAR% already in PATH; a dummy User-scope write then broadcasts WM_SETTINGCHANGE so open shells reread it. And `iex` cannot pass arguments, so the parameters are backed by the same FLAGSMITH_* environment variables and the docs show the scriptblock form. Add-CiPath appends the install dir to $GITHUB_PATH, so a GitHub Actions step after the install finds the CLI on PATH — which is what the release smoke job relies on. beep boop
Co-authored-by: themis-blindfold[bot] <302911107+themis-blindfold[bot]@users.noreply.github.com>
matthewelwell
left a comment
There was a problem hiding this comment.
Blindly stamping based on previous approval which was dismissed by a rebase 🙈
Follow-up to #59, for Windows.
Mirrors
install.sh: pinned version bumped by release-please, sha256 fromchecksums.txt, installs to~\.local\bin, edits PATH unless told not to, and every parameter is also readable from theFLAGSMITH_*environment variables.Two Windows-specific wrinkles:
HKCU\EnvironmentasExpandString, because[Environment]::SetEnvironmentVariablerewritesREG_EXPAND_SZasREG_SZand would break any%VAR%already in PATH. Then a dummy user-scope write broadcastsWM_SETTINGCHANGEso open shells reread it. Pattern from pixi via bun; uv does the same.iexcannot pass arguments — the PowerShell twin ofFLAGSMITH_CLI_VERSION=… curl … | sh. Henceparam()plus env fallbacks, soirm | iex, the scriptblock form and a saved file all work.Add-CiPathappends the install dir to$GITHUB_PATH, so the step after an install findsflagsmithon PATH. The release smoke job depends on that.Verified
flagsmith_<version>_windows_{amd64,arm64}.zipcontainingflagsmith.exe, both inchecksums.txtx-release-please-versionline rewrites correctly under the updater's real regex.ps1Verification status
windows-latestCI runs PSScriptAnalyzer (clean) and./install.ps1 -DryRun, so the script parses and its argument, architecture and URL handling execute on a real Windows host. It has never done a full install anywhere — the release smoke job is the first time that happens.Written on a machine with no PowerShell, so CI is doing all the work here.