From 674a00af90cc1e0ac86403257c36803e485a016c Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 16 Apr 2025 17:47:31 -0500 Subject: [PATCH] Fix minor update check --- .../UpgradablePackagesLoader.cs | 6 +++++- .../Packages/Package.cs | 13 ++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/UniGetUI.PackageEngine.PackageLoader/UpgradablePackagesLoader.cs b/src/UniGetUI.PackageEngine.PackageLoader/UpgradablePackagesLoader.cs index eedb97e8a2..2fa5040f70 100644 --- a/src/UniGetUI.PackageEngine.PackageLoader/UpgradablePackagesLoader.cs +++ b/src/UniGetUI.PackageEngine.PackageLoader/UpgradablePackagesLoader.cs @@ -37,7 +37,11 @@ protected override async Task IsPackageValid(IPackage package) IgnoredPackages[package.Id] = package; return false; } - if ((await InstallationOptions.FromPackageAsync(package)).SkipMinorUpdates && package.IsUpdateMinor()) return false; + if ((await InstallationOptions.FromPackageAsync(package)).SkipMinorUpdates && package.IsUpdateMinor()) + { + Logger.Info($"Ignoring package {package.Id} because it is a minor update ({package.VersionString} -> {package.NewVersionString}) and SkipMinorUpdates is set to true."); + return false; + } if (package.NewerVersionIsInstalled()) return false; return true; } diff --git a/src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Package.cs b/src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Package.cs index 353012e3ea..b7060b201c 100644 --- a/src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Package.cs +++ b/src/UniGetUI.PackageEngine.PackageManagerClasses/Packages/Package.cs @@ -296,18 +296,9 @@ public virtual bool NewerVersionIsInstalled() public virtual bool IsUpdateMinor() { if (!IsUpgradable) return false; - string[] VersionSplit = VersionString.Split("."); - string[] NewVersionSplit = NewVersionString.Split("."); - // When in doubt, return false - if (VersionSplit.Length < 3 || NewVersionSplit.Length < 3) return false; - - if ( - VersionSplit[0] != NewVersionSplit[0] || - VersionSplit[1] != NewVersionSplit[1] - ) return false; // Major update - - return VersionSplit[2].CompareTo(NewVersionSplit[2]) < 0; + return NormalizedVersion.Major == NormalizedNewVersion.Major && NormalizedVersion.Minor == NormalizedNewVersion.Minor && + (NormalizedVersion.Patch != NormalizedNewVersion.Patch || NormalizedVersion.Remainder != NormalizedNewVersion.Remainder); } public virtual SerializablePackage_v1 AsSerializable()