microsoft / winget-pkgs

The Microsoft community Windows Package Manager manifest repository
MIT License
8.34k stars 4.27k forks source link

[Package Issue]: nomic.gpt4all #157267

Open Ashcora opened 1 month ago

Ashcora commented 1 month ago

Please confirm these before moving forward

Category of the issue

No applicable update found.

Brief description of your issue

When running the winget upgrade command, GPT4All is listed with an old version, despite the application showing the latest version (2.8.0) upon opening. Every time winget upgrade is executed, it attempts to upgrade GPT4All to the latest version, even though the application already shows as up-to-date. Additionally, selecting "update" in the GUI results in a message indicating that there is no update available.

The current version is 2.8.0, which is also installed on my system (based on what the application tells me) Winget states: "currently installed version: 2.4.19" and "can be updated to 2.7.0"

Steps to reproduce

Open Command Prompt or PowerShell. Run the command: winget upgrade. Observe that GPT4All is listed with an old version. Attempt to upgrade GPT4All using winget upgrade. After the upgrade, open GPT4All and verify the version displayed (2.8.0). Re-run winget upgrade and observe that GPT4All is still listed for upgrade. Open GPT4All GUI and select "update". Observe the message indicating that there is no update available.

Actual behavior

GPT4All is persistently listed for upgrade in winget despite the application showing the latest version (2.8.0). The winget upgrade command continues to attempt upgrading GPT4All, and the GUI indicates no updates are available.

Expected behavior

GPT4All should not be listed for upgrade in winget after it has already been upgraded to the latest version (2.8.0). The winget upgrade command should recognize that the application is up-to-date.

Environment

Windows-Paket-Manager v1.7.11261
Windows: Windows.Desktop v10.0.22631.3672
Systemarchitektur: X64
Paket: Microsoft.DesktopAppInstaller v1.22.11261.0

Screenshots and Logs

Further details, please see: https://github.com/nomic-ai/gpt4all/issues/2425

Trenly commented 1 month ago

@ashcora - Can you share the output of winget list gpt4all

Ashcora commented 4 weeks ago

Please find the output below as screenshot:

image

If you need further information, please let me know. Fun fact: I have installed GPT4ALL on my Windows Notebook as well. Here nothing shown when running the same winget-command as on my Desktop. I never modified any winget entries/sources on both devices.

Trenly commented 4 weeks ago

It seems there are two different installers for GPT4All - There is the one at GitHub, which is linked to a static version, and there is the one at gpt4all.io

My best guess is that the primary cause of this issue is that the QT Framework Installer (not from GitHub) has the ability to self-update within the app. I can't test currently since it's not possible to install an older version, but if this self-updater works the way many others do, then it doesn't change the version of the application written to Control Panel. If the version isn't updated in Control Panel, then WinGet has no way to know that the newer version is installed.

@ashcora - You may be able to check this by going to the Add & Remove Programs section of control panel (or run appwiz.cpl) and checking what version GPT4All is reporting out to Windows.

Ashcora commented 4 weeks ago

Yes, that might be the root cause, see here the screenshot from my Desktop computer:

image

The interesting topic is that I used in both cases the installer from the website (instead of GitHub): https://gpt4all.io/installers/gpt4all-installer-win64.exe

But, the installation on my notebook was done earlier (on 25.05.2024 - not having the issue with winget) than on my Desktop computer (on 04.06.2024 - having the issue).

cosmic-snow commented 4 weeks ago

Hi, I've contributed to GPT4All in the past, although note that I'm not directly involved in the packaging/distribution of the precompiled application.

It seems there are two different installers for GPT4All - There is the one at GitHub, which is linked to a static version, and there is the one at gpt4all.io

Not necessarily, but looks like this is the case for v2.8.0 so let me explain; I've already mentioned it in the issue linked in the OP: https://github.com/nomic-ai/gpt4all/issues/2425.

The installer is, as you mention, based on the Qt Installer Framework. By default, it is configured to get the latest release files online, so as long as the code for the installer doesn't change, it's basically always targeting the latest version it can find. This depends on how the guys at Nomic publish a release.

The source code includes the configuration of the installer and you can check the CI to see how it's built. The build process for Windows for the chat GUI is dependent on CMake and MSVC. There is a CMake option to create an offline installer (GPT4ALL_OFFLINE_INSTALLER) which includes everything built in a specific version.

This is basically what you would want when distributing it through a separate package manager like this, although I doubt that's what you got in previous versions here (haven't checked myself, I don't really know about winget and I would need to go through the releases).

On another note, I've found a problem in the latest (rejected) PR's manifest. See this comment in the linked issue.

Edit: Actually, the flag to build offline installers has already been set in CI quite a long time ago, see here: https://github.com/nomic-ai/gpt4all/blame/41c9013fa46a194b3e4fee6ced1b9d1b65e177ac/.circleci/continue_config.yml#L201

Ashcora commented 4 weeks ago

What I did in the meantime is to delete the current installation showing v2.4.19, downloaded the latest installer from the website again. Now the issue seems to be fixed. --> At least for my current solution and the current version. It is not shown in winget anymore as well.

Let's see how the behavior is then when the next version is released.