From c3087990648e90e1b509b92eaf5b9a8792e1eb0e Mon Sep 17 00:00:00 2001 From: Engincan VESKE <43685404+EngincanV@users.noreply.github.com> Date: Tue, 5 Dec 2023 11:34:08 +0300 Subject: [PATCH] CLI: New version info should logged if the current CLI version is pre-release and the stable version fetched from GitHub. --- .../Volo/Abp/Cli/CliService.cs | 19 ++++++++++++++- .../Version/PackageVersionCheckerService.cs | 24 ++++++++++++------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index c95e1854a7..e84c0d5de7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -184,8 +184,20 @@ public class CliService : ITransientDependency var updateChannel = GetUpdateChannel(currentCliVersion); var latestVersionInfo = await GetLatestVersion(updateChannel); - if (latestVersionInfo != null && latestVersionInfo.Version > currentCliVersion) + if (ShouldLogNewVersionInfo(latestVersionInfo, currentCliVersion)) { + if(updateChannel == UpdateChannel.Prerelease && !latestVersionInfo.Version.IsPrerelease) + { + latestVersionInfo = await PackageVersionCheckerService.GetLatestStableVersionFromGithubAsync(); + + if(ShouldLogNewVersionInfo(latestVersionInfo, currentCliVersion)) + { + LogNewVersionInfo(updateChannel, latestVersionInfo.Version, toolPath, latestVersionInfo.Message); + } + + return; + } + LogNewVersionInfo(updateChannel, latestVersionInfo.Version, toolPath, latestVersionInfo.Message); } } @@ -195,6 +207,11 @@ public class CliService : ITransientDependency } } + private bool ShouldLogNewVersionInfo(LatestVersionInfo latestVersionInfo, SemanticVersion currentCliVersion) + { + return latestVersionInfo != null && latestVersionInfo.Version > currentCliVersion; + } + private async Task IsLatestVersionCheckExpiredAsync() { try diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs index ff35fcf17f..a72c00714d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs @@ -14,6 +14,7 @@ using Volo.Abp.Cli.ProjectModification; using Volo.Abp.DependencyInjection; using Volo.Abp.Json; using Volo.Abp.Threading; +using System.Net.Mail; namespace Volo.Abp.Cli.Version; @@ -63,15 +64,7 @@ public class PackageVersionCheckerService : ITransientDependency { if (!includeNightly && !includeReleaseCandidates && !packageId.Contains("LeptonX")) { - var latestStableVersionResult = await GetLatestStableVersionOrNullAsync(); - if (latestStableVersionResult == null) - { - return null; - } - - return SemanticVersion.TryParse(latestStableVersionResult.Version, out var semanticVersion) - ? new LatestVersionInfo(semanticVersion, latestStableVersionResult.Message) - : null; + return await GetLatestStableVersionFromGithubAsync(); } var versionList = await GetPackageVersionListAsync(packageId, includeNightly); @@ -107,6 +100,19 @@ public class PackageVersionCheckerService : ITransientDependency return await GetPackageVersionsFromNuGetOrgAsync(packageId) ?? new List(); } + public async Task GetLatestStableVersionFromGithubAsync() + { + var latestStableVersionResult = await GetLatestStableVersionOrNullAsync(); + if (latestStableVersionResult == null) + { + return null; + } + + return SemanticVersion.TryParse(latestStableVersionResult.Version, out var semanticVersion) + ? new LatestVersionInfo(semanticVersion, latestStableVersionResult.Message) + : null; + } + private async Task IsCommercialPackageAsync(string packageId) { if (CommercialPackages.IsCommercial(packageId))