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

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

Open
R-Adrian opened this issue Aug 24, 2023 · 33 comments
Labels
Area-Matching Help-Wanted This is a good candidate work item from the community.

Comments

@R-Adrian
Copy link

R-Adrian commented Aug 24, 2023

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 #117895

  • install Mozilla Thunderbird 115.0 (must be 115.0), DO NOT let it to auto-update (yet)
  • check the output of winget upgrade - it should say nothing about Thunderbird
  • start Thunderbird and run the auto-updater (usually from the Help - About window), Thunderbird will auto-update itself to 115.1.1 (currently)
  • check again the output of winget upgrade - winget now identifies the installed 115.1.1 version as being part of the Thunderbird Betas, "> 117.0b4"
  • try running winget upgrade --all - winget will now install Thunderbird Beta 117 even if it was Stable 115 before

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>
@microsoft-github-policy-service microsoft-github-policy-service bot added the Needs-Triage This work item needs to be triaged by a member of the core team. label Aug 24, 2023
@mooms06
Copy link

mooms06 commented Aug 24, 2023

The issue is also with Thunderbird 102, see here marticliment/UniGetUI#1302

@R-Adrian R-Adrian changed the title winget upgrades stable Mozilla.Thunderbird to beta versions because of missing manifests for newer stable versions winget upgrades stable Mozilla.Thunderbird to beta versions (because of missing manifests for newer stable versions?) Aug 24, 2023
@denelon denelon transferred this issue from microsoft/winget-cli Aug 24, 2023
@denelon denelon added Help-Wanted This is a good candidate work item from the community. and removed Needs-Triage This work item needs to be triaged by a member of the core team. labels Aug 24, 2023
@fblz
Copy link

fblz commented Aug 28, 2023

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
Copy link
Author

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
Copy link

fblz commented Aug 28, 2023

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
Copy link

fblz commented Aug 28, 2023

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
Copy link
Contributor

treysis commented Sep 3, 2023

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

@FadeMind
Copy link

FadeMind commented Sep 7, 2023

20230907-1694085382
but
20230907-1694085568

@Gorrrg
Copy link

Gorrrg commented Sep 8, 2023

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
Copy link

Bagu commented Sep 11, 2023

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

@otto-liljalaakso-nt
Copy link

otto-liljalaakso-nt commented Sep 25, 2023

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
Copy link

Bagu commented Sep 25, 2023

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
Copy link

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

@krystofkrticka
Copy link
Contributor

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
Copy link

Bagu commented Sep 27, 2023

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

@krystofkrticka
Copy link
Contributor

krystofkrticka commented Sep 27, 2023

I know but the issue is still annoying.

@serjiosilent
Copy link

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
Copy link

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
Copy link
Contributor

treysis commented Sep 28, 2023

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
Copy link

joseluisgs commented Sep 30, 2023

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
Copy link

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

@joseluisgs
Copy link

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
Copy link

I have problem with intellIj too with the version

@joseluisgs
Copy link

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
Copy link

Gorrrg commented Sep 30, 2023

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
Copy link

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
Copy link

otto-liljalaakso-nt commented Oct 2, 2023

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
Copy link

PiterGoCompany commented Oct 2, 2023

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
Copy link

Bagu commented Oct 2, 2023

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

@mdanish-kh
Copy link
Contributor

mdanish-kh commented Oct 3, 2023

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
Copy link

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

@R-Adrian
Copy link
Author

R-Adrian commented Oct 3, 2023

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
Copy link

It is not happening for me too.

@dpprdan
Copy link
Contributor

dpprdan commented Oct 4, 2023

@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 #117895 (comment) 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Matching Help-Wanted This is a good candidate work item from the community.
Projects
None yet
Development

No branches or pull requests