microsoft / microsoft/winget-cli
Strangely phrased error when having set 0 as an InstallerSuccessCodes value.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 26.4k
- Forks
- 1.8k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 15
Description
Relevant area(s)
WinGet CLI
Relevant command(s)
winget validate
Brief description of your issue
I noticed while working on https://github.com/microsoft/winget-pkgs/pull/328444 that the pipeline artifacts for that one specific software treated an exit code 0 for an executable as being a fail (if I'm not remembering monumentally wrong).
So I added:
InstallerSuccessCodes:
- 0
And it's safe to say that I was not prepared for the, sorry to say, word salad error message that then resulted when I ran winget validate --manifest (...):
"Target should not validate against schema specified in 'not' constraint."
Steps to reproduce
- Have a Winget manifest locally saved on the PC.
- Add the following section to that manifest's Installer.yaml:
InstallerSuccessCodes:
- 0
- Run
winget validate --manifest (...)on that manifest. - Receive whatever error this is:
Manifest validation failed.
Manifest Error: Schema Error. [Schema validation failed.
Error context: <root>[InstallerSuccessCodes][0] Description: Target should not validate against schema specified in 'not' constraint.
Error context: <root>[InstallerSuccessCodes] Description: Failed to validate item #0 in array.
Error context: <root> Description: Failed to validate against schema associated with property name 'InstallerSuccessCodes'.
] File: (...).installer.yaml
Expected behavior
Either:
A) winget validate accepts 0 as an InstallerSuccessCodes.
or
B) The error message is understandably written.
Actual behavior
The error message requires at least a doctorate degree in several fields in order to intuitively understand what it means.
Environment
Windows Package Manager v1.12.440
Copyright (c) Microsoft Corporation. All rights reserved.
Windows: Windows.Desktop v10.0.26200.7623
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.27.440.0
Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User) %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User) %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root C:\Program Files\WinGet\Packages
Portable Package Root (x86) C:\Program Files (x86)\WinGet\Packages
Installer Downloads %USERPROFILE%\Downloads
Configuration Modules %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules
Links
---------------------------------------------------------------------------
Privacy Statement https://aka.ms/winget-privacy
License Agreement https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale
Admin Setting State
--------------------------------------------------
LocalManifestFiles Enabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride Enabled
LocalArchiveMalwareScanOverride Enabled
ProxyCommandLineOptions Disabled
DefaultProxy Disabled
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with winget validate --manifest (...) and the shown InstallerSuccessCodes value of 0. Trace the manifest schema validation for InstallerSuccessCodes and determine whether zero should be accepted or produce a clearer message. Done means validation behavior or the reported error is improved and the reproduction is covered by the relevant validation checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100