Publish Windows binary + Scoop bucket for parity with brew install #50

Open
opened 2026-05-23 20:54:02 +00:00 by coilysiren · 0 comments
Owner

Originally filed by @coilysiren on 2026-05-10T06:01:32Z - https://github.com/coilysiren/coily/issues/107

Problem

Coily's release pipeline today is Mac/Linux only:

  • release.yml tags + creates a GitHub Release with no binary assets.
  • repository_dispatch fires coilysiren/homebrew-tap which rewrites Formula/coily.rb.
  • Mac users run brew upgrade coily and the formula builds from source tarball.

The kai-brew-release skill encodes the "push, wait for CI, brew upgrade, resume" loop. There is no Windows analog. On the Windows host coily must currently be built from source (go build -tags prod -o bin/coily.exe ./cmd/coily) and invoked via absolute path or manually copied to C:\Program Files\coily\ via make install-windows from an elevated shell.

Proposed fix

Mirror the brew-tap architecture with a Scoop bucket. Two pieces:

  1. Add a Windows build job to release.yml that cross-compiles coily-windows-amd64.exe (and optionally arm64) and uploads as a release asset. Runs on ubuntu-latest, ~15 lines of YAML, depends on the existing release job.

  2. Create coilysiren/scoop-bucket repo with bucket/coily.json pointing at the release asset URL. Use scoop's autoupdate block so the manifest self-bumps from GitHub releases (no second repository_dispatch needed - one less moving piece than the brew flow).

Windows host one-time setup:

  • Install scoop: iwr -useb get.scoop.sh | iex (PowerShell)
  • scoop bucket add coilysiren https://github.com/coilysiren/scoop-bucket
  • scoop install coily

Then the loop becomes: push → wait for CI → scoop update coily → resume. Update the kai-brew-release skill to cover the Scoop variant.

Out of scope

  • Signed Windows binaries (Authenticode). Scoop does not require it. Defer until SmartScreen friction actually shows up.
  • MSI / winget. Scoop is the closest UX match to brew taps and the cheapest first move. Winget can come later if needed.
  • Repo-recall + other Rust/Go binaries in the brew tap. Same pattern will apply once the bucket exists, but file separately per repo.

Cost estimate

~1 hour. Bucket repo would amortize over repo-recall and any future homebrew-tap addition.

_Originally filed by @coilysiren on 2026-05-10T06:01:32Z - [https://github.com/coilysiren/coily/issues/107](https://github.com/coilysiren/coily/issues/107)_ ## Problem Coily's release pipeline today is Mac/Linux only: - `release.yml` tags + creates a GitHub Release with no binary assets. - `repository_dispatch` fires `coilysiren/homebrew-tap` which rewrites `Formula/coily.rb`. - Mac users run `brew upgrade coily` and the formula builds from source tarball. The `kai-brew-release` skill encodes the "push, wait for CI, brew upgrade, resume" loop. There is no Windows analog. On the Windows host coily must currently be built from source (`go build -tags prod -o bin/coily.exe ./cmd/coily`) and invoked via absolute path or manually copied to `C:\Program Files\coily\` via `make install-windows` from an elevated shell. ## Proposed fix Mirror the brew-tap architecture with a Scoop bucket. Two pieces: 1. **Add a Windows build job to `release.yml`** that cross-compiles `coily-windows-amd64.exe` (and optionally `arm64`) and uploads as a release asset. Runs on `ubuntu-latest`, ~15 lines of YAML, depends on the existing `release` job. 2. **Create `coilysiren/scoop-bucket`** repo with `bucket/coily.json` pointing at the release asset URL. Use scoop's `autoupdate` block so the manifest self-bumps from GitHub releases (no second `repository_dispatch` needed - one less moving piece than the brew flow). Windows host one-time setup: - Install scoop: `iwr -useb get.scoop.sh | iex` (PowerShell) - `scoop bucket add coilysiren https://github.com/coilysiren/scoop-bucket` - `scoop install coily` Then the loop becomes: push → wait for CI → `scoop update coily` → resume. Update the `kai-brew-release` skill to cover the Scoop variant. ## Out of scope - Signed Windows binaries (Authenticode). Scoop does not require it. Defer until SmartScreen friction actually shows up. - MSI / winget. Scoop is the closest UX match to brew taps and the cheapest first move. Winget can come later if needed. - Repo-recall + other Rust/Go binaries in the brew tap. Same pattern will apply once the bucket exists, but file separately per repo. ## Cost estimate ~1 hour. Bucket repo would amortize over repo-recall and any future homebrew-tap addition.
coilysiren added
P3
and removed
P2
labels 2026-05-31 06:59:48 +00:00
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-bridge/coily#50
No description provided.