Skip to content

ci(winget): one-shot helper workflow for first-time Jarvy.Jarvy submission#19

Merged
Cliftonz merged 1 commit into
mainfrom
chore/winget-first-submission
May 28, 2026
Merged

ci(winget): one-shot helper workflow for first-time Jarvy.Jarvy submission#19
Cliftonz merged 1 commit into
mainfrom
chore/winget-first-submission

Conversation

@Cliftonz
Copy link
Copy Markdown
Contributor

Why

Closing the winget gap surfaced by v0.1.1 publish-packages run #26527678602. The existing publish-packages.yml::update-winget uses vedantmgoyal2009/winget-releaser@v2 — which is the UPDATE-only action. It errors when Jarvy.Jarvy doesn't already exist in microsoft/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, no macOS / Linux binaries — verified against microsoft/winget-create v1.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-latest GitHub-hosted runner.

How to use

  1. Set the WINGET_TOKEN repo secret — fine-grained GitHub PAT with public_repo scope on your account. The PAT lets wingetcreate fork microsoft/winget-pkgs to your account and open the submission PR.

  2. After merging this PR, dispatch the workflow with dry_run: true (default):

    gh workflow run winget-first-submission.yml --repo bearbinary/jarvy
  3. Download the winget-manifest-0.1.1 artifact and inspect the three YAML files:

    • Jarvy.Jarvy.installer.yaml
    • Jarvy.Jarvy.locale.en-US.yaml
    • Jarvy.Jarvy.yaml
  4. If the manifest looks right, dispatch again with dry_run: false. wingetcreate opens the PR to microsoft/winget-pkgs. Microsoft maintainers review (typically 24-48h for new packages).

  5. Once the PR is merged upstream, delete this workflow file. From that point forward publish-packages.yml::update-winget handles every subsequent release.

Test plan

  • actionlint clean (pre-existing shellcheck info noise only)
  • Python YAML parse clean
  • Maintainer dispatches with dry_run: true → artifact uploaded → manifest reviewed
  • Maintainer dispatches with dry_run: false → PR opens at microsoft/winget-pkgs

🤖 Generated with Claude Code

…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>
@Cliftonz Cliftonz merged commit b0721e6 into main May 28, 2026
5 checks passed
@Cliftonz Cliftonz deleted the chore/winget-first-submission branch May 28, 2026 00:02
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.

1 participant