Winget `list --upgrade-available --include-pinned` should show the pinned clearly
Relevant area(s)
WinGet CLI
Description of the new feature / enhancement
As a title says, there's no difference when we call winget list --upgrade-available and winget list --upgrade-available --include-pinned that show which one of the list is pinned.
There's a information on the bottom of the list saying that that has X packages that cannot be upgradeable, because they are pinned and asking to run the command with the '--include-pinned'.
> winget list --upgrade-available
Name Id Version Available Source
---------------------------------------------------------------------------------------------------------------------------------------
NVM for Windows 1.1.12 CoreyButler.NVMforWindows 1.1.12 1.2.2 winget
Go Programming Language amd64 go1.24.1 GoLang.Go 1.24.1 1.25.1 winget
Visual Studio Build Tools 2019 Microsoft.VisualStudio.2019.BuildTools 16.11.47 16.11.50 winget
And the list with pinned packages:
> winget list --upgrade-available --include-pinned
Name Id Version Available Source
---------------------------------------------------------------------------------------------------------------------------------------
NVM for Windows 1.1.12 CoreyButler.NVMforWindows 1.1.12 1.2.2 winget
OpenVPN 2.6.13-I001 amd64 OpenVPNTechnologies.OpenVPN 2.6.1301 2.6.1501 winget
Go Programming Language amd64 go1.24.1 GoLang.Go 1.24.1 1.25.1 winget
Visual Studio Build Tools 2019 Microsoft.VisualStudio.2019.BuildTools 16.11.47 16.11.50 winget
Proposed technical implementation details
Maybe add a new column when the '--include-pinned' was passed? Or add a * before the name, adding on the end of the list that the packages with * are pinned?
Like:
> winget list --upgrade-available --include-pinned
Name Id Version Available Source
-------------------------------------------------------------------------------------------------------------------------------------------------
NVM for Windows 1.1.12 CoreyButler.NVMforWindows 1.1.12 1.2.2 winget
*OpenVPN 2.6.13-I001 amd64 OpenVPNTechnologies.OpenVPN 2.6.1301 2.6.1501 winget
Go Programming Language amd64 go1.24.1 GoLang.Go 1.24.1 1.25.1 winget
Visual Studio Build Tools 2019 Microsoft.VisualStudio.2019.BuildTools 16.11.47 16.11.50 winget
The 1 package(s) with * is(are) pins that prevent upgrade. Use the 'winget pin' command to view and edit pins.
or
> winget list --upgrade-available --include-pinned
Name Id Version Available Source Pinned?
-----------------------------------------------------------------------------------------------------------------------------------------------------------
NVM for Windows 1.1.12 CoreyButler.NVMforWindows 1.1.12 1.2.2 winget No
OpenVPN 2.6.13-I001 amd64 OpenVPNTechnologies.OpenVPN 2.6.1301 2.6.1501 winget Yes
Go Programming Language amd64 go1.24.1 GoLang.Go 1.24.1 1.25.1 winget No
Visual Studio Build Tools 2019 Microsoft.VisualStudio.2019.BuildTools 16.11.47 16.11.50 winget No
Info
λ winget --info
Windows Package Manager (Preview) v1.12.210-preview
Copyright (c) Microsoft Corporation. All rights reserved.
Windows: Windows.Desktop v10.0.26100.6584
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.27.210.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 Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride Disabled
LocalArchiveMalwareScanOverride Disabled
ProxyCommandLineOptions Disabled
DefaultProxy Disabled
λ winget --version
v1.12.210-preview
Probably better to put the asterix (*) after the version to avoid sorting issues as winget still doesn't include sort fixes..