Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

--include-unknown not functioning as expected #1939

Closed
Trenly opened this issue Feb 15, 2022 · 11 comments · Fixed by #1972
Closed

--include-unknown not functioning as expected #1939

Trenly opened this issue Feb 15, 2022 · 11 comments · Fixed by #1972
Labels
Issue-Bug It either shouldn't be doing this or needs an investigation.
Milestone

Comments

@Trenly
Copy link
Contributor

Trenly commented Feb 15, 2022

Brief description of your issue

When running winget upgrade it tells me a package has unknown version. When using --include-unknown the package with unknown version is not listed and the upgrade list does not change

Steps to reproduce

Have a package with unknown version, run winget upgrade --include-unknown

Expected behavior

A list of all upgradeable packages to be shown

Actual behavior

The list of packages does not change between winget upgrade and winget upgrade --unknown
Logs attached for reference.

PS C:\WINDOWS\system32> winget upgrade
Name    Id              Version Available
-----------------------------------------
Element Element.Element 1.10.1  1.10.3
1 upgrades available.
1 package has a version number that cannot be determined. Use "--include-unknown" to see all results.
PS C:\WINDOWS\system32> winget upgrade --include-unknown
Name    Id              Version Available
-----------------------------------------
Element Element.Element 1.10.1  1.10.3
1 upgrades available.

WinGet-2022-02-14-19-58-27.679_upgrade.log
WinGet-2022-02-14-19-58-35.901_IncludeUnknown.log

Environment

PS C:\WINDOWS\system32> winget --info
Windows Package Manager (Preview) v1.3.431-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19044.1526
Package: Microsoft.DesktopAppInstaller v1.18.431.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

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
PS C:\WINDOWS\system32>
@ghost ghost added the Needs-Triage Issue need to be triaged label Feb 15, 2022
@jedieaston
Copy link
Contributor

jedieaston commented Feb 15, 2022

Per discussion in the gitter channel, it seems like winget is not checking to see if there is a version of the app in the repository before putting it into the count of unknown packages. So if there isn't something in the repo to "update" to, then it shouldn't add it to the count.

Shouldn't be that hard to fix, I'll try to write one if nobody else does.

WinDirStat is a package where this is true, as winget can't find a eligible package during upgrade due to another upgrade bug.

@Trenly
Copy link
Contributor Author

Trenly commented Feb 15, 2022

Another case that this happens is Nirsoft.BlueScreenView

Edit: Seems like there is also a second portion to this bug that even if --include-unknown is used, it doesn't check to see if there is a version available in the repo. It just always skips checking for upgrades entirely?

@jedieaston
Copy link
Contributor

jedieaston commented Feb 15, 2022

It just always skips checking for upgrades entirely?

Not always, GOG shows up as available for upgrade with --include-unknown. I think there's some criteria these apps are missing, but I'm not sure what it is.

@OfficialEsco
Copy link

❯ winget upgrade
Name       Id                      Version Available
----------------------------------------------------
Oh My Posh JanDeDobbeleer.OhMyPosh 7.17.0  7.18.0
1 upgrades available.
12 packages have version numbers that cannot be determined. Use "--include-unknown" to see all results.
❯ winget list
Name                                     Id                                                  Version
----------------------------------------------------------------------------------------------------------------
Battle.net                               Battle.net                                          Unknown
Call of Duty Black Ops Cold War          Call of Duty Black Ops Cold War                     Unknown
Call of Duty Modern Warfare              Call of Duty Modern Warfare                         Unknown
DuckieTV                                 DuckieTV                                            Unknown
ReaPlugs/x64                             ReaPlugs                                            Unknown
New World                                Steam App 1063730                                   Unknown
Forza Horizon 5                          Steam App 1551360                                   Unknown
Sid Meier's Civilization VI              Steam App 289070                                    Unknown
Factorio                                 Steam App 427520                                    Unknown
PUBG: BATTLEGROUNDS                      Steam App 578080                                    Unknown
Trackmania                               Uplay Install 5595                                  Unknown
VBCABLE, The Virtual Audio Cable         VB:VBCABLE {87459874-1236-4469}                     Unknown

I see you guys talking about BlueScreenView and WinDirStat, the reason these are getting picked up is because it doesn't match the metadata because the Publisher is blank and its missing the ProductCode 🙃

@denelon denelon added Issue-Bug It either shouldn't be doing this or needs an investigation. and removed Needs-Triage Issue need to be triaged labels Feb 15, 2022
@scottbeamer
Copy link

scottbeamer commented Feb 20, 2022

I'm having a similar issue.

`> winget upgrade --all

No installed package found matching input criteria.

2 packages have version numbers that cannot be determined. Use "--include-unknown" to see all results.

No applicable update found.

2 packages have version numbers that cannot be determined. Use "--include-unknown" to see all results.`

`> winget upgrade

No installed package found matching input criteria.
2 packages have version numbers that cannot be determined. Use "--include-unknown" to see all results.`

`> winget upgrade --include-unknown

No installed package found matching input criteria.`

Something is broken here.

@denelon denelon added this to the v1.3-Client milestone Feb 22, 2022
@ghost ghost added the In-PR Issue related to a PR label Feb 24, 2022
@ghost ghost added Resolution-Fix-Committed and removed In-PR Issue related to a PR labels Feb 24, 2022
@shomilsaini
Copy link

Having this issue currently. Is there any fix?
image

Thanks in Advance.

@Masamune3210
Copy link

Run "winget upgrade --include-unknown and show the results. If you don't have any that can be upgraded currently, adding include-unknown isn't going to change anything

@LSeelig
Copy link

LSeelig commented Jan 30, 2023

But is there any way to remove the line and get it to stop checking the package?

@denelon
Copy link
Contributor

denelon commented Jan 30, 2023

There are several edge cases confounding the upgrade logic in WinGet. They range from inconsistent versioning behavior to no version being reported. We also have packages that do a better job of upgrading themselves due to services running or other packages using their libraries.

In order to have the best possible experience with winget upgrade --all we've started excluding some of the packages from the default flow. The additional arguments give additional control back to the user.

In some cases, running winget list will help narrow down whether the installed version reports "Unknown" for the version (meaning no registry entry was written for the version). In other cases, the installer type changed from .exe, MSI, or MSIX to a different one. In those cases, the other installer type isn't technically an upgrade, but a new side-by-side installation.

There are also cases where the scope or architecture doesn't match. These can be compounded by user preferences or requirements in settings.

We're working to improve the messaging displayed to users to help with some of the confusion.

We're also working on package pinning to help prevent unwanted upgrades.

@weeix
Copy link

weeix commented Jan 31, 2023

I agree that the message is quite misleading. It stated "Use --include-unknown to see all results", but when we use --include-unknown, no result is shown at all. An improvement to the message displayed would be great indeed.

@jedieaston
Copy link
Contributor

I wrote that, I agree it is somewhat confusing. Maybe since we have the package index by time we do the "lets filter out all the unknown versions" part, we could just only show the "use --include-unknown" part if any of the unknown version packages actually exist in the repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Bug It either shouldn't be doing this or needs an investigation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants