microsoft / microsoft/winget-cli
More package information in Exported JSON file
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 26.4k
- Forks
- 1.8k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 15
Description
Description of the new feature / enhancement
It would be helpful if the "winget export" command would include a verbose option to include the full package information, rather than just the PackageIdentifier (and version if --include-versions is used).
For example for Windows Terminal the exported JSON includes only PackageIdentifier and optionally the current installed Version:
"PackageIdentifier" : "Microsoft.WindowsTerminal",
"Version" : "1.11.3471.0"
Winget can produce more information from other commands. e.g. "winget list" adds the Name and Source
Windows Terminal Microsoft.WindowsTerminal 1.11.3471.0 winget
Searching winget list for a single package adds the Available version.
winget list --id Microsoft.WindowsTerminal
Name Id Version Available Source
--------------------------------------------------------------------------
Windows Terminal Microsoft.WindowsTerminal 1.11.3471.0 1.12.10393.0 winget
and Winget show has a lot more information:
winget show --id Microsoft.WindowsTerminal
Found Windows Terminal [Microsoft.WindowsTerminal]
Version: 1.12.10393.0
Publisher: Microsoft
Publisher Url: https://www.microsoft.com/
Moniker: terminal
Description: The new Windows Terminal, a tabbed command line experience for Windows.
Homepage: https://docs.microsoft.com/windows/terminal/
License: MIT
License Url: https://github.com/microsoft/terminal/blob/master/LICENSE
Privacy Url: https://privacy.microsoft.com/
Installer:
Type: msix
Download Url: https://github.com/microsoft/terminal/releases/download/v1.12.10393.0/Microsoft.WindowsTerminal_1.12.10393.0_8wekyb3d8bbwe.msixbundle
SHA256: 23daf0b5a5783d07322b9fee3eef98d45b8d11d4d77f9dbd75a0eb13069592f1
Why can't all of that information be included in the exported JSON file?
Proposed technical implementation details
The "winget export" should have a new flag such as --detailed or --verbose that includes all the available information for each package.
For example the Windows Terminal section of the JSON file would look like:
{
"PackageIdentifier": "Microsoft.WindowsTerminal",
"InstalledVersion": "1.11.3471.0",
"AvailableVersion": "1.12.10393.0",
"Publisher": "Microsoft",
"PublisherUrl": "https://www.microsoft.com/",
"Moniker": "terminal",
"Description": "The new Windows Terminal, a tabbed command line experience for Windows.",
"Homepage": "https://docs.microsoft.com/windows/terminal/",
"License": "MIT",
"LicenseUrl": "https://github.com/microsoft/terminal/blob/master/LICENSE",
"PrivacyUrl": "https://privacy.microsoft.com/",
"InstallerType": "msix",
"InstallerDownloadUrl": "https://github.com/microsoft/terminal/releases/download/v1.12.10393.0/Microsoft.WindowsTerminal_1.12.10393.0_8wekyb3d8bbwe.msixbundle",
"InstallerSHA256": "23daf0b5a5783d07322b9fee3eef98d45b8d11d4d77f9dbd75a0eb13069592f1"
},
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 with the winget export command and compare its current JSON output with the metadata exposed by winget list and winget show. Determine the scope of a detailed or verbose flag and verify that exported package records include the requested installed and available versions and metadata. The payload names no source files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100