Squirrel.Windows icon indicating copy to clipboard operation
Squirrel.Windows copied to clipboard

Product version not updated after application update

Open janih78 opened this issue 7 years ago • 29 comments

Squirrel 1.5.2 is working. Squirrel 1.7.8 is not working.

Application initial install sets product version properly in registry (or Control Panel -> Uninstall Program), but the version is not updated while updating the application.

So, if you open RegEdit and check the key "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall<appname>\DisplayVersion" before and after application update, you can see that it doesn't change at all.

janih78 avatar Oct 31 '17 13:10 janih78

@janih78 Are you still experiencing this issue with the latest version of Squirrel?

Thieum avatar May 17 '19 20:05 Thieum

Yes, I still have that problem. Any fix for this?

simader avatar Jun 22 '20 15:06 simader

Updates on this? This is causing issues in Winget, where it reads the outdated version from the product version:

  • https://github.com/microsoft/winget-pkgs/issues/15661

rollingmoai avatar Feb 09 '23 02:02 rollingmoai

I think that WinGet should probably not rely on this registry setting and instead should special-case Squirrel apps. I know that sounds Dum but even if we fixed this today, many many many apps are still gonna use old versions of Squirrel.

The canonical way to determine the latest version for a Squirrel app is:

  1. Find the root installation directory (i.e. %LocalAppData%\TheAppName)
  2. List all directories that start with app-
  3. Strip the app- prefix, and take the highest-by-Semver v1 number you find

Also, why would WinGet need to manage updates for an auto-updating application? afaik all it needs to do is manage install/uninstall

anaisbetts avatar Feb 09 '23 09:02 anaisbetts

Also, why would WinGet need to manage updates for an auto-updating application? afaik all it needs to do is manage install/uninstall

Package pinning has just been implemented in Winget, so you can now ignore updates for specific applications. But I don't think Squirrel apps should be special-cased just because of a "bug." Other auto-updating apps work well with Winget; that should be the case with Squirrel too.

but even if we fixed this today, many many many apps are still gonna use old versions of Squirrel.

Idealistically, taking the issue upstream with the publisher would be the best course of action.

rollingmoai avatar Feb 09 '23 10:02 rollingmoai

Package pinning has just been implemented in Winget, so you can now ignore updates for specific applications

This won't actually work though, because Squirrel will update the app anyways

anaisbetts avatar Feb 09 '23 16:02 anaisbetts

WinGet has some extra work to do for squirrel installers:

  • microsoft/winget-cli/issues/372
  • microsoft/winget-cli/issues/418
  • microsoft/winget-cli/issues/1748

denelon avatar Feb 09 '23 20:02 denelon

The comment on pinning is intended to essentially ignore pinned packages in the winget upgrade --all flow. We're aware applications will upgrade themselves regardless of the pinning status in WinGet.

denelon avatar Feb 09 '23 20:02 denelon

The version should be updated to match the version installed by Squirrel.

robmen avatar Feb 09 '23 20:02 robmen

WinGet uses the "displayVersion" in the registry which also drives the version displayed in Windows Apps & Features to do the version comparison to evaluate if a new version is available. It's the only reliable mechanism for us to keep things in sync and not cause user confusion.

We do support marketing versions for products via the "packageVersion" attribute, but we would still require the "displayVersion" in the "appsAndFeatures" key so the upgrade logic functions properly and will allow the publisher to determine what is displayed to the user.

In order not to have a broken experience when using the marketing version, all versions of manifests should have the correct "displayVersion".

denelon avatar Feb 09 '23 20:02 denelon

@denelon Sure, but again, please note https://github.com/Squirrel/Squirrel.Windows/issues/1187#issuecomment-1423869334 - many many many people use older Squirrel.Windows versions

anaisbetts avatar Feb 09 '23 23:02 anaisbetts

I completely understand. It's going to take years to clean up the experiences in cases where installers need to be fixed/modified/upgraded.

denelon avatar Feb 10 '23 00:02 denelon

I'm not sure how we would be able to implement reliable behaviors customized to Squirrel without a reliable way to detect an installer was built with it. Even if we can specify in the manifest that an installer is Squirrel, we need to be able to verify that programmatically so we can safely change the behaviors. That would also likely depend on a new version of Squirrel.

denelon avatar Feb 10 '23 00:02 denelon

Apps will always "use old versions of Squirrel", it'll only get worse if this is not fixed soon. It displays the incorrect version number in "Installed apps" as well, it's not limited to WinGet.

image

image

glen-84 avatar Aug 20 '23 15:08 glen-84