Skip to content

Winget distribution scaffold: emit seed manifests / winget-init from rivet.rktd #121

Description

@turinglambdaai

Discovered while wiring 5 products to winget (first submissions open as microsoft/winget-pkgs #444829–#444833; two of them — podlens, payback — are rivet apps whose MSIs come from raco rivet release).

Every product repo now carries a hand-copied pair:

  • .github/workflows/winget.yml — winget-releaser on release (automatic manifest-update PR) + a one-time bootstrap job (pure git+gh: fork microsoft/winget-pkgs, push a branch, open the first-submission PR — komac's new/submit require a TTY, so they cannot run in CI)
  • packaging/winget/<Publisher>.<App>/<version>/ — seed manifests (schema 1.6.0), metadata extracted from the released installer with komac analyze --hash (InstallerType, ProductCode, silent switches, SHA256)

Each future rivet app (taskly rivet line, fulcrum, the brainfuel/movebit/syncpilot/pdfgist rewrites) re-copies this by hand.

Ask

Either:

  • raco rivet winget-init — scaffold the workflow + seed manifests from rivet.rktd metadata (identifier, display-name, publisher, description, per-platform asset patterns), or
  • raco rivet release emits winget seed manifests alongside the MSI/DMG/tarball (publisher, URLs, SHA256, ProductCode are all known at that point).

Dependencies / notes

  • Needs the configurable publisher from MSI Manufacturer is the reverse-DNS app identifier — should be a human-readable publisher #112 to render AppsAndFeaturesEntries faithfully (today the MSI Manufacturer is the reverse-DNS identifier).
  • installers-regex must match only the installer, never portable archives (a portable winget entry races the in-app updater).
  • winget-releaser only updates existing packages; the first submission is the bootstrap PR — hence the committed seed manifests.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions