Skip to content

Distribute via Scoop and winget on Windows #97

Description

@zachdunn

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

  1. Create a public buildinternet/scoop-bucket repo (analogous to homebrew-tap).
  2. 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": { ... }
    }
  3. 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

  1. Submit initial manifest PR to microsoft/winget-pkgs under manifests/b/buildinternet/releases/0.23.0/ — three YAML files (installer, locale, version).
  2. 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").

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions