From ffba31320583871146c228dc3593a76b35f5a11b Mon Sep 17 00:00:00 2001 From: Max Date: Tue, 21 Jan 2025 15:50:14 -0600 Subject: [PATCH 1/8] Mark an uninstall as successful if there is no package to uninstall --- .../Helpers/WinGetPkgOperationHelper.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index def508835..63205e49d 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -180,6 +180,12 @@ protected override OperationVeredict _getOperationResult( return OperationVeredict.AutoRetry; } + if (uintCode == 0x8A150014 && operation is OperationType.Uninstall) + { + // Application not found + return OperationVeredict.Success; + } + return OperationVeredict.Failure; } From f4cc248d83824458df7a367ea4adac6f8d619389 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 21 Feb 2025 17:55:27 -0600 Subject: [PATCH 2/8] Ignore updates where install technology differs --- .../Helpers/WinGetPkgOperationHelper.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index 63205e49d..76ee8eae2 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -4,6 +4,7 @@ using UniGetUI.Core.SettingsEngine; using UniGetUI.Core.Tools; using UniGetUI.PackageEngine.Classes.Manager.BaseProviders; +using UniGetUI.PackageEngine.Classes.Packages.Classes; using UniGetUI.PackageEngine.Enums; using UniGetUI.PackageEngine.Interfaces; @@ -147,10 +148,11 @@ protected override OperationVeredict _getOperationResult( return OperationVeredict.Failure; } - if (uintCode == 0x8A15002B) - { - return OperationVeredict.Failure; - } + if (uintCode == 0x8A15002B) + { + IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.Version); + return OperationVeredict.Failure; + } if (uintCode == 0x8A15010D || uintCode == 0x8A15004F || uintCode == 0x8A15010E) { From 1c855265889152addfe516cf514f8e4a4e547993 Mon Sep 17 00:00:00 2001 From: mrixner <100489307+mrixner@users.noreply.github.com> Date: Sat, 1 Mar 2025 17:14:29 -0600 Subject: [PATCH 3/8] Remove the success case for winget's "application not found" return code --- .../Helpers/WinGetPkgOperationHelper.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index 76ee8eae2..874a207d6 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -182,12 +182,6 @@ protected override OperationVeredict _getOperationResult( return OperationVeredict.AutoRetry; } - if (uintCode == 0x8A150014 && operation is OperationType.Uninstall) - { - // Application not found - return OperationVeredict.Success; - } - return OperationVeredict.Failure; } From b0a133cb97d2dc4a7023501dbae88781e04a6a7c Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 1 Mar 2025 17:34:08 -0600 Subject: [PATCH 4/8] Add a 'hide non-applicable updates' setting to WinGet --- .../Helpers/WinGetPkgOperationHelper.cs | 3 ++- src/UniGetUI/Pages/SettingsPage.xaml.cs | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index 76ee8eae2..5f7ab64e9 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -150,7 +150,8 @@ protected override OperationVeredict _getOperationResult( if (uintCode == 0x8A15002B) { - IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.Version); + if (Settings.Get("IgnoreUpdatesNotApplicable")) + IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.Version); return OperationVeredict.Failure; } diff --git a/src/UniGetUI/Pages/SettingsPage.xaml.cs b/src/UniGetUI/Pages/SettingsPage.xaml.cs index 8c526ea16..d96727746 100644 --- a/src/UniGetUI/Pages/SettingsPage.xaml.cs +++ b/src/UniGetUI/Pages/SettingsPage.xaml.cs @@ -166,9 +166,16 @@ public SettingsPage() _ = PEInterface.InstalledPackagesLoader.ReloadPackages(); }; + CheckboxCard WinGet_HideNonApplicableUpdates = new() + { + Text = CoreTools.Translate("Add updates that fail with a 'no applicable update found' to the ignored updates list"), + SettingName = "IgnoreUpdatesNotApplicable" + }; + ExtraSettingsCards[PEInterface.WinGet].Add(WinGet_EnableTroubleshooter); ExtraSettingsCards[PEInterface.WinGet].Add(WinGet_ResetWindowsIPackageManager); ExtraSettingsCards[PEInterface.WinGet].Add(WinGet_UseBundled); + ExtraSettingsCards[PEInterface.WinGet].Add(WinGet_HideNonApplicableUpdates); // ---------------------------------------------------------------------------------------- From 26667731af4b4cbf8788a00bdf6961b6aceef95f Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 1 Mar 2025 17:41:28 -0600 Subject: [PATCH 5/8] Add a log when an update is ignored --- .../Helpers/WinGetPkgOperationHelper.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index b9b401f04..e3365eeda 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -160,8 +160,10 @@ protected override OperationVeredict _getOperationResult( if (uintCode is 0x8A15002B) { - if (Settings.Get("IgnoreUpdatesNotApplicable")) + if (Settings.Get("IgnoreUpdatesNotApplicable")) { + Logger.Info("Ignoring update " + package.Name + " as the update is not applicable to the platform"); IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.Version); + } return OperationVeredict.Failure; } From e9c4a800a8c1832a4f12fd7ab47c757efad26243 Mon Sep 17 00:00:00 2001 From: mrixner <100489307+mrixner@users.noreply.github.com> Date: Sun, 2 Mar 2025 10:34:51 -0600 Subject: [PATCH 6/8] Update WinGetPkgOperationHelper.cs --- .../Helpers/WinGetPkgOperationHelper.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index e3365eeda..a9d024857 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -162,9 +162,9 @@ protected override OperationVeredict _getOperationResult( { if (Settings.Get("IgnoreUpdatesNotApplicable")) { Logger.Info("Ignoring update " + package.Name + " as the update is not applicable to the platform"); - IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.Version); + IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.VersionString); } - return OperationVeredict.Failure; + return OperationVeredict.Success; } if (uintCode is 0x8A15010D or 0x8A15004F or 0x8A15010E) From 37aefa4c5eb4155f0f781d44952b9253fb942abf Mon Sep 17 00:00:00 2001 From: mrixner <100489307+mrixner@users.noreply.github.com> Date: Sun, 2 Mar 2025 10:37:23 -0600 Subject: [PATCH 7/8] Update WinGetPkgOperationHelper.cs --- .../Helpers/WinGetPkgOperationHelper.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index a9d024857..b96417801 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -163,8 +163,9 @@ protected override OperationVeredict _getOperationResult( if (Settings.Get("IgnoreUpdatesNotApplicable")) { Logger.Info("Ignoring update " + package.Name + " as the update is not applicable to the platform"); IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.VersionString); + return OperationVeredict.Success; } - return OperationVeredict.Success; + return OperationVeredict.Failure; } if (uintCode is 0x8A15010D or 0x8A15004F or 0x8A15010E) From 1790c39f8151ff93df75ba642d7a94fd4edac324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=AD=20Climent?= Date: Wed, 5 Mar 2025 23:40:51 +0100 Subject: [PATCH 8/8] Minor changes for coherence with codebase --- .../Helpers/WinGetPkgOperationHelper.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs index 0c03110b9..a5ca741b8 100644 --- a/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs +++ b/src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs @@ -160,8 +160,9 @@ protected override OperationVeredict _getOperationResult( if (uintCode is 0x8A15002B) { - if (Settings.Get("IgnoreUpdatesNotApplicable")) { - Logger.Info("Ignoring update " + package.Name + " as the update is not applicable to the platform"); + if (Settings.Get("IgnoreUpdatesNotApplicable")) + { + Logger.Warn($"Ignoring update {package.Id} as the update is not applicable to the platform, and the user has enabled IgnoreUpdatesNotApplicable"); IgnoredUpdatesDatabase.Add(IgnoredUpdatesDatabase.GetIgnoredIdForPackage(package), package.VersionString); return OperationVeredict.Success; }