Skip to content

packaging: WinGet manifests at schema 1.28.0 - #211

Merged
donislawdev merged 1 commit into
mainfrom
packaging/winget-schema-1.28-2026-11-02
Nov 2, 2026
Merged

donislawdev merged 1 commit into
mainfrom
packaging/winget-schema-1.28-2026-11-02

Conversation

@donislawdev

@donislawdev donislawdev commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

What

The WinGet manifests the package renderer writes now declare schema 1.28.0 instead of 1.12.0 (WINGET_SCHEMA in .github/scripts/build_packages.py).

Why

winget-pkgs now labels submissions at 1.12.0 Manifest-Version-Deprecated and 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:

  • The version and defaultLocale schemas are byte for byte the same apart from the number.
  • The installer schema gains one optional field, DesiredStateConfiguration, which the templates do not use (schemas/JSON/manifests/v1.12.0 and v1.28.0 in microsoft/winget-cli, diffed).
  • No template or guard carries the schema number. The renderer holds it alone.

Checked

  • Rendered from v0.5.0: all six manifests carry ManifestVersion: 1.28.0, and winget validate (1.29.380) succeeds for both packages.
  • The packaging guards pass (14 of 14, run by name).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the WinGet manifest schema version used during package generation from 1.12.0 to 1.28.0. This change affects packaging metadata only; no other changes to application behavior are included. No new user-facing features or changes to existing capabilities are described in this update.

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>
@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI (base), Organization UI (inherited)
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 46c3822d-c298-498e-b14c-2ad0aeede45b
Commits

Reviewing files that changed from the base of the PR and between 727df37 and 4e0c724.

Files selected for processing: 1
  • .github/scripts/build_packages.py

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Recent review details
Context from checks skipped due to timeout: 21
  • GitHub Check: CodeRabbit
  • GitHub Check: staticcheck
  • GitHub Check: known vulnerabilities
  • GitHub Check: test on macos-latest
  • GitHub Check: what this push touched
  • GitHub Check: reference tools actually installed
  • GitHub Check: semgrep
  • GitHub Check: test on windows-latest
  • GitHub Check: bill of materials
  • GitHub Check: test on ubuntu-latest
  • GitHub Check: import table of the window binary
  • GitHub Check: coverage gate
  • GitHub Check: linters
  • GitHub Check: the installer installs and leaves
  • GitHub Check: the Chocolatey packages install and leave
  • GitHub Check: review new dependencies
  • GitHub Check: which entries
  • GitHub Check: new vulnerabilities (OSV)
  • GitHub Check: Analyze (go)
  • GitHub Check: Analyze (actions)
  • GitHub Check: Analyze (python)
Additional context used
Path-based instructions: 8
Applies to text shown to the user (labels, buttons, tooltips, placeholders, dialogs, errors, status messages, empty states, translations).

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
These are end-user desktop applications.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
Performance is a known weak spot of these projects.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
Applies only to code that builds or styles a GUI.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
SECURITY, HIGH PRIORITY.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
These apps are QA/developer tools.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
Python code.

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
All code in this repository is written by an AI coding agent (Claude Code).

CodeRabbit configuration file

Files:

  • .github/scripts/build_packages.py
Additional comments: 1
.github/scripts/build_packages.py: 1

48-57: LGTM!

Walkthrough

The documented WinGet manifest schema version and the WINGET_SCHEMA constant change from 1.12.0 to 1.28.0.

Changes: WinGet manifest schema

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: Passed 13 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Tests For Changed Behavior Warning The PR changes package-renderer behavior: .github/scripts/build_packages.py now emits WinGet ManifestVersion: 1.28.0 instead of 1.12.0 at lines 49-57 and 315. The PR changes only this script; no… Add or update a packaging guard test that renders the fixture packages, reads all six WinGet manifests, and asserts that each ManifestVersion is exactly 1.28.0 (and, if required, that each schema URL uses 1.28.0). Keep the assertion t…
Passed Passed checks: 13 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed 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…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
No Secrets Or Debug Leftovers Passed The PR changes only .github/scripts/build_packages.py. The added lines update WINGET_SCHEMA to 1.28.0 and expand a documentation comment. The diff adds no private agent files, .env files, cred…
No Hardcoded Ui Styling Passed 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, o…
No Obvious Performance Problems Passed 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 he…
Desktop Robustness Passed 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-se…
Safe File Parsing Passed PASS: The PR changes only the WINGET_SCHEMA constant 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, …
System Changes Are Reversible Passed PASS: The PR changes only WINGET_SCHEMA in .github/scripts/build_packages.py, from 1.12.0 to 1.28.0. This changes generated WinGet manifest metadata. It does not add or change network filters,…
Clear User-Facing Text Passed The PR changes only an internal Python comment and the WinGet WINGET_SCHEMA value. The value populates manifest metadata and schema URLs, not user-facing controls, messages, labels, or confirmations…
No Resource Leaks Passed PASS. The pull request changes only the WINGET_SCHEMA value and its comments in .github/scripts/build_packages.py. It adds no event handlers, timers, files, streams, processes, tasks, queues, cach…
Scope, Duplication And Docs Passed The PR changes only the documented WINGET_SCHEMA constant and its explanatory comment in .github/scripts/build_packages.py. The renderer already owns this value, and the templates consume the exis…
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 update WINGET_SCHEMA to 1.28.0 and expand a documentation comment. The diff adds no private agent files, .env files, 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_SCHEMA constant 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_SCHEMA in .github/scripts/build_packages.py, from 1.12.0 to 1.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_SCHEMA value. 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_SCHEMA value 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_SCHEMA constant 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.md still 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.py now emits WinGet ManifestVersion: 1.28.0 instead of 1.12.0 at lines 49-57 and 315. The PR changes only this script; no test file changed. Existing packaging guards render and parse manifests, but internal/guard/packaging_test.go contains no ManifestVersion, 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 ManifestVersion is exactly 1.28.0 (and, if required, that each schema URL uses 1.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.

Share

@coderabbitai coderabbitai Bot added bug Something isn't working packaging labels Nov 2, 2026
@donislawdev
donislawdev merged commit 4510c97 into main Nov 2, 2026
26 checks passed
@donislawdev
donislawdev deleted the packaging/winget-schema-1.28-2026-11-02 branch November 2, 2026 17:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant