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

discord upgrade #2006

Closed
jb-aft opened this issue Mar 7, 2022 · 13 comments
Closed

discord upgrade #2006

jb-aft opened this issue Mar 7, 2022 · 13 comments
Labels
Area-External Issue outside of winget-cli source Issue-Bug It either shouldn't be doing this or needs an investigation.
Milestone

Comments

@jb-aft
Copy link

jb-aft commented Mar 7, 2022

Brief description of your issue

When I want to update all software (winget upgrade --all) Winget detects an update from discord. Discord is already updated on my PC. Winget throws an error 4294967295 for the discord update

Steps to reproduce

Disord is already installed at the last version.
Open terminal.
winget upgrade --all
wait and see the error 4294967295

Expected behavior

Winget should detect the software version and update it if necessary

Actual behavior

Winget does not detect the software version

Environment

French version
Microsoft Windows 10 Familly
10.0.19044 N/A build 19044
Bios version American Megatrends Inc. 4306, 22/09/2013
Winget version v1.2.10271
Discord already installed
Stable 117300 (cc0861f)
Host 1.0.9004
Windows 10 64-Bit (10.0.19044)
@ghost ghost added the Needs-Triage Issue need to be triaged label Mar 7, 2022
@Trenly
Copy link
Contributor

Trenly commented Mar 7, 2022

See #1163

@denelon denelon added Issue-Bug It either shouldn't be doing this or needs an investigation. Area-External Issue outside of winget-cli source and removed Needs-Triage Issue need to be triaged labels Mar 7, 2022
@denelon denelon added this to the v1.3-Client milestone Mar 14, 2022
@denelon denelon modified the milestones: v1.3-Client, v1.4-Client May 31, 2022
@denelon
Copy link
Contributor

denelon commented Aug 8, 2022

@Trenly do we need to add requiresExplicit upgrade on this package?

I don't see it in the installer.yaml

@Trenly
Copy link
Contributor

Trenly commented Aug 8, 2022

I think we do, but there are larger issues here. Discord is a Squirrel installer (see #1748 ) if I recall correctly, and even when attempting an explicit upgrade on my end it "errors" out. More specifically, the 'installer' will return a successful response, but the sub-installer throws an error if Discord is running. So, I think this probably requires explicit upgrade and these items:

@denelon denelon modified the milestones: v1.4-Client, v1.5-Client Dec 28, 2022
@Cyber5imon
Copy link

I've opened a ticket with Discord support (#31825648) to hopefully have them fix the bug not updating the DisplayVersion registry value on auto-update. I'll update this issue when I hear back from Discord.

@denelon denelon modified the milestones: v1.5-Client, v.Next-Client Apr 18, 2023
@ourichermath
Copy link

ourichermath commented May 30, 2023

I'm not sure if this is related, but on my Windows 10 Pro x64 system, the actual Discord app shows this version information at the bottom of the Settings page:

Stable 199933 (db1e138)
Host 1.0.9013 (32266)
Windows 10 64-Bit (10.0.19045)

winget upgrade shows this for Discord:

Name Id Version Available Source

Discord Discord.Discord 1.0.9012 1.0.9013 winget

and the winget.run site for Discord shows the latest version to be 1.0.9011:

https://winget.run/pkg/Discord/Discord

So, assuming the "Host" line in the Discord app is my actual version, that says I'm on 1.0.9013, winget upgrade says I'm on 1.0.9012 and 1.0.9013 is available, and the winget.run site says the last available version is 1.0.9011.

Very odd. But, I installed Discord via its actual installer instead of via winget. So, maybe that's causing the difference.

@denelon
Copy link
Contributor

denelon commented May 30, 2023

WinGet doesn't "inspect" the installed package. It looks at the registry entries behind the Apps & Features metadata. If the Discord package upgrades itself and doesn't upgrade the registry value for the installed version, it's likely to continue to have an invalid version.

Unfortunately, this is a common gap with many installers.

@Masamune3210
Copy link

A word of note is the way that discord handles updates is especially weird, even for the realm of auto-updating apps. It unfortunately tends to never update the registry key correctly, meaning that it tends to show up as having a update no matter what you do unless you manually modify the key yourself, which is not recommended.

@denelon
Copy link
Contributor

denelon commented Mar 6, 2024

WinGet 1.7 was updated to support the "Deny" property in the manifest for upgrades.

@denelon denelon closed this as completed Mar 6, 2024
@denelon denelon modified the milestones: v.Next-Client, 1.8 Client Mar 6, 2024
@ourichermath
Copy link

ourichermath commented Mar 8, 2024

WinGet 1.7 was updated to support the "Deny" property in the manifest for upgrades.

Sorry to be an idiot, but what does that mean? Can you point to some kind of documentation that explains how we're supposed to use "Deny" to stop Discord (and other programs) from showing up when we use "winget upgrade"? I can't find anything.

@mdanish-kh
Copy link
Contributor

@ourichermath UpgradeBehavior: deny tells WinGet that an installed application should not be supported for an upgrade. Essentially "denying" all upgrades for a particular application.

Discord performs auto-updates, but doesn't update its version number in Apps&Features/Control Panel. This means that user can be on a newer discord version, but WinGet would still prompt the user for an upgrade since winget uses the metadata in the Apps&Features / Registry for the source of truth for a package's metadata. This should be reported to the publisher to fix; meanwhile winget upgrade is being blocked for Discord through UpgradeBehavior: deny since it's known to be problematic.

Related:

@CanePlayz
Copy link

@mdanish-kh Why does Discord still show up upon using winget upgrade?

@mdanish-kh
Copy link
Contributor

mdanish-kh commented Apr 6, 2024

@CanePlayz Is it showing under the normal upgrade list, or packages marked with requiring explicit upgrade? For me it shows as:

The following packages have an upgrade available, but require explicit targeting for upgrade:
Name            Id                      Version      Available   Source
-----------------------------------------------------------------------
Discord         Discord.Discord         1.0.9016     1.0.9035    winget
Microsoft Teams Microsoft.Teams.Classic 1.6.00.29964 1.7.00.7956 winget

This is the expected behavior for now. Ideally, denied packages should be hidden from the list entirely, I've created an issue for that #4299

If you want to hide it entirely, you can set up a pin for Discord with winget pin add Discord.Discord

@CanePlayz
Copy link

Ah thanks a lot, that explains it

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

No branches or pull requests

8 participants