Goal
Distribute the Releases CLI through Windows-native package managers — Scoop and winget — so Windows users have a brew-equivalent install path, not just npm install -g.
Why
#94 shipped a Windows x64 binary via npm and GitHub Releases. That covers Windows users who have Node installed (npm) or who are willing to manually Expand-Archive. It doesn't cover the same audience Homebrew serves on macOS / Linux: Windows power users who manage their CLI tools through a native package manager.
- Scoop — community-driven, install via PowerShell, single-line install (
scoop install releases) once the manifest exists. Scoop "buckets" map ~ to Homebrew taps; we'd publish buildinternet/scoop-bucket analogous to the existing buildinternet/homebrew-tap.
- winget — Microsoft's official package manager, built into Windows 11. Submission goes through the winget-pkgs PR queue (manifest YAML, automated validation, manual approval for first submissions; subsequent updates can be automated via vedantmgoyal2009/winget-releaser reading our GH Releases assets).
Concrete shape
Scoop
- Create a public
buildinternet/scoop-bucket repo (analogous to homebrew-tap).
- Add
bucket/releases.json:
{
"version": "0.23.0",
"url": "https://github.com/buildinternet/releases-cli/releases/download/v0.23.0/releases-windows-x64.zip",
"hash": "<sha256>",
"bin": "releases-windows-x64.exe",
"shortcuts": [["releases-windows-x64.exe", "releases"]],
"checkver": "github",
"autoupdate": { ... }
}
- Extend
release.yml to push an updated manifest to the bucket repo on publish (same pattern as the existing Homebrew tap update step).
Install path: scoop bucket add buildinternet https://github.com/buildinternet/scoop-bucket && scoop install releases.
winget
- Submit initial manifest PR to
microsoft/winget-pkgs under manifests/b/buildinternet/releases/0.23.0/ — three YAML files (installer, locale, version).
- Wire
winget-releaser@v2 GitHub Action into our release.yml — it reads the published GH Release assets, generates the updated manifests, and opens PRs against winget-pkgs automatically on each version bump.
Install path: winget install buildinternet.releases.
Scope considerations
- Scoop is cheap — own infrastructure, no third-party review queue, fully automatable from existing release pipeline. Probably a half-day of work.
- winget is more involved — Microsoft's PR queue gates the first submission (often a few days). Subsequent updates auto-merge via the releaser action once approved. ~1 day for first submission + setup.
- Both can land independently; Scoop is a smaller first step.
Out of scope
- Chocolatey — a third Windows package manager. Niche audience for a developer CLI; skip unless someone asks.
- MSI installer — overkill for a single-binary CLI; npm + Scoop + winget is the standard distribution surface for Windows-native developer tools.
Follow-up to #94 ("Want max compatibility across the board").
Goal
Distribute the Releases CLI through Windows-native package managers — Scoop and winget — so Windows users have a
brew-equivalent install path, not justnpm install -g.Why
#94 shipped a Windows x64 binary via npm and GitHub Releases. That covers Windows users who have Node installed (npm) or who are willing to manually
Expand-Archive. It doesn't cover the same audience Homebrew serves on macOS / Linux: Windows power users who manage their CLI tools through a native package manager.scoop install releases) once the manifest exists. Scoop "buckets" map ~ to Homebrew taps; we'd publishbuildinternet/scoop-bucketanalogous to the existingbuildinternet/homebrew-tap.Concrete shape
Scoop
buildinternet/scoop-bucketrepo (analogous tohomebrew-tap).bucket/releases.json:{ "version": "0.23.0", "url": "https://github.com/buildinternet/releases-cli/releases/download/v0.23.0/releases-windows-x64.zip", "hash": "<sha256>", "bin": "releases-windows-x64.exe", "shortcuts": [["releases-windows-x64.exe", "releases"]], "checkver": "github", "autoupdate": { ... } }release.ymlto push an updated manifest to the bucket repo on publish (same pattern as the existing Homebrew tap update step).Install path:
scoop bucket add buildinternet https://github.com/buildinternet/scoop-bucket && scoop install releases.winget
microsoft/winget-pkgsundermanifests/b/buildinternet/releases/0.23.0/— three YAML files (installer, locale, version).winget-releaser@v2GitHub Action into ourrelease.yml— it reads the published GH Release assets, generates the updated manifests, and opens PRs againstwinget-pkgsautomatically on each version bump.Install path:
winget install buildinternet.releases.Scope considerations
Out of scope
Follow-up to #94 ("Want max compatibility across the board").