From 2823588cca674b9f5592fd5b196b793c1fd0b47f Mon Sep 17 00:00:00 2001 From: TheAbider <51920546+TheAbider@users.noreply.github.com> Date: Fri, 17 Jul 2026 01:27:40 -0700 Subject: [PATCH] dist/winget: record the first winget-pkgs submission (1.122.0) Manifests updated to the versions actually submitted in microsoft/winget-pkgs PR 403660: v1.122.0 URL/SHA-256/date, and the Platform value fixed to Windows.Desktop only (the 1.6 schema enum has no Windows.Server; the old draft failed winget validate). README now documents the submission, the schema lesson, and the retention-vs- winget-URL caveat. Docs/record only - no code changes, no release. --- .../TheAbider.RackStack.installer.yaml | 9 ++- .../TheAbider.RackStack.locale.en-US.yaml | 4 +- .../TheAbider.RackStack.yaml | 2 +- dist/winget/README.md | 65 +++++++++---------- 4 files changed, 36 insertions(+), 44 deletions(-) rename dist/winget/{1.99.1 => 1.122.0}/TheAbider.RackStack.installer.yaml (67%) rename dist/winget/{1.99.1 => 1.122.0}/TheAbider.RackStack.locale.en-US.yaml (97%) rename dist/winget/{1.99.1 => 1.122.0}/TheAbider.RackStack.yaml (88%) diff --git a/dist/winget/1.99.1/TheAbider.RackStack.installer.yaml b/dist/winget/1.122.0/TheAbider.RackStack.installer.yaml similarity index 67% rename from dist/winget/1.99.1/TheAbider.RackStack.installer.yaml rename to dist/winget/1.122.0/TheAbider.RackStack.installer.yaml index 32c0662..095fd8b 100644 --- a/dist/winget/1.99.1/TheAbider.RackStack.installer.yaml +++ b/dist/winget/1.122.0/TheAbider.RackStack.installer.yaml @@ -1,17 +1,16 @@ # yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json PackageIdentifier: TheAbider.RackStack -PackageVersion: 1.99.1 +PackageVersion: 1.122.0 Platform: - Windows.Desktop - - Windows.Server MinimumOSVersion: 6.1.0.0 InstallerType: portable Commands: - rackstack -ReleaseDate: 2026-05-21 +ReleaseDate: 2026-07-17 Installers: - Architecture: x64 - InstallerUrl: https://github.com/TheAbider/RackStack/releases/download/v1.99.1/RackStack.exe - InstallerSha256: 31C43ED5717F5A9D9D47AE151D4E68B44A0C4EAEB7BCFB6C8A8316DA1274A44C + InstallerUrl: https://github.com/TheAbider/RackStack/releases/download/v1.122.0/RackStack.exe + InstallerSha256: A2145966C1878F26F4825CAAAFEA235F54A5B2CF6146C5A59799FEF5803D4808 ManifestType: installer ManifestVersion: 1.6.0 diff --git a/dist/winget/1.99.1/TheAbider.RackStack.locale.en-US.yaml b/dist/winget/1.122.0/TheAbider.RackStack.locale.en-US.yaml similarity index 97% rename from dist/winget/1.99.1/TheAbider.RackStack.locale.en-US.yaml rename to dist/winget/1.122.0/TheAbider.RackStack.locale.en-US.yaml index dddcb88..1e63527 100644 --- a/dist/winget/1.99.1/TheAbider.RackStack.locale.en-US.yaml +++ b/dist/winget/1.122.0/TheAbider.RackStack.locale.en-US.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json PackageIdentifier: TheAbider.RackStack -PackageVersion: 1.99.1 +PackageVersion: 1.122.0 PackageLocale: en-US Publisher: TheAbider PublisherUrl: https://github.com/TheAbider @@ -28,6 +28,6 @@ Tags: - sysadmin - automation - msp -ReleaseNotesUrl: https://github.com/TheAbider/RackStack/releases/tag/v1.99.1 +ReleaseNotesUrl: https://github.com/TheAbider/RackStack/releases/tag/v1.122.0 ManifestType: defaultLocale ManifestVersion: 1.6.0 diff --git a/dist/winget/1.99.1/TheAbider.RackStack.yaml b/dist/winget/1.122.0/TheAbider.RackStack.yaml similarity index 88% rename from dist/winget/1.99.1/TheAbider.RackStack.yaml rename to dist/winget/1.122.0/TheAbider.RackStack.yaml index 1973608..0170f1a 100644 --- a/dist/winget/1.99.1/TheAbider.RackStack.yaml +++ b/dist/winget/1.122.0/TheAbider.RackStack.yaml @@ -1,6 +1,6 @@ # yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json PackageIdentifier: TheAbider.RackStack -PackageVersion: 1.99.1 +PackageVersion: 1.122.0 DefaultLocale: en-US ManifestType: version ManifestVersion: 1.6.0 diff --git a/dist/winget/README.md b/dist/winget/README.md index 3520279..94818ce 100644 --- a/dist/winget/README.md +++ b/dist/winget/README.md @@ -1,47 +1,40 @@ # winget manifests -The very first submission of `TheAbider.RackStack` to winget has to be -done by hand — `wingetcreate update` (the CI automation in `ci.yml`) only +The very first submission of `TheAbider.RackStack` to winget had to be +done by hand -- `wingetcreate update` (the CI automation in `ci.yml`) only works once the package already exists in `microsoft/winget-pkgs`. -`1.99.1/` contains the three ready-to-submit manifest files. After this -first PR merges, every future release auto-submits via the ci.yml step. +**That first submission has been made** with version 1.122.0: +https://github.com/microsoft/winget-pkgs/pull/403660 -## First submission — copy-paste PR - -1. Fork **https://github.com/microsoft/winget-pkgs**. -2. In your fork, create the path: - `manifests/t/TheAbider/RackStack/1.99.1/` -3. Copy the three files from `1.99.1/` here into that folder: - - `TheAbider.RackStack.yaml` (version) - - `TheAbider.RackStack.installer.yaml` (installer) - - `TheAbider.RackStack.locale.en-US.yaml` (default locale) -4. (Optional, on a Windows box) validate before submitting: - ```powershell - winget validate --manifest manifests\t\TheAbider\RackStack\1.99.1 - ``` -5. Commit and open a PR against `microsoft/winget-pkgs`. Title it - `New package: TheAbider.RackStack version 1.99.1`. -6. The winget-pkgs validation pipeline runs automatically (it installs - the package in a sandbox and checks the manifests). Once it's green - and a moderator approves, `winget install TheAbider.RackStack` goes - live. - -## After the first submission - -Don't hand-maintain these files going forward. The `ci.yml` release job -runs `wingetcreate update TheAbider.RackStack ...` on every release, -which regenerates the manifests from the winget-pkgs entry and opens the -update PR automatically. This `1.99.1/` folder is kept only as a record -of the initial submission. +`1.122.0/` contains the three manifest files exactly as submitted, kept +only as a record of the initial submission. Once the PR merges, every +future release auto-submits via the ci.yml step -- do not hand-maintain +these files. ## Notes on the manifest choices -- **`InstallerType: portable`** — `RackStack.exe` is a standalone +- **`InstallerType: portable`** -- `RackStack.exe` is a standalone ps2exe-compiled executable, not an installer. winget installs it as a portable package: it places the EXE and registers a PATH alias. -- **`Commands: [rackstack]`** — so `rackstack` works from any shell +- **`Commands: [rackstack]`** -- so `rackstack` works from any shell after install. The EXE auto-elevates itself when run. -- **`InstallerSha256`** — must match the v1.99.1 `RackStack.exe`. If you - re-author for a later version, update the version, URL, SHA-256, and - `ReleaseDate` in all three files. +- **`Platform: [Windows.Desktop]`** -- the winget 1.6 schema's Platform + enum only allows `Windows.Desktop` and `Windows.Universal`; there is + no `Windows.Server` value (an earlier draft of these manifests had one + and failed `winget validate`). winget itself runs fine on Windows + Server; the enum simply does not model it. +- **`InstallerSha256`** -- must match the released `RackStack.exe` for + the manifest's version. If a manifest is ever re-authored by hand, + update the version, URL, SHA-256, and `ReleaseDate` in all three + files, then run `winget validate --manifest `. + +## Caveat: release retention vs. winget URLs + +The ci.yml retention step deletes the previous patch release within a +minor when a new one publishes. The winget manifest for a version points +at that version's release asset URL, so when the next patch ships, the +current winget manifest's InstallerUrl goes dead until the auto-submitted +update PR for the new version merges in winget-pkgs (moderation can take +days). During that window `winget install TheAbider.RackStack` fails +hash/download; installs recover as soon as the update PR merges.