Repository navigation
packaging: WinGet manifests at schema 1.28.0 - #211
Conversation
winget-pkgs now marks manifests at 1.12.0 as deprecated and asks for 1.28.0. The 1.28.0 installer schema adds one optional field (DesiredStateConfiguration) and the version and defaultLocale schemas are unchanged, so every field the templates write keeps its meaning. The comment says when the accepted number moved and how to ask again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Update accepted WinGet schema .github/scripts/build_packages.py |
The comments and WINGET_SCHEMA constant now specify schema version 1.28.0. |
Estimated code review effort: 2 (Simple) | ~5 minutes
Change: Bug fix
Suggested labels: bug, packaging
Merge Risk: 
Minimal · up to 4e0c7
-
No actionable merge-blocking risk remains for this schema-version update.
Pre-merge checks: 
13 · 
1
-
Failed checks: 1 warning Passed checks: 13 passed-
Full details: Title check
-
Explanation
The title "packaging: WinGet manifests at schema 1.28.0" names the one change in the changeset: the WinGet manifest schema constant in .github/scripts/build_packages.py moves from 1.12.0 to 1.28.0. It is specific and matches the PR objective. It is short, not vague, and within the length limit. It does not say why the change was made (winget-pkgs now flags 1.12.0 as deprecated), so it is less plain-language than the example titles in the requirements, but it still meets the requirement.
Full details: No Secrets Or Debug Leftovers
-
Explanation
The PR changes only
.github/scripts/build_packages.py. The added lines updateWINGET_SCHEMAto1.28.0and expand a documentation comment. The diff adds no private agent files,.envfiles, credentials, tokens, private URLs, local absolute paths, personal data, or debug output.
Full details: No Hardcoded Ui Styling
-
Explanation
The pull request changes only
.github/scripts/build_packages.py. The diff updates the WinGet schema constant and its comment. It does not add or change XAML, Slint, Fyne, Tkinter, WPF code-behind, or other GUI code. The custom check is therefore not applicable.
Full details: No Obvious Performance Problems
-
Explanation
The pull request changes only the WinGet schema constant and related comments in
.github/scripts/build_packages.py. It adds no UI work, collection processing, queries, external calls, polling, or heavy computation. No clear performance problem is introduced.
Full details: Desktop Robustness
-
Explanation
PASS. The pull request changes only the WinGet schema constant and its explanatory comment in
.github/scripts/build_packages.py. It does not add or change asset loading, file persistence, culture-sensitive parsing, long-running work, destructive actions, background work, admin-right requests, or network calls.
Full details: Safe File Parsing
-
Explanation
PASS: The PR changes only the
WINGET_SCHEMAconstant and its comments. The new value is inserted into existing YAML template text by the unchanged renderer; the PR adds no file-reading API, parser, deserializer, archive handler, or path operation. No unsafe file-parsing behavior is introduced.
Full details: System Changes Are Reversible
-
Explanation
PASS: The PR changes only
WINGET_SCHEMAin.github/scripts/build_packages.py, from1.12.0to1.28.0. This changes generated WinGet manifest metadata. It does not add or change network filters, proxy, firewall, system time, process hooking, Windows services, registry, drivers, or other system-state changes. The custom reversibility requirements do not apply.
Full details: Clear User-Facing Text
-
Explanation
The PR changes only an internal Python comment and the WinGet
WINGET_SCHEMAvalue. The value populates manifest metadata and schema URLs, not user-facing controls, messages, labels, or confirmations. No custom-check failure condition is introduced.
Full details: No Resource Leaks
-
Explanation
PASS. The pull request changes only the
WINGET_SCHEMAvalue and its comments in.github/scripts/build_packages.py. It adds no event handlers, timers, files, streams, processes, tasks, queues, caches, or image resources. No resource leak condition is introduced.
Full details: Scope, Duplication And Docs
-
Explanation
The PR changes only the documented
WINGET_SCHEMAconstant and its explanatory comment in.github/scripts/build_packages.py. The renderer already owns this value, and the templates consume the existing placeholder; no duplicate helper, CLI, configuration, build step, requirement, API, or package installation behavior changes. The PR description states the schema update and compatibility scope.packaging/README.mdstill accurately documents the unchanged rendering and submission steps, so no documentation or changelog update is required by this check.
-
Full details: Tests For Changed Behavior
-
Explanation
The PR changes package-renderer behavior:
.github/scripts/build_packages.pynow emits WinGetManifestVersion: 1.28.0instead of1.12.0at lines 49-57 and 315. The PR changes only this script; no test file changed. Existing packaging guards render and parse manifests, butinternal/guard/packaging_test.gocontains noManifestVersion,WINGET_SCHEMA, or schema-value assertion. The changed WinGet output therefore has no test coverage.Resolution
Add or update a packaging guard test that renders the fixture packages, reads all six WinGet manifests, and asserts that each
ManifestVersionis exactly1.28.0(and, if required, that each schema URL uses1.28.0). Keep the assertion tied to the renderer output.
-
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
What
The WinGet manifests the package renderer writes now declare schema 1.28.0 instead of 1.12.0 (
WINGET_SCHEMAin.github/scripts/build_packages.py).Why
winget-pkgsnow labels submissions at 1.12.0Manifest-Version-Deprecatedand asks for 1.28.0. Measured on 2026-11-02, 9 of the 20 most recently merged installer manifests there carry 1.28.0.What else changes
Nothing a template writes:
versionanddefaultLocaleschemas are byte for byte the same apart from the number.installerschema gains one optional field,DesiredStateConfiguration, which the templates do not use (schemas/JSON/manifests/v1.12.0andv1.28.0inmicrosoft/winget-cli, diffed).Checked
ManifestVersion: 1.28.0, andwinget validate(1.29.380) succeeds for both packages.🤖 Generated with Claude Code
Summary by CodeRabbit