microsoft / winget-cli

WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).
https://learn.microsoft.com/windows/package-manager/
MIT License
23.36k stars 1.45k forks source link

`winget update` reports a `Hashicorp.Terraform` update is available, but `winget update Hashicorp.Terraform` says none is found #4761

Open sba923 opened 3 months ago

sba923 commented 3 months ago

Brief description of your issue

Running winget update reports a Hashicorp.Terraform update is available, but winget update Hashicorp.Terraform says none is found:

image

See logs: WinGet-2024-08-28-09-37.zip

Steps to reproduce

On a system with Hashicorp.Terraform version 1.9.0 installed, run winget update Hashicorp.Terraform

Expected behavior

Hashicorp.Terraform version 1.9.5 should get installed

Actual behavior

winget update Hashicorp.Terraform reports No installed package found matching input criteria.

Environment

Windows Package Manager v1.8.1911
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19045.4780
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.23.1911.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

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
denelon commented 2 months ago

What is the output from winget list terraform?

Can you share verbose logs from the failure?

winget upgrade Hashicorp.Terraform --source winget --verbose-logs --logs

sba923 commented 2 months ago

Here's the output:

PS> winget list terraform
Name                Id                  Version Available Source
----------------------------------------------------------------
Hashicorp Terraform Hashicorp.Terraform 1.9.0   1.9.5     winget

Here are the logs: WinGet-2024-08-28-16-5X.zip

denelon commented 2 months ago

It looks like we're seeing multiple correlations. I'm not sure if there are extra registry entries or something else causing the failure.

I think this is the same issue as:

winget search hashicorp.terraform
Name                Id                        Version              Source
--------------------------------------------------------------------------
Hashicorp Terraform Hashicorp.Terraform       1.9.5                winget
Hashicorp Terraform Hashicorp.Terraform.Alpha 1.10.0-alpha20240807 winget
Hashicorp Terraform Hashicorp.Terraform.Beta  1.7.0-beta2          winget
Hashicorp Terraform Hashicorp.Terraform.RC    1.8.0-rc1            winget
2024-08-28 16:54:58.417 [YAML] Detected UTF-8
2024-08-28 16:54:58.489 [REPO] Performing search: Query:[none] Filter:Id='Hashicorp.Terraform'[CaseInsensitive]
2024-08-28 16:54:58.498 [REPO] Finding installed package from available package using system reference search: Query:[none] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact] Include:NormalizedNameAndPublisher='terraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.498 [REPO] Performing search: Query:[none] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact] Include:NormalizedNameAndPublisher='terraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.499 [REPO] Performing search: Query:[none] Include:ProductCode='hashicorp.terraform_microsoft.winget.source_8wekyb3d8bbwe'[Exact] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.499 [REPO]  ... installed package [ARP\Machine\X64\Hashicorp.Terraform_Microsoft.Winget.Source_8wekyb3d8bbwe] had multiple correlations and is being ignored as a match for [Hashicorp.Terraform]
stephengillie commented 2 months ago

From the log:

2024-08-28 16:54:58.489 [REPO] Performing search: Query:[none] Filter:Id='Hashicorp.Terraform'[CaseInsensitive]
2024-08-28 16:54:58.498 [REPO] Finding installed package from available package using system reference search: Query:[none] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact] Include:NormalizedNameAndPublisher='terraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.498 [REPO] Performing search: Query:[none] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact] Include:NormalizedNameAndPublisher='terraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.499 [REPO] Performing search: Query:[none] Include:ProductCode='hashicorp.terraform_microsoft.winget.source_8wekyb3d8bbwe'[Exact] Include:NormalizedNameAndPublisher='hashicorpterraform'+'hashicorp'[Exact]
2024-08-28 16:54:58.499 [REPO]  ... installed package [ARP\Machine\X64\Hashicorp.Terraform_Microsoft.Winget.Source_8wekyb3d8bbwe] had multiple correlations and is being ignored as a match for [Hashicorp.Terraform]
2024-08-28 16:54:58.499 [CLI ] Search result size: 0
2024-08-28 16:54:58.499 [CLI ] No app found matching input criteria

2024-08-28 16:54:58.499 [REPO] ... installed package [ARP\Machine\X64\Hashicorp.Terraform_Microsoft.Winget.Source_8wekyb3d8bbwe] had multiple correlations and is being ignored as a match for [Hashicorp.Terraform]

The package manager downloads a compressed copy of all manifests in the repo, then matches this data against the data in the Registry. It seems that the data in Registry might be matching to more than 1 manifest, and so the package manager ignores it.

The next step would seem to be reducing the correlations to 1 through removing data that correlates to other manifest versions.

JohnMcPMS commented 2 months ago

That matching issue looks like it is with portables specifically, and is probably not due to other packages with ids that are longer, but rather with other packages that are so similar we can't tell them apart. Ultimately we should be able to go from portable directly to an ID and source but we aren't. I suspect that we just need some "enlightening" given to the ARP reading for portable specific info we write in. This should chain through the tracking DB back to the original package without any confusion 🤞

sba923 commented 2 months ago

It looks like we're seeing multiple correlations. I'm not sure if there are extra registry entries or something else causing the failure.

Feel free to ask me to look up registry entries that winget relies upon.

sba923 commented 2 months ago

Seems that the registry only contains one entry:

PS> Get-InstalledApp.ps1 -AppName '*terraform*' -MatchAll

ComputerName    : <REDACTED>
AppID           : Hashicorp.Terraform_Microsoft.Winget.Source_8wekyb3d8bbwe
AppName         : Hashicorp Terraform
Publisher       : HashiCorp
Version         : 1.9.0
UninstallString : winget uninstall --product-code Hashicorp.Terraform_Microsoft.Winget.Source_8wekyb3d8bbwe
Scope           : Machine
InstallDate     : 2024-07-01 00:00:00
Architecture    : 64-bit
sba923 commented 2 months ago

Anything I can do to troubleshoot this further?

sba923 commented 2 months ago

Problem still present for version 1.9.6:

image

Exact same problem on another machine with RawTherapee.RawTherapee:

image