Repository navigation
feat: shards for mirrored installers - #2570
Conversation
Shards for packages whose installers are self-hosted, so Update Packages notices new vendor releases. Where no usable vendor binary exists, new versions resolve to the self-hosted mirror path, which fails until the binary is uploaded there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
The Input fonts report version 0.000 and the site lists no version, so the shard cannot detect updates; restore its ignore. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
|
The remaining failures are mirror 404s for versions newer than ours. The vendors have released them, but nobody has uploaded their binaries yet: Kusto 1.0.3.1568, AsciinemaTrim 0.1.5, ConfigMgr 2609 and AppVerifier SDK 28000.2957. So Test stays red until those binaries are uploaded or the shards change. This is expected, as the PR description says. Generated by Claude Code |
PR 2569 adds a GameJolt shard that mirrors the signed vendor URL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
These vendor URLs work for winget but not for komac: Postshot is extension-less, radiosky.com rejects komac's download agent, and nuget.org serves .nupkg. mirror() gains an optional file name for the first and last. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
komac analyses the flat-container .nupkg, so there is nothing to mirror. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
|
Test on 0564225: SkyPipe and BuildTools now produce manifests. The remaining failures are expected:
Generated by Claude Code |
mirrorFile() uploads a file the shard builds itself. AsciinemaTrim takes the exe from the release tar.gz, Kusto Explorer and the eDiscovery Export Tool zip their ClickOnce application files, and AppVerifier extracts its MSIs from the Windows SDK ISO with the runner's 7-Zip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
|
Test on 14dc819 is red, but every failure is expected:
Generated by Claude Code |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Track the 2.14 branch from the Ryzen Master page. mirrorFile (copied unchanged from #2570) uploads amd_ryzen_master_ui_<version>.exe, which scripts/shards-lib/AMD.ts extracts from the vendor setup: ISSetupStream -> wrapper MSI -> 7z. Drop the 2.14.3.5040 manifest so Update Packages creates it and uploads the file; 2.13.1.3097 is frozen and stays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaNS8rVkToDNbhNFgx1
The evaluation media is a 7-Zip SFX whose SMSSETUP/TOOLS folder holds every tool these packages carry. State is the media URL, so the 1.25 GB download only happens when Microsoft publishes new media, and all ConfigMgr shards in a run share one download. Replaces the Learn release table and the temporary listing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
|
[Edit: #2581 gave Test the R2 credentials. After merging main, Test on 83741b7 uploads the built files and passes 28/28.] Generated by Claude Code |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J
Requested by Tom · project thread
Checklist for Pull Requests
Manifests
winget validate: no manifest changes in this PR.winget install: no manifest changes in this PR.What
This PR adds shards for the
repository/shard-coverageignores that say "selfhosted", and removes those ignores. Each shard reads the version from the vendor. When winget can't use the vendor file, the shard builds the file or copies it to R2 (https://winget.tplant.com.au/download/<letter>/<id segments>/<version>/<file>), and the manifest points to the R2 copy.mirrorFile(id, version, fileName, build, url?)inscripts/shards-lib/mirror.tsuploads a file that the shard builds.mirror()wraps it. When there are no R2 credentials (fork PRs), both return the vendor URL, or fail if there is no vendor URL.Family helpers are named after their ID prefix:
Microsoft.ConfigMgr.ts,Microsoft.WindowsSDK.ts, and the renamedDell.tsandQualcomm.ts. General helpers keep lowercase names:mirror.tsandclickonce.ts. Thenew-package-prskill documents this naming.All checks are green. Test passed for all 28 shards on 9687f36.
Extracted (
mirrorFile())ConfigMgr.Update.Manifest.cab, the cab that DMPDownloader reads). The shard uses the latest full release (Type0), which is 2609. State is the release name. Version is CMTraceFILEVERSION(5.0.9152.1003). CMPivot (5.2609.1240.1000) and SupportCenter (5.2609.1050.1000) use the MSIDisplayVersionand are keyed by the release nameSMSSETUP/TOOLSof the release payload cab (ContentUrl, 873 MB), extracted with7z. A tool with more than one file is zipped flatasciinema-trim.exefrom the releasewindows_amd64.tar.gz(Bun.Archive).applicationclickonce.ts)DisplayVersionInstallers/folder (7z)The ConfigMgr version-state seeds are the release names of the current manifests: 2509, or 2403 for the tools at 9128. Each seed differs from 2609, so every tool updates on the first run.
Anthelion's
productsource reads the PE ProductVersion, and an MSI has none. This is why the MSI shards usedisplay.Copied (
mirror())Content-Dispositionof/builds/postshot/windows/latestPostshot-<v>.exeRSPII_Install_<v>.exelink on the SkyPipe page/download/s/SuperOrca/<version>/pathMicrosoft.WindowsSDK.BuildTools needs no mirror, because komac analyses the nuget
.nupkgURL directly.Not covered (ignores kept)
0.000, and the site does not list a version.🤖 Generated with Claude Code
https://claude.ai/code/session_01Q1YhaMfsphzkxPYnZki22J