ci(winget): one-shot helper workflow for first-time Jarvy.Jarvy submission#19
Merged
Conversation
…ssion
`wingetcreate` is the tool Microsoft requires for first-time
package submissions to microsoft/winget-pkgs. The existing
publish-packages.yml::update-winget step uses
`vedantmgoyal2009/winget-releaser@v2` which is the UPDATE-only
action — it errors when the package doesn't already exist in
winget-pkgs:
Package Jarvy.Jarvy does not exist in the winget-pkgs repository.
Please add at least one version of the package before using this action.
The fix is to run `wingetcreate new --submit` once. But Microsoft
publishes `wingetcreate` only for Windows (no NuGet package, no
macOS / Linux binaries in their GitHub releases — verified
2026-05-27 against microsoft/winget-create v1.12.8.0), so a
macOS / Linux maintainer can't run it locally without standing up
a Windows VM.
This workflow runs `wingetcreate` on a `windows-latest`
GitHub-hosted runner, which gives the maintainer a Windows
environment for free. Two inputs:
- version: defaults to latest stable Jarvy release (skips
-rc / -beta / helm- tags via grep).
- dry_run: defaults to 'true' so the first invocation generates
the manifest and uploads as an artifact for review WITHOUT
submitting to Microsoft. Set to 'false' for the actual
submission.
After Microsoft approves the first PR (typically 24-48h for new
packages), Jarvy.Jarvy will be in winget-pkgs and
publish-packages.yml::update-winget will handle every subsequent
release. This workflow can be deleted at that point — keeping it
in-repo as historical record is fine but it has no further role.
Required secret: WINGET_TOKEN — fine-grained GitHub PAT with
`public_repo` scope on the maintainer's account (lets wingetcreate
fork microsoft/winget-pkgs to that account and open the PR).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Closing the winget gap surfaced by v0.1.1 publish-packages run #26527678602. The existing
publish-packages.yml::update-wingetusesvedantmgoyal2009/winget-releaser@v2— which is the UPDATE-only action. It errors whenJarvy.Jarvydoesn't already exist inmicrosoft/winget-pkgs:The fix is to run
wingetcreate new --submitonce. But Microsoft publisheswingetcreateonly for Windows (no NuGet, no macOS / Linux binaries — verified againstmicrosoft/winget-createv1.12.8.0 release assets today). A macOS-only maintainer can't run it locally without standing up a VM.This workflow runs it on a free
windows-latestGitHub-hosted runner.How to use
Set the
WINGET_TOKENrepo secret — fine-grained GitHub PAT withpublic_reposcope on your account. The PAT lets wingetcreate forkmicrosoft/winget-pkgsto your account and open the submission PR.After merging this PR, dispatch the workflow with
dry_run: true(default):Download the
winget-manifest-0.1.1artifact and inspect the three YAML files:Jarvy.Jarvy.installer.yamlJarvy.Jarvy.locale.en-US.yamlJarvy.Jarvy.yamlIf the manifest looks right, dispatch again with
dry_run: false. wingetcreate opens the PR tomicrosoft/winget-pkgs. Microsoft maintainers review (typically 24-48h for new packages).Once the PR is merged upstream, delete this workflow file. From that point forward
publish-packages.yml::update-wingethandles every subsequent release.Test plan
actionlintclean (pre-existing shellcheck info noise only)dry_run: true→ artifact uploaded → manifest revieweddry_run: false→ PR opens atmicrosoft/winget-pkgs🤖 Generated with Claude Code