From b66743898d0edd77a9c1976a51ff0d43695f7d3f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 04:04:47 +0000 Subject: [PATCH 1/2] Initial plan From 737298323f166440ea049e05c8ab6f3b5b3e3e74 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 04:09:07 +0000 Subject: [PATCH 2/2] fix: normalize four-part updater versions for comparison Co-authored-by: mamoreau-devolutions <242016029+mamoreau-devolutions@users.noreply.github.com> --- src/UniGetUI.Core.Tools.Tests/ToolsTests.cs | 13 +++++++++++++ src/UniGetUI.Core.Tools/Tools.cs | 7 +++++++ src/UniGetUI/AutoUpdater.cs | 4 ++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/UniGetUI.Core.Tools.Tests/ToolsTests.cs b/src/UniGetUI.Core.Tools.Tests/ToolsTests.cs index b4aa21efe..aad0f9807 100644 --- a/src/UniGetUI.Core.Tools.Tests/ToolsTests.cs +++ b/src/UniGetUI.Core.Tools.Tests/ToolsTests.cs @@ -140,6 +140,19 @@ public void TestGetVersionStringAsFloat(string version, int i1, int i2, int i3, Assert.Equal(i4, v.Remainder); } + [Theory] + [InlineData("2026.1.0", "2026.1.0")] + [InlineData("2026.1.0.0", "2026.1.0")] + [InlineData("2026.1.0.5", "2026.1.0")] + [InlineData("2026.1", "2026.1")] + public void TestNormalizeVersionForComparison(string rawVersion, string expected) + { + var version = System.Version.Parse(rawVersion); + var normalized = CoreTools.NormalizeVersionForComparison(version); + + Assert.Equal(System.Version.Parse(expected), normalized); + } + [Theory] [InlineData("Hello World", "Hello World")] [InlineData("Hello; World", "Hello World")] diff --git a/src/UniGetUI.Core.Tools/Tools.cs b/src/UniGetUI.Core.Tools/Tools.cs index 33734fe0d..78c89af21 100644 --- a/src/UniGetUI.Core.Tools/Tools.cs +++ b/src/UniGetUI.Core.Tools/Tools.cs @@ -457,6 +457,13 @@ public static Version VersionStringToStruct(string Version) } } + public static System.Version NormalizeVersionForComparison(System.Version version) + { + return version.Revision >= 0 + ? new System.Version(version.Major, version.Minor, version.Build) + : version; + } + /// /// Returns the query that can be safely passed as a command-line parameter /// diff --git a/src/UniGetUI/AutoUpdater.cs b/src/UniGetUI/AutoUpdater.cs index 59b4851db..c0a0d0d0f 100644 --- a/src/UniGetUI/AutoUpdater.cs +++ b/src/UniGetUI/AutoUpdater.cs @@ -745,13 +745,13 @@ private static Version ParseVersionOrFallback(string rawVersion, Version fallbac { if (Version.TryParse(rawVersion, out Version? parsed)) { - return parsed; + return CoreTools.NormalizeVersionForComparison(parsed); } string sanitized = rawVersion.Trim().TrimStart('v', 'V'); if (Version.TryParse(sanitized, out parsed)) { - return parsed; + return CoreTools.NormalizeVersionForComparison(parsed); } Logger.Warn($"Could not parse version '{rawVersion}', using fallback '{fallbackVersion}'");