Skip to content

Add Scoop and WinGet support for Windows#484

Open
Abhishek9639 wants to merge 1 commit into
score-spec:mainfrom
Abhishek9639:fix/147
Open

Add Scoop and WinGet support for Windows#484
Abhishek9639 wants to merge 1 commit into
score-spec:mainfrom
Abhishek9639:fix/147

Conversation

@Abhishek9639

Copy link
Copy Markdown
Contributor

Add Scoop and WinGet support for Windows (#147)

Description

This adds Windows package manager support to score-compose so that Windows users can install the CLI without manually downloading and extracting a zip file.

Two package managers are now supported via GoReleaser automation:

  • Scoop - publishes a manifest to score-spec/scoop-bucket on every release using the existing TAP_GITHUB_TOKEN secret (same token already used for Homebrew, so no new secrets are needed).
  • WinGet - generates manifests and opens a pull request to microsoft/winget-pkgs via score-spec/winget-pkgs fork on every release.

The README.md installation section has also been updated to document all three Windows install methods: Scoop, WinGet, and manual download.

What does this PR do?

Closes #147

Windows users currently have no package manager option for score-compose they have to go to the Releases page, download a zip, extract it, and manually add the binary to their PATH. This PR wires up GoReleaser to handle Scoop and WinGet publishing automatically on every release, bringing the Windows experience on par with macOS (Homebrew).

Note for maintainers: Two one-time org-level steps are needed
before the automation triggers on the next release:

  1. Create the score-spec/scoop-bucket repository.
  2. Fork microsoft/winget-pkgs into the score-spec org.

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I've signed off with an email address that matches the commit author.

@Abhishek9639
Abhishek9639 force-pushed the fix/147 branch 2 times, most recently from 2c04b96 to 05a28e4 Compare May 6, 2026 13:04
@Abhishek9639

Copy link
Copy Markdown
Contributor Author

Hey @mathieu-benoit,
I've added Scoop and WinGet support via GoReleaser so Windows users can install score-compose without manually downloading a zip. It reuses the existing TAP_GITHUB_TOKEN, so no new secrets are needed. Two one-time org steps are needed before the next release creating score-spec/scoop-bucket and forking microsoft/winget-pkgs into the org. Happy to help set those up if needed. Would love your thoughts.
Thanks

@Abhishek9639

Copy link
Copy Markdown
Contributor Author

Hi @mathieu-benoit,
Just following up on this when you get a chance. I rebased it on the latest main yesterday so it should be conflict-free. The only thing blocking the automation on the next release is the two one-time org steps (creating score-spec/scoop-bucket and forking microsoft/winget-pkgs), and I'm happy to help set those up if that's useful. Let me know if anything needs changing on my end.
Thanks!

Comment thread .goreleaser.yaml
commit_msg_template: "Scoop update for {{ .ProjectName }} version {{ .Tag }}"
commit_author:
name: rachfop
email: prachford@icloud.com

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noticed this uses a personal identity (name/email) rather than a bot account. I see brews already does this, so it's an existing pattern, not something this PR introduced, just flagging that copying it into two more places might be worth fixing now rather than later. Totally fine to leave as-is if that's intentional for the project, just wanted to raise it.

Comment thread .goreleaser.yaml
license_url: "https://github.com/score-spec/score-compose/blob/main/LICENSE"
publisher_url: "https://score.dev"
publisher_support_url: "https://github.com/score-spec/score-compose/issues"
package_identifier: score-spec.score-compose

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quick question, do you know if WinGet's validation bot requires PascalCase for the publisher/package name (like ScoreSpec.ScoreCompose)? I've seen that convention in some other winget-pkgs manifests but I'm honestly not 100% sure it's enforced vs just a convention. Might be worth checking microsoft/winget-pkgs for similar CLI tools before moving ahead, since if the bot rejects it that'd block the whole release step.

Comment thread .goreleaser.yaml
email: prachford@icloud.com
repository:
owner: score-spec
name: winget-pkgs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assumes score-spec/winget-pkgs already exists as a fork of microsoft/winget-pkgs. Does it? If it needs to be created first, might be worth a short comment right here in the yaml so future maintainers aren't confused about why it's pointing at a repo under score-spec.

Comment thread README.md
**[Scoop](https://scoop.sh/) (recommended):**

```powershell
scoop bucket add score-spec https://github.com/score-spec/scoop-bucket

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This points at score-spec/scoop-bucket, which doesn't exist yet as far as I can tell. If that's right, anyone following these instructions today would hit a 404. Might be worth holding this README section until the bucket exists and has a manifest in it, or marking it "coming soon" for now, or any other solution if we have.

Comment thread README.md
**[WinGet](https://learn.microsoft.com/en-us/windows/package-manager/winget/) (Windows 10/11 built-in):**

```powershell
winget install score-spec.score-compose

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question here, winget install score-spec.score-compose will only work once a manifest has actually been merged into microsoft/winget-pkgs. Worth gating this doc update on that happening first, otherwise it's a broken instruction for anyone reading the README before the first release goes through.

@ShantKhatri ShantKhatri left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mathieu-benoit (tagging you in case this is useful, please correct me if I've got anything wrong here, still learning the podman/release tooling side of things and just trying to help where I can)

Really nice to see Windows support getting added, this closes a real gap. I tested this locally with goreleaser check and a snapshot build, and left a few inline notes, mostly around two things that would break for users as-is (the Scoop bucket and WinGet manifest repos don't exist yet, so the README instructions would fail immediately), plus a couple of smaller consistency/config suggestions. Nothing here should be hard to address, happy to help test again once updated.

Signed-off-by: Abhishek <abhishekup082@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set up Microsoft package manager (e.g. Chocolatey, Scoop, WinGet)

2 participants