From 03658017041bc463e827aede2b3d7e347b66718a Mon Sep 17 00:00:00 2001 From: Kouji Matsui Date: Fri, 27 Oct 2023 13:38:13 +0900 Subject: [PATCH] Improved detection for mostly larger version tag. --- RelaxVersioner.Core/Analyzer.cs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/RelaxVersioner.Core/Analyzer.cs b/RelaxVersioner.Core/Analyzer.cs index 374e913..214d33e 100644 --- a/RelaxVersioner.Core/Analyzer.cs +++ b/RelaxVersioner.Core/Analyzer.cs @@ -10,6 +10,7 @@ #nullable enable using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -89,19 +90,16 @@ private static async Task LookupVersionLabelAsync( break; } - var found = false; - foreach (var tag in commit.Tags) - { - if (Version.TryParse(tag.Name, out var v2)) - { - version = v2; - reached.Add(commit, version); - found = true; - break; - } - } - if (found) + // Detected mostly larger version tag. + var candidates = commit.Tags. + Select(tag => Version.TryParse(tag.Name, out var v) ? v : null!). + Where(v => v != null). + OrderByDescending(v => v). + ToArray(); + if (candidates.Length >= 1) { + version = candidates[0]; + reached.Add(commit, version); break; }