feat(release): support Windows #108
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/99-windows-support"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Windows build and install path for lazyforge: release zips for
windows/amd64andwindows/arm64, a PowerShell installer, working self-update, and the platform bits that assumed Linux or macOS.Changes
make releasealso buildslazyforge_<tag>_windows_{amd64,arm64}.zip(single entrylazyforge.exe);checksums.txtlists all six archives.install.ps1: picks the arch, verifies the SHA-256, installs to%LOCALAPPDATA%\Programs\lazyforge, adds it to the userPATH(and broadcasts the change). Re-running upgrades in place, renaming a running exe aside if needed.Applydownloads and extracts the zip on Windows. The restart is nowrestart()in build-tagged files:syscall.Execon Unix, a child process with stdio and exit code forwarded on Windows.%AppData%\lazyforgeon Windows (XDG overrides still win).openBrowserusesrundll32 url.dll,FileProtocolHandler; the$EDITORfallback isnotepad;token_cmdruns throughcmd /C.make checkgainsvet-windows(vet and build both Windows targets). README anddocs/design.mddocument the Windows install.Decisions
python3 -m zipfile(the installer tests already needpython3;zipisn't guaranteed on the runner).os.StartProcessbecause thenoctxlinter rejectsexec.Commandwithout a context.Test plan
go test ./...passes; new tests cover the zipApplypath (amd64 and arm64, missing binary, bad checksums) and the per-OS helpers for paths, shell, browser and editor.make releaseproduces six archives;scripts/test-install.shpasses, including a new case for the Windows zips.golangci-lintclean on Linux andGOOS=windows;make vet-windowspasses.install.ps1, the Windows restart,rundll32andnotepadare verified by compile, vet and review only.Follow-ups
Refs #99
🤖 Generated with Claude Code
https://claude.ai/code/session_01JM4weH5nADZqsaZ5MREXUX