microsoft / winget-pkgs

The Microsoft community Windows Package Manager manifest repository
MIT License
8.71k stars 4.55k forks source link

winget upgrades stable Mozilla.Thunderbird to beta versions (because of missing manifests for newer stable versions?) #117949

Open R-Adrian opened 1 year ago

R-Adrian commented 1 year ago

Brief description of your issue

Missing stable package definitions for newer sub-versions than currently listed in the package manifests causes winget to upgrade stable editions to beta versions.

example: Winget currently tries to upgrade Mozilla Thunderbird 115.0.1, 115.1.0 and 115.1.1 (so far) to the beta 117.0b9 because there is no package manifest definition for any other version in the 115 series except for the 115.0 (115.0,0) one so winget will detect any newer stable version (installed by Mozilla's own updater) as being a beta.... and thus winget starts to install newer betas on top of existing stable editions

Steps to reproduce

see https://github.com/microsoft/winget-pkgs/issues/117895

Expected behavior

even if winget is missing package manifests for newer stable versions of a software it should not install beta versions on top of the currently stable one, even if the current stable one has higher version numbers than what numbers are present in the manifests repository for whatever version winget considers as "stable" And this especially if there is a major version change (e.g. 115->117 in the case of Thunderbird)

Actual behavior

winget upgrades stable versions to beta/testing versions.

Environment

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

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

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
PS C:\WINDOWS\system32>
mooms06 commented 1 year ago

The issue is also with Thunderbird 102, see here https://github.com/marticliment/WingetUI/issues/1302

fblz commented 1 year ago

Cross posting, since my issue was closed as dupe:

I can't really understand why this issue was moved to winget-pkgs. If winget suggests a beta version as an upgrade for a stable version, I think the problem is not with winget-pkgs, but with the version detection of winget itself.

R-Adrian commented 1 year ago

I think that a proper solution would be to delete all references to Mozilla beta installers from the winget packages manifest repository. (yes, really, nuke all betas)

Beta versions of software from Mozilla have a way faster life cycle than the stable versions, during the course of a week there can sometimes be 2...3 or even 4 new beta versions published by Mozilla and winget is extremely slow with updates to the package manifests.

Another reason for dropping the betas completely is that software from Mozilla (Firefox, Thunderbird) has a built-in self-update mechanism, and if someone installs a beta version on purpose they are assumed to at least be knowledgeable enough to also know about the built-in updater.

fblz commented 1 year ago

This would be possible, but not a solution to the problem at hand. This can also happen at any time with any other software. Updating a stable software to a beta version should not be something that a package manager can do so easily.

Furthermore, I - personally - would expect a proper package manager to make anti-patterns like integrated update management obsolete, not to support or promote them.

fblz commented 1 year ago

If I undestand correctly, this whole situation is a side effect of winget more or less being stateless. Question is whether this can be solved in the current model, or whether it would be a good reason to reconsider some design decisions.

treysis commented 1 year ago

Is nobody taking care of the manifest? The issue still persists.

FadeMind commented 1 year ago

20230907-1694085382 but 20230907-1694085568

Gorrrg commented 1 year ago

I cannot confirm that winget installs the beta version. It just erroneously thinks version 117.0b4 is installed for some reason.

I have the stable version 115.2 installed, but winget says I have beta version 117.0b4 installed. Winget doesn't even upgrade to the beta version when I daringly and jokingly tell it to for experimental research reasons (testing what it does).

What's odd to me is that 117.0b4 isn't even the next highest version after 115.0, there's 116.0b7 and 117.0b1. But looking at the manifest file for 117.0b4, there's some entries that seem out of place:

  AppsAndFeaturesEntries:
  - DisplayName: Mozilla Thunderbird 117.0b4 x86 en-US
    Publisher: '*'
    DisplayVersion: 0.0.0.0
    UpgradeCode: '{53BA97BB-F0FB-476D-BAF5-E2D649F39A31}'
Bagu commented 1 year ago

Same problem here. I have to put a pin to avoid the upgrade.

otto-liljalaakso-nt commented 1 year ago

For me, Winget is (correctly) not upgrading to Beta, but (incorrectly, from my point of view), showing the Beta as the Available version:

> winget upgrade --all
Name                            Id                  Version Available Source
----------------------------------------------------------------------------
Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 115.2.0 118.0b2   winget

(2/4) Found Mozilla Thunderbird [Mozilla.Thunderbird] Version 115.2.2
Downloading https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/115.2.2/win64/en-US/Thunderbird%20Setup%20115.2.2.exe
Successfully verified installer hash
Starting package install...
Successfully installed

> winget list Thunderbird
Name                            Id                  Version Available Source
----------------------------------------------------------------------------
Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 115.2.2 118.0b2   winget

After that, winget upgrade --all still shows the beta as being Available, but does not actually try to upgrade it.

EDIT: The next day, winget upgrade --all installed Beta in parallel with the GA version .

Bagu commented 1 year ago

Not here : Mozilla Thunderbird (x64 fr) Mozilla.Thunderbird.Beta > 117.0b4 118.0b2 winget

But the installed version of Thunderbird is 115.2.3 stable.

Danik1601 commented 1 year ago

I confirm the issue on all my personal and working machines I am working with, no exclusions.

krystofkrticka commented 1 year ago

I can also confirm this because it happens on all computers at company for which I work. Some computers already got update to beta because of this issue when running winget upgrade --all command and I had to roll them back manually.

Bagu commented 1 year ago

To avoid roll back, you can pin thunderbird and thunderbird beta

krystofkrticka commented 1 year ago

I know but the issue is still annoying.

serjiosilent commented 1 year ago

Same issue. Installed stable release 115.2.3, but after winget upgrade --all winget show me next line:

Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 115.2.3 118.0b6 winget

and updating app to beta version. After next running winget upgrade --all winget show me two versions of app, like:

Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 115.2.3 118.0b6   winget
Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 118.0   118.0b6   winget
TheNavyBear commented 1 year ago

Same issue. For a few weeks winget just showed the Beta version as an available upgrade with 'winget upgrade' but did not upgrade it with 'winget upgrade --all'. As of this week winget now installs Thunderbird Beta in parallel with my Thunderbird 115.xx when I run 'winget upgrade --all'. I have had to pin Thunderbird in winget to avoid this. This is a bandaid approach as I can no longer use winget to see if/when there is an update to Thunderbird non-beta, and must now rely on Thunderbird's in-built updater instead of winget...

treysis commented 1 year ago

But this can only be a manifest problem, right? Why is nobody taking care about this? Oh boy, this is annoying...and we can't test possible fixes because we can't have a local repo for testing :(

joseluisgs commented 1 year ago

Mee too, Does anyone knows how to remove packages or apps from wing get upgrade?

IntelliJ IDEA 2023.2.1               JetBrains.IntelliJIDEA.Ultimate > 2023.1              2023.2                winget
Terminal Windows                     Microsoft.WindowsTerminal       1.17.11461.0          1.18.2681.0           winget
Mozilla Thunderbird (x64 es-ES)      Mozilla.Thunderbird.Beta        > 117.0b4             118.0b6               winget
Oh My Posh version 18.4.0            XP8K0HKJFRXGCK                  18.4.0                18.10.3               winget

Also I have Intellij Idea in 2023.2.3 an I have conflict too

Mazino-Urek commented 1 year ago

Not only Winget installed the beta thunderbird to my system, it has removed all my mail data. Enough with Winget experiment.

joseluisgs commented 1 year ago

don't worry about data, I have the same problem, Beta install in different directory. Re-install again the normal version and everything is ok. The da is in your user directory

joseluisgs commented 1 year ago

I have problem with intellIj too with the version

joseluisgs commented 1 year ago

I have to put more pin to block.... ejem, please solve this situation

Nombre                          Id                              Versión   Origen Tipo de anclaje
------------------------------------------------------------------------------------------------
Mozilla Thunderbird (x64 es-ES) Mozilla.Thunderbird.Beta        > 117.0b4 winget Blocking
IntelliJ IDEA 2023.2.2          JetBrains.IntelliJIDEA.Ultimate > 2023.1  winget Blocking
Gorrrg commented 1 year ago

My workaround for these issues is to consequently pinblock any application that gives me trouble. It's not just package manifests being outdated or incorrect, also winget's inability to deal with letter appendices to version numbering is bothering me. Some authors release hotfixes, so after let's say 3.22 comes 3.22a, 3.22b, but winget treats them as pre-releases due to difference convention.

Mazino-Urek commented 1 year ago

don't worry about data, I have the same problem, Beta install in different directory. Re-install again the normal version and everything is ok. The da is in your user directory

Thanks, got my data back.

otto-liljalaakso-nt commented 1 year ago

To me, the manifests seem correct. Mozilla.Thunderbird and Mozilla.Thundebird.Beta have different IDs, names, and so on. (Disclaimer: This is the first time I look at Winget manifests — but the format is simple enough!)

It rather seems that Winget is unable to distinguish between installed GA and Beta, and thinks they are different versions of the GA variant. Perhaps there is something that could be done on the winget-cli side to fix that. (But that code is not simple at all, some expert on that would need to comment here.)

Or perhaps the only way to get this working is that Thunderbird changes something in their Beta installer. If I check my installed software in Windows SettingsApplications, I see two Mozilla Thunderbirds, otherwise identical but versions numbers 115.2.2 and 118.0 — I would have expected two different names, with one clearly flagged as Beta here.

@fancybody @vedantmgoyal2009 you two have added the last eight Thunderbird Betas. Are you aware of this problem? Do you have insight what is happening here, and how this could be fixed?

If you ask me, unless there is a proper fix available, the proposal (already with merge requests) to stop shipping Betas is worth doing. There certainly are may more users who want GA versions than users who want Betas.

PiterGoCompany commented 1 year ago

I've created pin for Thunderbird, but it doesn't work and Thunderbird is still updating. My pin looks like this:

Name Id Version Source Pin type

Mozilla Thunderbird (x64 en-US) Mozilla.Thunderbird 115.3.1 winget Blocking

Bagu commented 1 year ago

You must pin Thunderbird AND Thunderbird beta. Because winget identify Thunderbird as Thunderbird beta.

mdanish-kh commented 1 year ago

I know it's not the actual fix but I made PRs to remove versions of Mozilla.Thunderbird.Beta that have a higher version than the stable one. WinGet seems to be correlating stable versions to beta versions (since they have the exact AppsAndFeatures metadata) and the temporary fix is to just let stable version be the "highest" version in the repo.

Since those PRs have been merged, can someone verify if this issue is still occurring?

[Policy] Area-Matching

serjiosilent commented 1 year ago

I checked, winget doesn't update Thunderbird.Stable to Thunderbird.Beta

R-Adrian commented 1 year ago

Since those PRs have been merged, can someone verify if this issue is still occurring?

image

it is not happening anymore for me

Discord app and Google Drive though... those are different known problems:

PiterGoCompany commented 1 year ago

It is not happening for me too.

dpprdan commented 1 year ago

@mdanish-kh

The actual fix would be to address the problem in Support different release channels [released, beta, alpha] winget-cli#147

Or that Thunderbird uses a different ARP name for beta versions, see https://github.com/microsoft/winget-pkgs/issues/117895#issuecomment-1723260727 and https://bugzilla.mozilla.org/show_bug.cgi?id=1853673 They need to fix this regardless of winget IMHO, since it is not possible right now to install the Thunderbird beta alongside the stable version IIUC.