Skip to content

Commit febdcf0

Browse files
committed
added logging, abstracted away version being extracted from tag name substring
1 parent c60d5c7 commit febdcf0

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

Rubberduck.Core/UI/Command/VersionCheckCommand.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ public VersionCheckCommand(IVersionCheckService versionCheck, IMessageBox prompt
4444
protected override async void OnExecute(object parameter)
4545
{
4646
var settings = _config.Read().UserSettings.GeneralSettings;
47+
if (_versionCheck.IsDebugBuild)
48+
{
49+
Logger.Info("Version check skipped for debug build.");
50+
return;
51+
}
52+
4753
Logger.Info("Executing version check...");
4854

4955
var tokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(5));
@@ -71,6 +77,14 @@ await _versionCheck
7177
{
7278
PromptAndBrowse(t.Result, settings.IncludePreRelease);
7379
}
80+
else
81+
{
82+
Logger.Info("Version check skips notification of an existing newer version available.");
83+
}
84+
}
85+
else
86+
{
87+
Logger.Info("Version check completed: running current latest.");
7488
}
7589
});
7690
}

Rubberduck.Core/VersionCheck/Tag.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ public class Tag
1111
public int InstallerDownloads { get; set; }
1212
public bool IsPreRelease { get; set; }
1313

14+
public Version Version => new Version(IsPreRelease
15+
? Name.Substring("prerelease-v".Length)
16+
: Name.Substring("v".Length));
17+
1418
public virtual ICollection<TagAsset> TagAssets { get; set; } = new List<TagAsset>();
1519
}
1620
}

Rubberduck.Core/VersionCheck/VersionCheckService.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Newtonsoft.Json;
2+
using NLog;
23
using Rubberduck.Settings;
34
using System;
45
using System.Linq;
@@ -9,6 +10,8 @@ namespace Rubberduck.VersionCheck
910
{
1011
public class VersionCheckService : IVersionCheckService
1112
{
13+
private static readonly ILogger _logger = LogManager.GetCurrentClassLogger();
14+
1215
/// <param name="version">That would be the version of the assembly for the <c>_Extension</c> class.</param>
1316
public VersionCheckService(Version version)
1417
{
@@ -32,14 +35,14 @@ public async Task<Version> GetLatestVersionAsync(GeneralSettings settings, Cance
3235
using (var client = new PublicApiClient())
3336
{
3437
var tags = await client.GetLatestTagsAsync(token);
35-
var next = tags.Single(e => e.IsPreRelease).Name;
36-
var main = tags.Single(e => !e.IsPreRelease).Name;
3738

38-
var version = settings.IncludePreRelease
39-
? next.Substring("Prerelease-v".Length)
40-
: main.Substring("v".Length);
39+
var next = tags.Single(e => e.IsPreRelease);
40+
var main = tags.Single(e => !e.IsPreRelease);
41+
_logger.Info($"Main: v{main.Version.ToString(3)}; Next: v{next.Version.ToString(4)}");
42+
43+
_latestVersion = settings.IncludePreRelease ? next.Version : main.Version;
44+
_logger.Info($"Check prerelease: {settings.IncludePreRelease}; latest: v{_latestVersion.ToString(4)}");
4145

42-
_latestVersion = new Version(version);
4346
return _latestVersion;
4447
}
4548
}

0 commit comments

Comments
 (0)