Doc manifest schema process#6280
Conversation
@check-spelling-bot Report🔴 Please reviewSee the 📂 files view, the 📜action log, or 📝 job summary for details.Unrecognized words (6)fnsm These words are not needed and should be removedAAD ABCD abi ACL'd AMap Amd appdata ARMNT asan Baz bitmask bluetooth boundparms brk Buf certs cgi CMSG codepage commandline constexpr Cov cswinrt CTL Dbg Dcom decompressor dedupe DEFT devhome Dns dsc ERANGE errcode errmsg errstr filemode Finalizers FULLWIDTH fuzzer GES github Hackathon HINSTANCE hlocal hmac Hyperlink ICONDIR icu idx img inet Intelli iwr JDK LCID lhs LONGLONG LPBYTE LPCWSTR LPDWORD LPSTR LPVOID LPWSTR MAJORVERSION MAXLENGTH maxvalue MDs MINORVERSION mta nlohmann NONAME NOUPDATE NTFS ofile oid oop OPTOUT outfile OUTOFMEMORY PARAMETERMAP pdb PDWORD pid PKCS pkix placeholders positionals posix pscustomobject pseudocode PSHOST publickey qword redirector regexes remoting reparse REQS rhs rowid RTTI runspace runtimes SARL savepoint Scm sid sqlite subdir subkey trimstart ttl typedef uninitialize uninstallation UNMARSHALING userprofile versioned Webserver website wildcards winreg WMI workaround Wpp wslTo accept these unrecognized words as correct and remove the previously acknowledged and now absent words, you could run the following commands... in a clone of the git@github.com:JohnMcPMS/winget-cli.git repository curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.26/apply.pl' |
perl - 'https://github.com/microsoft/winget-cli/actions/runs/27371968482/attempts/1' &&
git commit -m 'Update check-spelling metadata'Pattern suggestions ✂️ (2)You could add these patterns to Alternatively, if a pattern suggestion doesn't make sense for this project, add a Warnings and Notices
|
| Count | |
|---|---|
| ℹ️ candidate-pattern | 2 |
| 2 |
See
If the flagged items are 🤯 false positives
If items relate to a ...
-
binary file (or some other file you wouldn't want to check at all).
Please add a file path to the
excludes.txtfile matching the containing file.File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
^refers to the file's path from the root of the repository, so^README\.md$would exclude README.md (on whichever branch you're using). -
well-formed pattern.
If you can write a pattern that would match it,
try adding it to thepatterns.txtfile.Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.
Note that patterns can't match multiline strings.
florelis
left a comment
There was a problem hiding this comment.
I didn't read the script that closely, but it looks enough like it's good
|
|
||
| ## Helper script | ||
|
|
||
| `Branch-LatestManifestSchema.ps1` (in this directory) automates most of both workflows below. |
There was a problem hiding this comment.
Nit: Branch is not an approved PS verb. If not using an approved verb
| the in-flight schema needs to be locked in. | ||
|
|
||
| With -BumpVersion: | ||
| Reads the target version from src/binver/binver/version.h (MAJOR.MINOR.0) and compares |
There was a problem hiding this comment.
Could we have this script also update version.h?
| `ManifestSchemaValidation.cpp`, converting the old top block to an `else if`. | ||
| 10. Adds a new version constant to `ManifestVersion.cs`. | ||
|
|
||
| **Manual steps always required (not automated):** |
| param([string]$Content, [string]$Path) | ||
| [System.IO.File]::WriteAllText($Path, $Content, (New-Object System.Text.UTF8Encoding $false)) |
| $vcxitemsFile = Join-Path $manifestSchemaDir 'ManifestSchema.vcxitems' | ||
| $filtersFile = Join-Path $manifestSchemaDir 'ManifestSchema.vcxitems.filters' | ||
| $manifestCommonH = Join-Path $RepoRoot 'src\AppInstallerCommonCore\Public\winget\ManifestCommon.h' | ||
| $schemaValidationCpp = Join-Path $RepoRoot 'src\AppInstallerCommonCore\Manifest\ManifestSchemaValidation.cpp' |
There was a problem hiding this comment.
Pull request overview
This PR documents the WinGet manifest JSON schema versioning/branching process and introduces a PowerShell helper script to automate freezing latest/ schemas into versioned snapshots and (optionally) bumping latest/ to match the binary version.
Changes:
- Added
schemas/JSON/manifests/README.mddescribing schema directory layout and the two versioning workflows. - Added
Branch-LatestManifestSchema.ps1to automate schema branching and source-file updates during version bumps. - Added a path-scoped Copilot instructions file for manifest schema versioning guidance.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| schemas/JSON/manifests/README.md | Documents schema folder structure, versioning workflows, and required manual steps. |
| schemas/JSON/manifests/Branch-LatestManifestSchema.ps1 | Adds automation for branching latest/ into vX.Y.0/ and optionally bumping schema/version references across source files. |
| .github/instructions/manifest-schema-versioning.instructions.md | Adds path-scoped contributor/agent guidance for the manifest schema versioning process. |
| $settings = [System.Xml.XmlWriterSettings]@{ | ||
| Indent = $true | ||
| IndentChars = ' ' | ||
| Encoding = New-Object System.Text.UTF8Encoding $false | ||
| } |
📖 Description
Includes some human and 🤖 notes for updating the manifest schema files, as well as a script that does most/all of it for you.
🔍 Validation
Tested the script output locally.
Microsoft Reviewers: Open in CodeFlow