The CLI's WinGet manifests are authored and kept in this repo under:
winget/MDZip.Cli/<version>/
MDZip.Cli.yaml # version manifest
MDZip.Cli.installer.yaml # zip installer + nested portable mdz.exe
MDZip.Cli.locale.en-US.yaml # defaultLocale
- PackageIdentifier:
MDZip.CliMoniker:mdz - Windows assets are self-contained zips (
mdz-vX.Y.Z-win-x64.zip/-win-arm64.zip) each containing a single portablemdz.exe, aliased tomdzon install. - We publish interactively — no PAT or repo secret required. The only
interactive step is a GitHub sign-in during
wingetcreate submit.
-
Copy the previous version folder:
cp -r winget/MDZip.Cli/1.3.0 winget/MDZip.Cli/<new>
-
In the new folder, update:
- all three files:
PackageVersion: <new> - installer: both
InstallerUrls (→v<new>) and bothInstallerSha256s - locale:
ReleaseNotesUrl
Compute the hashes (winget wants uppercase hex):
(Get-FileHash <asset>.zip -Algorithm SHA256).Hash # or: curl -sL <url> | sha256sum
- all three files:
-
Validate locally:
winget validate --manifest winget/MDZip.Cli/<new>
-
Submit (browser sign-in, no token):
wingetcreate submit --prtitle "New version: MDZip.Cli <new>" winget/MDZip.Cli/<new>
Run after the GitHub release for that tag exists (the URLs/hashes reference its
assets). The same wingetcreate submit <folder> is used for the first publish
and every update. ManifestVersion is 1.12.0 (the current client schema);
winget validate will tell you if a newer client requires a bump.
See winget-todo.md for the short step list.
These exist but are not needed for the interactive, in-repo flow above:
scripts/update-winget.ps1/wingetcreate newcan generate manifests interactively instead of copy-editing the committed set.- The
wingetjob in.github/workflows/release.ymlcan auto-submit on eachv*tag if aWINGET_TOKENsecret (a GitHub PAT withpublic_repo) is configured. Without the secret it safely skips, which is the default here.