Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -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
65 changes: 29 additions & 36 deletions dist/winget/README.md
Original file line number Diff line number Diff line change
@@ -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 <folder>`.

## 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.