From 68d5e25c2fafff282d74e8374bafd5188b164d1e Mon Sep 17 00:00:00 2001 From: GabrielDuf Date: Tue, 27 Oct 2026 14:54:07 -0400 Subject: [PATCH 1/2] Point the release notes page at the change history page --- src/UniGetUI.Core.Data.Tests/CoreTests.cs | 2 +- src/UniGetUI.Core.Data/CoreData.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/UniGetUI.Core.Data.Tests/CoreTests.cs b/src/UniGetUI.Core.Data.Tests/CoreTests.cs index 364a14f1da..2c60cddd67 100644 --- a/src/UniGetUI.Core.Data.Tests/CoreTests.cs +++ b/src/UniGetUI.Core.Data.Tests/CoreTests.cs @@ -109,7 +109,7 @@ public void CheckGitHubReleaseUrlsUseEscapedResolvedTag() "https://api.github.com/repos/Devolutions/UniGetUI/releases/tags/3.3.7-beta1", CoreData.GetGitHubReleaseApiUrlFromTag("3.3.7-beta1") ); - Assert.Equal("https://devolutions.net/unigetui/release-notes/", CoreData.ReleaseNotesUrl); + Assert.Equal("https://devolutions.net/data/UniGetUIChangeHistoryUpdate.htm", CoreData.ReleaseNotesUrl); Assert.Equal(CoreData.ReleaseNotesUrl, CoreData.GetGitHubReleasePageUrl()); } } diff --git a/src/UniGetUI.Core.Data/CoreData.cs b/src/UniGetUI.Core.Data/CoreData.cs index f23beab61a..724eb0e79b 100644 --- a/src/UniGetUI.Core.Data/CoreData.cs +++ b/src/UniGetUI.Core.Data/CoreData.cs @@ -8,7 +8,7 @@ public static class CoreData { private const string GitHubReleasePageBaseUrl = "https://github.com/Devolutions/UniGetUI/releases/tag/"; private const string GitHubReleaseApiBaseUrl = "https://api.github.com/repos/Devolutions/UniGetUI/releases/tags/"; - public const string ReleaseNotesUrl = "https://devolutions.net/unigetui/release-notes/"; + public const string ReleaseNotesUrl = "https://devolutions.net/data/UniGetUIChangeHistoryUpdate.htm"; private static int? __code_page; public static int CODE_PAGE From 1c319452b9181fe49b8a7a19646e63dd8af064e5 Mon Sep 17 00:00:00 2001 From: GabrielDuf Date: Tue, 27 Oct 2026 16:18:07 -0400 Subject: [PATCH 2/2] Retry the toolbar selection test cleanup while its catalog file is locked ToolbarSelectionStateTests deletes its temp folder about 15 ms after writing catalog.json. Another process (most likely an antivirus scan of the new file) sometimes still holds it, so Dispose threw an IOException and failed the test even though every assertion passed. That failed the .NET Tests check on this PR twice and 3 of 10 local full-assembly runs. Dispose now retries the delete for about a second and then leaves the temp folder behind rather than failing. 10 of 10 local runs pass. Co-Authored-By: Claude Opus 5.5 --- .../ToolbarSelectionStateTests.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/UniGetUI.Tests/ToolbarSelectionStateTests.cs b/src/UniGetUI.Tests/ToolbarSelectionStateTests.cs index fecc9941b7..0d5e0ef1bf 100644 --- a/src/UniGetUI.Tests/ToolbarSelectionStateTests.cs +++ b/src/UniGetUI.Tests/ToolbarSelectionStateTests.cs @@ -16,7 +16,25 @@ public sealed class ToolbarSelectionStateTests : IDisposable public ToolbarSelectionStateTests() => Directory.CreateDirectory(_directory); - public void Dispose() => Directory.Delete(_directory, true); + public void Dispose() + { + for (int attempt = 1; ; attempt++) + { + try + { + Directory.Delete(_directory, true); + return; + } + catch (IOException) when (attempt < 20) + { + Thread.Sleep(50); + } + catch (IOException) + { + return; + } + } + } private static CatalogEntry Entry(string id) => new() {