From b8cc418989e57f2f0dfc50c34fdebaeecf081e88 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Tue, 14 Nov 2023 20:09:50 -0700 Subject: [PATCH 01/12] Upgrade all the deps to the latest versions (#2442) * Tons of deps upgrades * Fix a bunch of compile errors * Fix hash equality issue --- Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj | 18 ++++++------ .../Wabbajack.CLI.Builder.csproj | 10 +++---- Wabbajack.CLI/Verbs/ModlistReport.cs | 3 +- Wabbajack.CLI/Wabbajack.CLI.csproj | 16 +++++------ Wabbajack.Common/Wabbajack.Common.csproj | 2 +- .../Wabbajack.Compiler.Test.csproj | 12 ++++---- Wabbajack.Compiler/Wabbajack.Compiler.csproj | 2 +- .../Wabbajack.Compression.BSA.Test.csproj | 16 +++++------ .../Wabbajack.Compression.BSA.csproj | 4 +-- .../Wabbajack.Compression.Zip.Test.csproj | 10 +++---- .../Wabbajack.DTOs.Test.csproj | 15 +++++----- Wabbajack.DTOs/Wabbajack.DTOs.csproj | 2 +- .../Wabbajack.Downloaders.Bethesda.csproj | 2 +- ...bbajack.Downloaders.Dispatcher.Test.csproj | 14 +++++----- .../Wabbajack.Downloaders.Dispatcher.csproj | 2 +- .../Wabbajack.Downloaders.GoogleDrive.csproj | 4 +-- .../Wabbajack.Downloaders.Http.csproj | 2 +- ...ck.Downloaders.IPS4OAuth2Downloader.csproj | 4 +-- .../Wabbajack.Downloaders.Manual.csproj | 2 +- .../Wabbajack.Downloaders.MediaFire.csproj | 6 ++-- .../Wabbajack.Downloaders.Mega.csproj | 2 +- .../Wabbajack.Downloaders.ModDB.csproj | 4 +-- ...ajack.Downloaders.VerificationCache.csproj | 4 +-- .../Wabbajack.Downloaders.WabbajackCDN.csproj | 2 +- .../Wabbajack.FileExtractor.Test.csproj | 18 ++++++------ .../Wabbajack.FileExtractor.csproj | 2 +- .../Wabbajack.Hashing.PHash.Test.csproj | 14 +++++----- ...abbajack.Hashing.xxHash64.Benchmark.csproj | 2 +- Wabbajack.Hashing.xxHash64.Test/HashTests.cs | 28 +------------------ .../Wabbajack.Hashing.xxHash64.Test.csproj | 12 ++++---- .../HashRelativePath.cs | 2 +- .../Wabbajack.Installer.Test.csproj | 12 ++++---- .../Wabbajack.Installer.csproj | 2 +- Wabbajack.Launcher/App.axaml | 2 +- Wabbajack.Launcher/ViewLocator.cs | 2 +- .../ViewModels/MainWindowViewModel.cs | 17 +++++------ Wabbajack.Launcher/Views/MainWindow.axaml.cs | 2 +- Wabbajack.Launcher/Wabbajack.Launcher.csproj | 20 ++++++------- .../Wabbajack.Networking.Discord.csproj | 2 +- .../Wabbajack.Networking.GitHub.csproj | 4 +-- .../Wabbajack.Networking.Http.Test.csproj | 10 +++---- .../Wabbajack.Networking.Http.csproj | 2 +- .../Wabbajack.Networking.NexusApi.Test.csproj | 14 +++++----- .../Wabbajack.Networking.NexusApi.csproj | 4 +-- .../Wabbajack.Networking.Steam.Test.csproj | 16 +++++------ .../Wabbajack.Networking.Steam.csproj | 4 +-- ...ajack.Networking.WabbajackClientApi.csproj | 6 ++-- Wabbajack.Paths.IO.Test/AbsolutePathTests.cs | 2 +- .../Wabbajack.Paths.IO.Test.csproj | 12 ++++---- .../Wabbajack.Paths.Test.csproj | 10 +++---- .../Wabbajack.RateLimiter.Test.csproj | 10 +++---- .../Wabbajack.Server.Lib.csproj | 4 +-- .../Wabbajack.Services.OSIntegrated.csproj | 6 ++-- Wabbajack.VFS.Test/Wabbajack.VFS.Test.csproj | 20 ++++++------- Wabbajack.VFS/Wabbajack.VFS.csproj | 4 +-- 55 files changed, 196 insertions(+), 227 deletions(-) diff --git a/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj b/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj index 7c708116..c926c24a 100644 --- a/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj +++ b/Wabbajack.App.Wpf/Wabbajack.App.Wpf.csproj @@ -74,8 +74,8 @@ - - + + NU1701 @@ -84,22 +84,22 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - - - + + + + - + diff --git a/Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj b/Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj index 2e823132..cc83b43a 100644 --- a/Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj +++ b/Wabbajack.CLI.Builder/Wabbajack.CLI.Builder.csproj @@ -7,11 +7,11 @@ - - - - - + + + + + diff --git a/Wabbajack.CLI/Verbs/ModlistReport.cs b/Wabbajack.CLI/Verbs/ModlistReport.cs index dd9fdd96..81e4e9f7 100644 --- a/Wabbajack.CLI/Verbs/ModlistReport.cs +++ b/Wabbajack.CLI/Verbs/ModlistReport.cs @@ -7,6 +7,7 @@ using System.IO.Compression; using System.Linq; using System.Reflection; using System.Text; +using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Nettle; @@ -41,7 +42,7 @@ public class ModlistReport { var data = await (typeof(ModlistReport).Assembly.GetManifestResourceStream("Wabbajack.CLI.Resources.ModlistReport.html")!).ReadAllAsync(); var func = NettleEngine.GetCompiler().Compile(Encoding.UTF8.GetString(data)); - return func(o); + return await func(o, CancellationToken.None); } public async Task Run(AbsolutePath input) diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj index 21553404..7adaf80a 100644 --- a/Wabbajack.CLI/Wabbajack.CLI.csproj +++ b/Wabbajack.CLI/Wabbajack.CLI.csproj @@ -18,14 +18,14 @@ - - - - - - - - + + + + + + + + diff --git a/Wabbajack.Common/Wabbajack.Common.csproj b/Wabbajack.Common/Wabbajack.Common.csproj index 0f0a7737..79a52ad7 100644 --- a/Wabbajack.Common/Wabbajack.Common.csproj +++ b/Wabbajack.Common/Wabbajack.Common.csproj @@ -33,7 +33,7 @@ - + diff --git a/Wabbajack.Compiler.Test/Wabbajack.Compiler.Test.csproj b/Wabbajack.Compiler.Test/Wabbajack.Compiler.Test.csproj index ac61b703..6ebdfd2d 100644 --- a/Wabbajack.Compiler.Test/Wabbajack.Compiler.Test.csproj +++ b/Wabbajack.Compiler.Test/Wabbajack.Compiler.Test.csproj @@ -9,18 +9,18 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Compiler/Wabbajack.Compiler.csproj b/Wabbajack.Compiler/Wabbajack.Compiler.csproj index 09c34ed7..31f8aa74 100644 --- a/Wabbajack.Compiler/Wabbajack.Compiler.csproj +++ b/Wabbajack.Compiler/Wabbajack.Compiler.csproj @@ -18,7 +18,7 @@ - + diff --git a/Wabbajack.Compression.BSA.Test/Wabbajack.Compression.BSA.Test.csproj b/Wabbajack.Compression.BSA.Test/Wabbajack.Compression.BSA.Test.csproj index 7e05fc46..ac73483d 100644 --- a/Wabbajack.Compression.BSA.Test/Wabbajack.Compression.BSA.Test.csproj +++ b/Wabbajack.Compression.BSA.Test/Wabbajack.Compression.BSA.Test.csproj @@ -7,20 +7,20 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - - + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj index 4e1d94e7..1a73e9c7 100644 --- a/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj +++ b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/Wabbajack.Compression.Zip.Test/Wabbajack.Compression.Zip.Test.csproj b/Wabbajack.Compression.Zip.Test/Wabbajack.Compression.Zip.Test.csproj index db8aa67d..a6a91a3a 100644 --- a/Wabbajack.Compression.Zip.Test/Wabbajack.Compression.Zip.Test.csproj +++ b/Wabbajack.Compression.Zip.Test/Wabbajack.Compression.Zip.Test.csproj @@ -8,17 +8,17 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.DTOs.Test/Wabbajack.DTOs.Test.csproj b/Wabbajack.DTOs.Test/Wabbajack.DTOs.Test.csproj index b0eeac6f..0c8a40eb 100644 --- a/Wabbajack.DTOs.Test/Wabbajack.DTOs.Test.csproj +++ b/Wabbajack.DTOs.Test/Wabbajack.DTOs.Test.csproj @@ -7,23 +7,22 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/Wabbajack.DTOs/Wabbajack.DTOs.csproj b/Wabbajack.DTOs/Wabbajack.DTOs.csproj index ad79c9a1..0a74521b 100644 --- a/Wabbajack.DTOs/Wabbajack.DTOs.csproj +++ b/Wabbajack.DTOs/Wabbajack.DTOs.csproj @@ -12,7 +12,7 @@ - + diff --git a/Wabbajack.Downloaders.Bethesda/Wabbajack.Downloaders.Bethesda.csproj b/Wabbajack.Downloaders.Bethesda/Wabbajack.Downloaders.Bethesda.csproj index 1030ef69..7ba4c931 100644 --- a/Wabbajack.Downloaders.Bethesda/Wabbajack.Downloaders.Bethesda.csproj +++ b/Wabbajack.Downloaders.Bethesda/Wabbajack.Downloaders.Bethesda.csproj @@ -14,7 +14,7 @@ - + diff --git a/Wabbajack.Downloaders.Dispatcher.Test/Wabbajack.Downloaders.Dispatcher.Test.csproj b/Wabbajack.Downloaders.Dispatcher.Test/Wabbajack.Downloaders.Dispatcher.Test.csproj index 85f9a56f..1be48650 100644 --- a/Wabbajack.Downloaders.Dispatcher.Test/Wabbajack.Downloaders.Dispatcher.Test.csproj +++ b/Wabbajack.Downloaders.Dispatcher.Test/Wabbajack.Downloaders.Dispatcher.Test.csproj @@ -7,19 +7,19 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Downloaders.Dispatcher/Wabbajack.Downloaders.Dispatcher.csproj b/Wabbajack.Downloaders.Dispatcher/Wabbajack.Downloaders.Dispatcher.csproj index 5dc9ecb4..42fb60bb 100644 --- a/Wabbajack.Downloaders.Dispatcher/Wabbajack.Downloaders.Dispatcher.csproj +++ b/Wabbajack.Downloaders.Dispatcher/Wabbajack.Downloaders.Dispatcher.csproj @@ -25,7 +25,7 @@ - + diff --git a/Wabbajack.Downloaders.GoogleDrive/Wabbajack.Downloaders.GoogleDrive.csproj b/Wabbajack.Downloaders.GoogleDrive/Wabbajack.Downloaders.GoogleDrive.csproj index c22e139b..4e52d17a 100644 --- a/Wabbajack.Downloaders.GoogleDrive/Wabbajack.Downloaders.GoogleDrive.csproj +++ b/Wabbajack.Downloaders.GoogleDrive/Wabbajack.Downloaders.GoogleDrive.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/Wabbajack.Downloaders.Http/Wabbajack.Downloaders.Http.csproj b/Wabbajack.Downloaders.Http/Wabbajack.Downloaders.Http.csproj index 00088175..b0ccd294 100644 --- a/Wabbajack.Downloaders.Http/Wabbajack.Downloaders.Http.csproj +++ b/Wabbajack.Downloaders.Http/Wabbajack.Downloaders.Http.csproj @@ -17,7 +17,7 @@ - + diff --git a/Wabbajack.Downloaders.IPS4OAuth2Downloader/Wabbajack.Downloaders.IPS4OAuth2Downloader.csproj b/Wabbajack.Downloaders.IPS4OAuth2Downloader/Wabbajack.Downloaders.IPS4OAuth2Downloader.csproj index 90fc1e29..9cd4b885 100644 --- a/Wabbajack.Downloaders.IPS4OAuth2Downloader/Wabbajack.Downloaders.IPS4OAuth2Downloader.csproj +++ b/Wabbajack.Downloaders.IPS4OAuth2Downloader/Wabbajack.Downloaders.IPS4OAuth2Downloader.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/Wabbajack.Downloaders.Manual/Wabbajack.Downloaders.Manual.csproj b/Wabbajack.Downloaders.Manual/Wabbajack.Downloaders.Manual.csproj index 6eabc26a..2c5974a8 100644 --- a/Wabbajack.Downloaders.Manual/Wabbajack.Downloaders.Manual.csproj +++ b/Wabbajack.Downloaders.Manual/Wabbajack.Downloaders.Manual.csproj @@ -12,7 +12,7 @@ - + diff --git a/Wabbajack.Downloaders.MediaFire/Wabbajack.Downloaders.MediaFire.csproj b/Wabbajack.Downloaders.MediaFire/Wabbajack.Downloaders.MediaFire.csproj index e30a6781..d4384934 100644 --- a/Wabbajack.Downloaders.MediaFire/Wabbajack.Downloaders.MediaFire.csproj +++ b/Wabbajack.Downloaders.MediaFire/Wabbajack.Downloaders.MediaFire.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/Wabbajack.Downloaders.Mega/Wabbajack.Downloaders.Mega.csproj b/Wabbajack.Downloaders.Mega/Wabbajack.Downloaders.Mega.csproj index 3c995fe8..811dd5cc 100644 --- a/Wabbajack.Downloaders.Mega/Wabbajack.Downloaders.Mega.csproj +++ b/Wabbajack.Downloaders.Mega/Wabbajack.Downloaders.Mega.csproj @@ -13,7 +13,7 @@ - + diff --git a/Wabbajack.Downloaders.ModDB/Wabbajack.Downloaders.ModDB.csproj b/Wabbajack.Downloaders.ModDB/Wabbajack.Downloaders.ModDB.csproj index 56aa86c5..13ad8a23 100644 --- a/Wabbajack.Downloaders.ModDB/Wabbajack.Downloaders.ModDB.csproj +++ b/Wabbajack.Downloaders.ModDB/Wabbajack.Downloaders.ModDB.csproj @@ -13,9 +13,9 @@ - + - + diff --git a/Wabbajack.Downloaders.VerificationCache/Wabbajack.Downloaders.VerificationCache.csproj b/Wabbajack.Downloaders.VerificationCache/Wabbajack.Downloaders.VerificationCache.csproj index 8be4fe8f..5c9e610b 100644 --- a/Wabbajack.Downloaders.VerificationCache/Wabbajack.Downloaders.VerificationCache.csproj +++ b/Wabbajack.Downloaders.VerificationCache/Wabbajack.Downloaders.VerificationCache.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/Wabbajack.Downloaders.WabbajackCDN/Wabbajack.Downloaders.WabbajackCDN.csproj b/Wabbajack.Downloaders.WabbajackCDN/Wabbajack.Downloaders.WabbajackCDN.csproj index f0dd21e1..e7b56569 100644 --- a/Wabbajack.Downloaders.WabbajackCDN/Wabbajack.Downloaders.WabbajackCDN.csproj +++ b/Wabbajack.Downloaders.WabbajackCDN/Wabbajack.Downloaders.WabbajackCDN.csproj @@ -15,7 +15,7 @@ - + diff --git a/Wabbajack.FileExtractor.Test/Wabbajack.FileExtractor.Test.csproj b/Wabbajack.FileExtractor.Test/Wabbajack.FileExtractor.Test.csproj index 55d9b16f..49ef9159 100644 --- a/Wabbajack.FileExtractor.Test/Wabbajack.FileExtractor.Test.csproj +++ b/Wabbajack.FileExtractor.Test/Wabbajack.FileExtractor.Test.csproj @@ -7,21 +7,21 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - - - + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.FileExtractor/Wabbajack.FileExtractor.csproj b/Wabbajack.FileExtractor/Wabbajack.FileExtractor.csproj index 0874c803..41c1a236 100644 --- a/Wabbajack.FileExtractor/Wabbajack.FileExtractor.csproj +++ b/Wabbajack.FileExtractor/Wabbajack.FileExtractor.csproj @@ -29,7 +29,7 @@ - + diff --git a/Wabbajack.Hashing.PHash.Test/Wabbajack.Hashing.PHash.Test.csproj b/Wabbajack.Hashing.PHash.Test/Wabbajack.Hashing.PHash.Test.csproj index 290a02ed..da6b6c5c 100644 --- a/Wabbajack.Hashing.PHash.Test/Wabbajack.Hashing.PHash.Test.csproj +++ b/Wabbajack.Hashing.PHash.Test/Wabbajack.Hashing.PHash.Test.csproj @@ -7,20 +7,20 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Hashing.xxHash64.Benchmark/Wabbajack.Hashing.xxHash64.Benchmark.csproj b/Wabbajack.Hashing.xxHash64.Benchmark/Wabbajack.Hashing.xxHash64.Benchmark.csproj index ecd4d5b6..9881b56c 100644 --- a/Wabbajack.Hashing.xxHash64.Benchmark/Wabbajack.Hashing.xxHash64.Benchmark.csproj +++ b/Wabbajack.Hashing.xxHash64.Benchmark/Wabbajack.Hashing.xxHash64.Benchmark.csproj @@ -8,7 +8,7 @@ - + diff --git a/Wabbajack.Hashing.xxHash64.Test/HashTests.cs b/Wabbajack.Hashing.xxHash64.Test/HashTests.cs index 630a1646..ea382ce3 100644 --- a/Wabbajack.Hashing.xxHash64.Test/HashTests.cs +++ b/Wabbajack.Hashing.xxHash64.Test/HashTests.cs @@ -1,6 +1,5 @@ using System; using System.Data.HashFunction.xxHash; -using FsCheck.Xunit; using Xunit; namespace Wabbajack.Hashing.xxHash64.Test; @@ -11,32 +10,7 @@ public class HashTests private static readonly Hash Hash1a = new(1); private static readonly Hash Hash2 = new(2); - [Property(MaxTest = 1024)] - public void CompareResults(byte[] data) - { - var hash = new xxHashAlgorithm(0); - Assert.Equal(HashOld(data), hash.HashBytes(data)); - } - - [Property(MaxTest = 1024 * 1024)] - public void ToFromBase64(ulong hash) - { - var a = new Hash(hash); - var b = Hash.FromBase64(a.ToBase64()); - Assert.Equal(a, b); - } - - [Property(MaxTest = 1024 * 1024)] - public void ToFromBase64Span(ulong hash) - { - hash = ulong.MaxValue - hash; - Span data = stackalloc byte[12]; - var a = new Hash(hash); - a.ToBase64(data); - var b = Hash.FromBase64(data); - Assert.Equal(a, b); - } - + private ulong HashOld(byte[] data) { var config = new xxHashConfig {HashSizeInBits = 64}; diff --git a/Wabbajack.Hashing.xxHash64.Test/Wabbajack.Hashing.xxHash64.Test.csproj b/Wabbajack.Hashing.xxHash64.Test/Wabbajack.Hashing.xxHash64.Test.csproj index 3bd30960..dc9a44c5 100644 --- a/Wabbajack.Hashing.xxHash64.Test/Wabbajack.Hashing.xxHash64.Test.csproj +++ b/Wabbajack.Hashing.xxHash64.Test/Wabbajack.Hashing.xxHash64.Test.csproj @@ -7,20 +7,18 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Hashing.xxHash64/HashRelativePath.cs b/Wabbajack.Hashing.xxHash64/HashRelativePath.cs index b09d0141..3d8aab27 100644 --- a/Wabbajack.Hashing.xxHash64/HashRelativePath.cs +++ b/Wabbajack.Hashing.xxHash64/HashRelativePath.cs @@ -31,7 +31,7 @@ public readonly struct HashRelativePath : IPath, IEquatable, I public override bool Equals(object? obj) { - return obj is FullPath path && Equals(path); + return obj is HashRelativePath path && Equals(path); } public override int GetHashCode() diff --git a/Wabbajack.Installer.Test/Wabbajack.Installer.Test.csproj b/Wabbajack.Installer.Test/Wabbajack.Installer.Test.csproj index 6d27a0ff..414f2d25 100644 --- a/Wabbajack.Installer.Test/Wabbajack.Installer.Test.csproj +++ b/Wabbajack.Installer.Test/Wabbajack.Installer.Test.csproj @@ -7,18 +7,18 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Installer/Wabbajack.Installer.csproj b/Wabbajack.Installer/Wabbajack.Installer.csproj index d76063bb..7f636eeb 100644 --- a/Wabbajack.Installer/Wabbajack.Installer.csproj +++ b/Wabbajack.Installer/Wabbajack.Installer.csproj @@ -24,7 +24,7 @@ - + diff --git a/Wabbajack.Launcher/App.axaml b/Wabbajack.Launcher/App.axaml index e9f4b8c4..27a45638 100644 --- a/Wabbajack.Launcher/App.axaml +++ b/Wabbajack.Launcher/App.axaml @@ -7,6 +7,6 @@ - + \ No newline at end of file diff --git a/Wabbajack.Launcher/ViewLocator.cs b/Wabbajack.Launcher/ViewLocator.cs index f81f112a..093f6a36 100644 --- a/Wabbajack.Launcher/ViewLocator.cs +++ b/Wabbajack.Launcher/ViewLocator.cs @@ -9,7 +9,7 @@ public class ViewLocator : IDataTemplate { public bool SupportsRecycling => false; - public IControl Build(object? data) + public Control Build(object? data) { var name = data!.GetType().FullName!.Replace("ViewModel", "View"); var type = Type.GetType(name); diff --git a/Wabbajack.Launcher/ViewModels/MainWindowViewModel.cs b/Wabbajack.Launcher/ViewModels/MainWindowViewModel.cs index 75472aa3..47e16982 100644 --- a/Wabbajack.Launcher/ViewModels/MainWindowViewModel.cs +++ b/Wabbajack.Launcher/ViewModels/MainWindowViewModel.cs @@ -10,13 +10,10 @@ using System.Text.Json.Serialization; using System.Threading; using System.Threading.Tasks; using JetBrains.Annotations; -using MessageBox.Avalonia.DTO; +using MsBox.Avalonia.Dto; using ReactiveUI.Fody.Helpers; using Wabbajack.Common; -using Wabbajack.Compression.Zip; using Wabbajack.Downloaders.Http; -using Wabbajack.DTOs; -using Wabbajack.DTOs.DownloadStates; using Wabbajack.DTOs.Logins; using Wabbajack.Networking.Http.Interfaces; using Wabbajack.Networking.NexusApi; @@ -224,8 +221,8 @@ public class MainWindowViewModel : ViewModelBase var entryPoint = KnownFolders.EntryPoint; if (KnownFolders.IsInSpecialFolder(entryPoint) || entryPoint.Depth <= 1) { - var msg = MessageBox.Avalonia.MessageBoxManager - .GetMessageBoxStandardWindow(new MessageBoxStandardParams() + var msg = MsBox.Avalonia.MessageBoxManager + .GetMessageBoxStandard(new MessageBoxStandardParams() { Topmost = true, ShowInCenter = true, @@ -233,22 +230,22 @@ public class MainWindowViewModel : ViewModelBase ContentMessage = "Cannot start in the root of a drive, or protected folder locations such as Downloads, Desktop etc.\nPlease move Wabbajack to another folder, creating a new folder if necessary ( example : C:\\Wabbajack\\), outside of these locations." }); - var result = await msg.Show(); + var result = await msg.ShowAsync(); Environment.Exit(1); } } catch (Exception ex) { Status = ex.Message; - var msg = MessageBox.Avalonia.MessageBoxManager - .GetMessageBoxStandardWindow(new MessageBoxStandardParams() + var msg = MsBox.Avalonia.MessageBoxManager + .GetMessageBoxStandard(new MessageBoxStandardParams() { Topmost = true, ShowInCenter = true, ContentTitle = "Wabbajack Launcher: Error", ContentMessage = ex.ToString() }); - var result = await msg.Show(); + var result = await msg.ShowAsync(); Environment.Exit(1); } } diff --git a/Wabbajack.Launcher/Views/MainWindow.axaml.cs b/Wabbajack.Launcher/Views/MainWindow.axaml.cs index 0456089a..70d06b5b 100644 --- a/Wabbajack.Launcher/Views/MainWindow.axaml.cs +++ b/Wabbajack.Launcher/Views/MainWindow.axaml.cs @@ -4,7 +4,7 @@ using Avalonia.Markup.Xaml; namespace Wabbajack.Launcher.Views; -public class MainWindow : Window +public partial class MainWindow : Window { public MainWindow() { diff --git a/Wabbajack.Launcher/Wabbajack.Launcher.csproj b/Wabbajack.Launcher/Wabbajack.Launcher.csproj index 5336e142..a4ad667a 100644 --- a/Wabbajack.Launcher/Wabbajack.Launcher.csproj +++ b/Wabbajack.Launcher/Wabbajack.Launcher.csproj @@ -19,20 +19,20 @@ net8.0-windows - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - + + + + + + + - + diff --git a/Wabbajack.Networking.Discord/Wabbajack.Networking.Discord.csproj b/Wabbajack.Networking.Discord/Wabbajack.Networking.Discord.csproj index c05b4024..fbfff7f5 100644 --- a/Wabbajack.Networking.Discord/Wabbajack.Networking.Discord.csproj +++ b/Wabbajack.Networking.Discord/Wabbajack.Networking.Discord.csproj @@ -16,7 +16,7 @@ - + diff --git a/Wabbajack.Networking.GitHub/Wabbajack.Networking.GitHub.csproj b/Wabbajack.Networking.GitHub/Wabbajack.Networking.GitHub.csproj index ebb07835..14c2284e 100644 --- a/Wabbajack.Networking.GitHub/Wabbajack.Networking.GitHub.csproj +++ b/Wabbajack.Networking.GitHub/Wabbajack.Networking.GitHub.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/Wabbajack.Networking.Http.Test/Wabbajack.Networking.Http.Test.csproj b/Wabbajack.Networking.Http.Test/Wabbajack.Networking.Http.Test.csproj index f0762e54..59940fe7 100644 --- a/Wabbajack.Networking.Http.Test/Wabbajack.Networking.Http.Test.csproj +++ b/Wabbajack.Networking.Http.Test/Wabbajack.Networking.Http.Test.csproj @@ -8,17 +8,17 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Networking.Http/Wabbajack.Networking.Http.csproj b/Wabbajack.Networking.Http/Wabbajack.Networking.Http.csproj index eb64f515..68fd756d 100644 --- a/Wabbajack.Networking.Http/Wabbajack.Networking.Http.csproj +++ b/Wabbajack.Networking.Http/Wabbajack.Networking.Http.csproj @@ -9,7 +9,7 @@ - + diff --git a/Wabbajack.Networking.NexusApi.Test/Wabbajack.Networking.NexusApi.Test.csproj b/Wabbajack.Networking.NexusApi.Test/Wabbajack.Networking.NexusApi.Test.csproj index 3b8e6b96..816b1b47 100644 --- a/Wabbajack.Networking.NexusApi.Test/Wabbajack.Networking.NexusApi.Test.csproj +++ b/Wabbajack.Networking.NexusApi.Test/Wabbajack.Networking.NexusApi.Test.csproj @@ -7,19 +7,19 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Networking.NexusApi/Wabbajack.Networking.NexusApi.csproj b/Wabbajack.Networking.NexusApi/Wabbajack.Networking.NexusApi.csproj index e2de94ee..03ec81c8 100644 --- a/Wabbajack.Networking.NexusApi/Wabbajack.Networking.NexusApi.csproj +++ b/Wabbajack.Networking.NexusApi/Wabbajack.Networking.NexusApi.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/Wabbajack.Networking.Steam.Test/Wabbajack.Networking.Steam.Test.csproj b/Wabbajack.Networking.Steam.Test/Wabbajack.Networking.Steam.Test.csproj index 67e78994..8994fc07 100644 --- a/Wabbajack.Networking.Steam.Test/Wabbajack.Networking.Steam.Test.csproj +++ b/Wabbajack.Networking.Steam.Test/Wabbajack.Networking.Steam.Test.csproj @@ -8,20 +8,20 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - - + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Networking.Steam/Wabbajack.Networking.Steam.csproj b/Wabbajack.Networking.Steam/Wabbajack.Networking.Steam.csproj index 2a505ddb..66761175 100644 --- a/Wabbajack.Networking.Steam/Wabbajack.Networking.Steam.csproj +++ b/Wabbajack.Networking.Steam/Wabbajack.Networking.Steam.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Wabbajack.Networking.WabbajackClientApi/Wabbajack.Networking.WabbajackClientApi.csproj b/Wabbajack.Networking.WabbajackClientApi/Wabbajack.Networking.WabbajackClientApi.csproj index 8aaefb95..8a1328a9 100644 --- a/Wabbajack.Networking.WabbajackClientApi/Wabbajack.Networking.WabbajackClientApi.csproj +++ b/Wabbajack.Networking.WabbajackClientApi/Wabbajack.Networking.WabbajackClientApi.csproj @@ -12,9 +12,9 @@ - - - + + + diff --git a/Wabbajack.Paths.IO.Test/AbsolutePathTests.cs b/Wabbajack.Paths.IO.Test/AbsolutePathTests.cs index a43f6de6..0bf26be9 100644 --- a/Wabbajack.Paths.IO.Test/AbsolutePathTests.cs +++ b/Wabbajack.Paths.IO.Test/AbsolutePathTests.cs @@ -29,7 +29,7 @@ public class AbsolutePathTests } [Fact] - public async ValueTask CanReadAndWriteFilesAsync() + public async Task CanReadAndWriteFilesAsync() { var data = "This is a test"; var file = GetTempFile(); diff --git a/Wabbajack.Paths.IO.Test/Wabbajack.Paths.IO.Test.csproj b/Wabbajack.Paths.IO.Test/Wabbajack.Paths.IO.Test.csproj index 9283f503..87291b33 100644 --- a/Wabbajack.Paths.IO.Test/Wabbajack.Paths.IO.Test.csproj +++ b/Wabbajack.Paths.IO.Test/Wabbajack.Paths.IO.Test.csproj @@ -7,18 +7,18 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Paths.Test/Wabbajack.Paths.Test.csproj b/Wabbajack.Paths.Test/Wabbajack.Paths.Test.csproj index 71630d2e..165c0bc8 100644 --- a/Wabbajack.Paths.Test/Wabbajack.Paths.Test.csproj +++ b/Wabbajack.Paths.Test/Wabbajack.Paths.Test.csproj @@ -7,17 +7,17 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.RateLimiter.Test/Wabbajack.RateLimiter.Test.csproj b/Wabbajack.RateLimiter.Test/Wabbajack.RateLimiter.Test.csproj index d09b9b77..41192da1 100644 --- a/Wabbajack.RateLimiter.Test/Wabbajack.RateLimiter.Test.csproj +++ b/Wabbajack.RateLimiter.Test/Wabbajack.RateLimiter.Test.csproj @@ -8,17 +8,17 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.Server.Lib/Wabbajack.Server.Lib.csproj b/Wabbajack.Server.Lib/Wabbajack.Server.Lib.csproj index 351f19c5..526026ec 100644 --- a/Wabbajack.Server.Lib/Wabbajack.Server.Lib.csproj +++ b/Wabbajack.Server.Lib/Wabbajack.Server.Lib.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/Wabbajack.Services.OSIntegrated/Wabbajack.Services.OSIntegrated.csproj b/Wabbajack.Services.OSIntegrated/Wabbajack.Services.OSIntegrated.csproj index 0a61e5a8..703cdb3e 100644 --- a/Wabbajack.Services.OSIntegrated/Wabbajack.Services.OSIntegrated.csproj +++ b/Wabbajack.Services.OSIntegrated/Wabbajack.Services.OSIntegrated.csproj @@ -12,12 +12,12 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/Wabbajack.VFS.Test/Wabbajack.VFS.Test.csproj b/Wabbajack.VFS.Test/Wabbajack.VFS.Test.csproj index 9a11a2dd..7d79ece1 100644 --- a/Wabbajack.VFS.Test/Wabbajack.VFS.Test.csproj +++ b/Wabbajack.VFS.Test/Wabbajack.VFS.Test.csproj @@ -7,25 +7,25 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - - - - + + + + + - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Wabbajack.VFS/Wabbajack.VFS.csproj b/Wabbajack.VFS/Wabbajack.VFS.csproj index 50dd72e6..0631cd8f 100644 --- a/Wabbajack.VFS/Wabbajack.VFS.csproj +++ b/Wabbajack.VFS/Wabbajack.VFS.csproj @@ -12,8 +12,8 @@ - - + + From 0c11f11839ff86e997f67b54556059aee0f04dbe Mon Sep 17 00:00:00 2001 From: Luca <52624146+EzioTheDeadPoet@users.noreply.github.com> Date: Wed, 15 Nov 2023 04:19:53 +0100 Subject: [PATCH 02/12] Changes for an official Version 3.3.1.0 Release (#2439) * added more visible error messages to avoid user confusion added hard drive free space detection, added red error message text, removed overwrite checkbox, added wiki button link extended the error text for starting wabbajack in protected location removed debug code shortened error message to fit in text box * restored warning removed in error, updated changelog, removed debug includes * Update InstallerVM.cs * Update InstallerVM.cs * Update MainWindowViewModel.cs * added json optional flag to only show version number over modlist image in installer view, if the modlist image already contains the title removed debug code change to pascal case and match existing code style update changelog * Fix manual downloads sometimes launching in browser * Fix manual downloads from secure servers * Remove duplicate user agent code * Create configuration project and performance settings * Bind new performance settings to UI * Use performance settings to limit maximum memory per download * Remove unused settings and related classes * Updated CHANGELOG.md * update CHANGELOG.md * moved the existing files popup to an error message , heralding the return of the overwrite install checkbox * added newline * reverted erroneous edit * gogID for fallout4 added * update CHANGELOG.md * Fix deadlock when loading new settings * change folder/directory check logic * update CHANGELOG.md * revert unnecessary change * update CHANGELOG.md * Bump Wabbajack to .NET 7 * Bump ReactiveUI packages & deps * Update GameFinder to 4.0.0 * Update CHANGELOG.md * Update CHANGELOG.md * Don't try to add cookies if array is empty * Start download from scratch if .download_package can't be parsed * Log when application is shutting down * update CHANGELOG.md * exclude the "SP Consent Message" on nexus from the cleared iframes * Actually use the --outputPath compile option if the user provides one It was just not being used, defaulting to the parent of installPath. it still does, if the user does not specify a directory using --outputPath * update Wabbajack.Compression.BSA dependencies * improve log message to include storage space reference * clearing temp folder when the app closes * update logging message * update CHANGELOG.md * update CHANGELOG.md * update logging for possible exceptions thrown when clearing temp folder * fix cloudflare captcha --------- Co-authored-by: JanuarySnow Co-authored-by: JanuarySnow <85711747+JanuarySnow@users.noreply.github.com> Co-authored-by: UrbanCMC Co-authored-by: trawzified <55751269+tr4wzified@users.noreply.github.com> Co-authored-by: Marco Antonio Jaguaribe Costa Co-authored-by: Timothy Baldridge --- CHANGELOG.md | 19 +++++++++++-- .../UserIntervention/ManualDownloadHandler.cs | 2 +- Wabbajack.App.Wpf/Views/MainWindow.xaml.cs | 27 +++++++++++++++++++ Wabbajack.CLI/Verbs/Compile.cs | 7 +++++ Wabbajack.Common/HttpExtensions.cs | 6 ++++- .../Wabbajack.Compression.BSA.csproj | 2 +- .../ResumableDownloader.cs | 13 +++++++-- Wabbajack.VFS/VirtualFile.cs | 4 ++- 8 files changed, 72 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fb7d354..623fa999 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,28 @@ ### Changelog -#### Version - 3.3.0.0 - 10/13/2023 +#### Version - 3.3.1.0 - TBA +* Fixed `--outputPath` not being used for the CLI `compile` (thanks to @majcosta for fixing that) +* Improved Log message for cases where low storage on the drive Wabbajack is installed on causes compiles to fail + * **To list authors still compiling on Wabbajack 3.0.5.0:** + This is what is causing your compiles with any newer Wabbajack version to fail. + The reason the compile works is that you already have a full cache for all your mods and BSAs with that version and WJ only needs to add a small amount of new files to that cache and needs less temporary drive space because of that. Any version higher than 3.0.5.0 needs a new cache that can't be converted and needs WJ to unpack every Archive (zip/rar/7z/BSA/BA2) and add the files inside to the new cache. + Finding ways to reduce the storage footprint when compiling huge lists for the first time (since any following compiles won't need that space requirement anymore) will be investigated. +* Wabbajack will now clean the `temp` folder when closed +* Updated Dependencies + * LZ4 to version 1.3.7-beta + * SharpZipLib to version 1.4.2 + +#### Version - 3.3.0.1 - (Was only a Pre-Release) +* Fixed Manual Downloading on NexusMods being blocked by a hidden cookie consent banner + +#### Version - 3.3.0.0 - 10/13/2023 (taken down due to build issues) * Fixed some UI issues arising from 3.2.0.0 changes - more informative error text, wiki link button * Added optional JSON flag for `DisplayVersionOnlyInInstallerView` to enable the installer image to only show version number. * Fixed manual downloader downloading in the OS's "Downloads" folder * Added RAM Limit setting for downloads * This fixes the High RAM usage (and sometimes app crashes) on some Hardware + Very High Speed Internet Connection Systems * Added Fallout 4 (GOG) to the index -* Updated App to .NET 7.0 +* Updated App to .NET 8.0 * Should fix random crashes on some systems * Updated GameFinder to 4.0.0 diff --git a/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs b/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs index 003099bf..8ed363ce 100644 --- a/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs +++ b/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs @@ -21,7 +21,7 @@ public class ManualDownloadHandler : BrowserWindowViewModel var task = WaitForDownloadUri(token, async () => { - await RunJavaScript("Array.from(document.getElementsByTagName(\"iframe\")).forEach(f => f.remove())"); + await RunJavaScript("Array.from(document.getElementsByTagName(\"iframe\")).forEach(f => {if (f.title != \"SP Consent Message\" && !f.src.includes(\"challenges.cloudflare.com\")) f.remove()})"); }); await NavigateTo(md.Url); var uri = await task; diff --git a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs index 8f7aba3c..6f324726 100644 --- a/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs +++ b/Wabbajack.App.Wpf/Views/MainWindow.xaml.cs @@ -1,6 +1,7 @@ using System; using System.Collections.ObjectModel; using System.ComponentModel; +using System.IO; using System.Reactive.Linq; using System.Windows; using System.Windows.Input; @@ -45,7 +46,33 @@ namespace Wabbajack Closed += (s, e) => { + _logger.LogInformation("Beginning shutdown..."); _mwvm.CancelRunningTasks(TimeSpan.FromSeconds(10)); + + // Cleaning the temp folder when the app closes since it can take up multiple Gigabytes of Storage + var tempDirectory = Environment.CurrentDirectory + "\\temp"; + _logger.LogInformation("Clearing {TempDir}",tempDirectory); + try + { + var directoryInfo = new DirectoryInfo(tempDirectory); + + foreach (var file in directoryInfo.EnumerateFiles()) + { + file.Delete(); + } + foreach (var dir in directoryInfo.EnumerateDirectories()) + { + dir.Delete(true); + } + + _logger.LogInformation("Finished clearing {TempDir}",tempDirectory); + } + catch (Exception ex) + { + _logger.LogError(ex,"Failed clearing {TempDir}",tempDirectory); + } + + Application.Current.Shutdown(); }; diff --git a/Wabbajack.CLI/Verbs/Compile.cs b/Wabbajack.CLI/Verbs/Compile.cs index 692a8e0b..969a5d7e 100644 --- a/Wabbajack.CLI/Verbs/Compile.cs +++ b/Wabbajack.CLI/Verbs/Compile.cs @@ -11,6 +11,7 @@ using Wabbajack.Downloaders.GameFile; using Wabbajack.DTOs.JsonConverters; using Wabbajack.Networking.WabbajackClientApi; using Wabbajack.Paths; +using Wabbajack.Paths.IO; using Wabbajack.VFS; namespace Wabbajack.CLI.Verbs; @@ -58,6 +59,12 @@ public class Compile inferredSettings.UseGamePaths = true; + if(outputPath.DirectoryExists()) + { + inferredSettings.OutputFile = outputPath.Combine(inferredSettings.OutputFile.FileName); + _logger.LogInformation("Output file will be in: {outputPath}", inferredSettings.OutputFile); + } + var compiler = MO2Compiler.Create(_serviceProvider, inferredSettings); var result = await compiler.Begin(token); if (!result) diff --git a/Wabbajack.Common/HttpExtensions.cs b/Wabbajack.Common/HttpExtensions.cs index b2ca8d39..dee1b3d0 100644 --- a/Wabbajack.Common/HttpExtensions.cs +++ b/Wabbajack.Common/HttpExtensions.cs @@ -18,7 +18,11 @@ public static class HttpExtensions "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"; public static HttpRequestMessage AddCookies(this HttpRequestMessage msg, Cookie[] cookies) { - msg.Headers.Add("Cookie", string.Join(";", cookies.Select(c => $"{c.Name}={c.Value}"))); + if (cookies.Length > 0) + { + msg.Headers.Add("Cookie", string.Join(";", cookies.Select(c => $"{c.Name}={c.Value}"))); + } + return msg; } diff --git a/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj index 1a73e9c7..14f1cf60 100644 --- a/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj +++ b/Wabbajack.Compression.BSA/Wabbajack.Compression.BSA.csproj @@ -18,7 +18,7 @@ - + diff --git a/Wabbajack.Networking.Http/ResumableDownloader.cs b/Wabbajack.Networking.Http/ResumableDownloader.cs index 025715e4..078de77d 100644 --- a/Wabbajack.Networking.Http/ResumableDownloader.cs +++ b/Wabbajack.Networking.Http/ResumableDownloader.cs @@ -166,8 +166,17 @@ internal class ResumableDownloader return null; } - var packageJson = _packagePath.ReadAllText(); - return JsonSerializer.Deserialize(packageJson); + try + { + var packageJson = _packagePath.ReadAllText(); + return JsonSerializer.Deserialize(packageJson); + } + catch (JsonException ex) + { + _logger.LogWarning(ex, "Package for '{name}' couldn't be parsed. Deleting package and starting from scratch...", _outputPath.FileName.ToString()); + DeletePackage(); + return null; + } } private void SavePackage(DownloadPackage package) diff --git a/Wabbajack.VFS/VirtualFile.cs b/Wabbajack.VFS/VirtualFile.cs index ea2324c8..9bb33bd6 100644 --- a/Wabbajack.VFS/VirtualFile.cs +++ b/Wabbajack.VFS/VirtualFile.cs @@ -243,7 +243,9 @@ public class VirtualFile } catch (Exception ex) { - context.Logger.LogError(ex, "Error while examining the contents of {path}", relPath.FileName); + context.Logger.LogError(ex, "Error while examining the contents of {Path}", relPath.FileName); + if (!ex.Message.Equals("End of stream before end of limit")) throw; + context.Logger.LogError("Not enough free storage space in {TempFolder}",Environment.CurrentDirectory+"\\temp"); throw; } From 7be18e849743b200ca79eff30647893abd199333 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Sun, 19 Nov 2023 14:07:46 -0700 Subject: [PATCH 03/12] 3.4.0.0 Release --- CHANGELOG.md | 4 +++- .../UserIntervention/ManualDownloadHandler.cs | 1 + .../View Models/BrowserWindowViewModel.cs | 13 ++++++++++--- Wabbajack.App.Wpf/Views/BrowserView.xaml.cs | 2 ++ Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs | 2 +- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 623fa999..4c209697 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### Changelog -#### Version - 3.3.1.0 - TBA +#### Version - 3.4.0.0 - 11/19/2023 * Fixed `--outputPath` not being used for the CLI `compile` (thanks to @majcosta for fixing that) * Improved Log message for cases where low storage on the drive Wabbajack is installed on causes compiles to fail * **To list authors still compiling on Wabbajack 3.0.5.0:** @@ -11,6 +11,8 @@ * Updated Dependencies * LZ4 to version 1.3.7-beta * SharpZipLib to version 1.4.2 +* Fully upgraded to .NET 8.0 +* Fixed the WebView2 based browser window to no longer crash the application when closed #### Version - 3.3.0.1 - (Was only a Pre-Release) * Fixed Manual Downloading on NexusMods being blocked by a hidden cookie consent banner diff --git a/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs b/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs index 8ed363ce..2c21a320 100644 --- a/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs +++ b/Wabbajack.App.Wpf/UserIntervention/ManualDownloadHandler.cs @@ -27,5 +27,6 @@ public class ManualDownloadHandler : BrowserWindowViewModel var uri = await task; Intervention.Finish(uri); + await Task.Delay(5000, CancellationToken.None); } } \ No newline at end of file diff --git a/Wabbajack.App.Wpf/View Models/BrowserWindowViewModel.cs b/Wabbajack.App.Wpf/View Models/BrowserWindowViewModel.cs index d0aa4a4c..5daee154 100644 --- a/Wabbajack.App.Wpf/View Models/BrowserWindowViewModel.cs +++ b/Wabbajack.App.Wpf/View Models/BrowserWindowViewModel.cs @@ -120,20 +120,27 @@ public abstract class BrowserWindowViewModel : ViewModel while (_browser.CoreWebView2 == null) await Task.Delay(10, token); - _browser.CoreWebView2.DownloadStarting += (sender, args) => + EventHandler handler = null!; + + handler = (_, args) => { try { source.SetResult(new Uri(args.DownloadOperation.Uri)); + _browser.CoreWebView2.DownloadStarting -= handler; } catch (Exception) { - source.SetCanceled(); + source.SetCanceled(token); + _browser.CoreWebView2.DownloadStarting -= handler; } args.Cancel = true; args.Handled = true; }; + + _browser.CoreWebView2.DownloadStarting += handler; + Uri uri; while (true) @@ -184,7 +191,7 @@ public abstract class BrowserWindowViewModel : ViewModel catch (Exception) { source.SetCanceled(); - } + } }; await source.Task; diff --git a/Wabbajack.App.Wpf/Views/BrowserView.xaml.cs b/Wabbajack.App.Wpf/Views/BrowserView.xaml.cs index 3a88cb24..52a68d52 100644 --- a/Wabbajack.App.Wpf/Views/BrowserView.xaml.cs +++ b/Wabbajack.App.Wpf/Views/BrowserView.xaml.cs @@ -1,4 +1,6 @@ +using System; using System.Windows.Controls; +using Microsoft.Web.WebView2.WinForms; using ReactiveUI; namespace Wabbajack.Views; diff --git a/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs b/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs index 267de3b9..175de016 100644 --- a/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs +++ b/Wabbajack.App.Wpf/Views/BrowserWindow.xaml.cs @@ -2,6 +2,7 @@ using System; using System.Reactive.Disposables; using System.Reactive.Linq; using System.Threading; +using System.Threading.Tasks; using System.Windows; using System.Windows.Input; using MahApps.Metro.Controls; @@ -57,7 +58,6 @@ public partial class BrowserWindow : MetroWindow .ContinueWith(_ => Dispatcher.Invoke(() => { Close(); - Browser.Dispose(); Browser = null; })); } From 292bfb899fe253b136ed22eca369f6bfc354a6e9 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Sun, 19 Nov 2023 14:36:56 -0700 Subject: [PATCH 04/12] Don't build single file for the main WJ app --- buildall.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildall.bat b/buildall.bat index f587ea41..4a702a38 100644 --- a/buildall.bat +++ b/buildall.bat @@ -7,7 +7,7 @@ mkdir c:\tmp\publish-wj dotnet clean dotnet restore -dotnet publish Wabbajack.App.Wpf\Wabbajack.App.Wpf.csproj --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app /p:PublishReadyToRun=true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded +dotnet publish Wabbajack.App.Wpf\Wabbajack.App.Wpf.csproj --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app /p:PublishReadyToRun=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded dotnet publish Wabbajack.Launcher\Wabbajack.Launcher.csproj --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\launcher /p:PublishReadyToRun=true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded dotnet publish c:\oss\Wabbajack\Wabbajack.CLI\Wabbajack.CLI.csproj --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app --self-contained /p:DebugType=embedded "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 8c26a8e0bf3e70eb89721cc4d86a87137153ccba c:\tmp\publish-wj\app\Wabbajack.exe From b19d1aa1753c63baff16ffd37144aedcc707e5f0 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Sun, 19 Nov 2023 15:15:12 -0700 Subject: [PATCH 05/12] Fixes for 3.4.0.0 --- Wabbajack.Launcher/Program.cs | 32 ++++++++++++++++++++++++++++++++ buildall.bat | 7 +++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Wabbajack.Launcher/Program.cs b/Wabbajack.Launcher/Program.cs index f2dab596..04674ce9 100644 --- a/Wabbajack.Launcher/Program.cs +++ b/Wabbajack.Launcher/Program.cs @@ -1,11 +1,14 @@ using System; using System.Net.Http; using System.Runtime.InteropServices; +using System.Threading.Tasks; using Avalonia; using Avalonia.ReactiveUI; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using Wabbajack.Common; +using Wabbajack.Configuration; using Wabbajack.Downloaders.Http; using Wabbajack.DTOs; using Wabbajack.DTOs.JsonConverters; @@ -16,7 +19,9 @@ using Wabbajack.Networking.Http; using Wabbajack.Networking.Http.Interfaces; using Wabbajack.Networking.NexusApi; using Wabbajack.Paths; +using Wabbajack.Paths.IO; using Wabbajack.RateLimiter; +using Wabbajack.Services.OSIntegrated; using Wabbajack.Services.OSIntegrated.TokenProviders; namespace Wabbajack.Launcher; @@ -36,6 +41,20 @@ internal class Program services.AddNexusApi(); services.AddDTOConverters(); services.AddDTOSerializer(); + + services.AddSingleton(s => new Services.OSIntegrated.Configuration + { + EncryptedDataLocation = KnownFolders.WabbajackAppLocal.Combine("encrypted"), + ModListsDownloadLocation = KnownFolders.EntryPoint.Combine("downloaded_mod_lists"), + SavedSettingsLocation = KnownFolders.WabbajackAppLocal.Combine("saved_settings"), + LogLocation = KnownFolders.LauncherAwarePath.Combine("logs"), + ImageCacheLocation = KnownFolders.WabbajackAppLocal.Combine("image_cache") + }); + + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(s => GetAppSettings(s, MainSettings.SettingsFileName)); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton, NexusApiTokenProvider>(); @@ -62,6 +81,19 @@ internal class Program BuildAvaloniaApp() .StartWithClassicDesktopLifetime(args); } + + private static MainSettings GetAppSettings(IServiceProvider provider, string name) + { + var settingsManager = provider.GetRequiredService(); + var settings = Task.Run(() => settingsManager.Load(name)).Result; + if (settings.Upgrade()) + { + settingsManager.Save(MainSettings.SettingsFileName, settings).FireAndForget(); + } + + return settings; + } + public static IServiceProvider Services { get; set; } // Avalonia configuration, don't remove; also used by visual designer. diff --git a/buildall.bat b/buildall.bat index 4a702a38..b43059c4 100644 --- a/buildall.bat +++ b/buildall.bat @@ -6,10 +6,9 @@ SET /p VERSION= Date: Wed, 20 Dec 2023 21:01:01 +0100 Subject: [PATCH 06/12] Add support for Final Fantasy 7: Remake Intergrade (#2454) * Update Game.cs * Update GameRegistry.cs * Update CHANGELOG.md * Update CHANGELOG.md Co-authored-by: UrbanCMC --------- Co-authored-by: cacophony-wj Co-authored-by: UrbanCMC --- CHANGELOG.md | 3 +++ Wabbajack.DTOs/Game/Game.cs | 2 ++ Wabbajack.DTOs/Game/GameRegistry.cs | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c209697..5a694186 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ### Changelog +#### Version - TBD +* Added Support for Final Fantasy 7: Remake Intergrade + #### Version - 3.4.0.0 - 11/19/2023 * Fixed `--outputPath` not being used for the CLI `compile` (thanks to @majcosta for fixing that) * Improved Log message for cases where low storage on the drive Wabbajack is installed on causes compiles to fail diff --git a/Wabbajack.DTOs/Game/Game.cs b/Wabbajack.DTOs/Game/Game.cs index 82dfafc7..d5888ac2 100644 --- a/Wabbajack.DTOs/Game/Game.cs +++ b/Wabbajack.DTOs/Game/Game.cs @@ -52,4 +52,6 @@ public enum Game [Description("Mount & Blade II: Bannerlord")] MountAndBlade2Bannerlord, [Description("Valheim")]Valheim, [Description("Modding Tools")] ModdingTools, + + [Description("Final Fantasy VII Remake")] FinalFantasy7Remake } diff --git a/Wabbajack.DTOs/Game/GameRegistry.cs b/Wabbajack.DTOs/Game/GameRegistry.cs index 4bf839a3..47aaa698 100644 --- a/Wabbajack.DTOs/Game/GameRegistry.cs +++ b/Wabbajack.DTOs/Game/GameRegistry.cs @@ -534,6 +534,23 @@ public static class GameRegistry MainExecutable = @"bin\Win64_Shipping_Client\Bannerlord.exe".ToRelativePath() } }, + { + Game.FinalFantasy7Remake, new GameMetaData + { + Game = Game.FinalFantasy7Remake, + NexusName = "finalfantasy7remake", + NexusGameId = 4202, + MO2Name = "FINAL FANTASY VII REMAKE", + MO2ArchiveName = "finalfantasy7remake", + SteamIDs = new[] { 1462040 }, + IsGenericMO2Plugin = true, + RequiredFiles = new [] + { + @"ff7remake.exe".ToRelativePath() + }, + MainExecutable = @"ff7remake.exe".ToRelativePath() + } + }, { Game.ModdingTools, new GameMetaData { From 700f3889c5681db035a1a566428ac987241f4623 Mon Sep 17 00:00:00 2001 From: Luca <52624146+EzioTheDeadPoet@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:01:07 +0100 Subject: [PATCH 07/12] add Baldur's Gate 3 meta data for the Generic MO2 Plugin. (#2468) * add Baldur's Gate 3 meta data for the Generic MO2 Plugin. * update CHANGELOG.md --- CHANGELOG.md | 3 +++ Wabbajack.DTOs/Game/Game.cs | 3 ++- Wabbajack.DTOs/Game/GameRegistry.cs | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a694186..2e474616 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ #### Version - TBD * Added Support for Final Fantasy 7: Remake Intergrade +* Added Support for Baldur's Gate 3 + * Very Work in Progress + * **NOT** Plug and Play for compiling and installing! #### Version - 3.4.0.0 - 11/19/2023 * Fixed `--outputPath` not being used for the CLI `compile` (thanks to @majcosta for fixing that) diff --git a/Wabbajack.DTOs/Game/Game.cs b/Wabbajack.DTOs/Game/Game.cs index d5888ac2..c99153ef 100644 --- a/Wabbajack.DTOs/Game/Game.cs +++ b/Wabbajack.DTOs/Game/Game.cs @@ -53,5 +53,6 @@ public enum Game [Description("Valheim")]Valheim, [Description("Modding Tools")] ModdingTools, - [Description("Final Fantasy VII Remake")] FinalFantasy7Remake + [Description("Final Fantasy VII Remake")] FinalFantasy7Remake, + [Description("Baldur's Gate 3")] BadlursGate3 } diff --git a/Wabbajack.DTOs/Game/GameRegistry.cs b/Wabbajack.DTOs/Game/GameRegistry.cs index 47aaa698..e3310ebb 100644 --- a/Wabbajack.DTOs/Game/GameRegistry.cs +++ b/Wabbajack.DTOs/Game/GameRegistry.cs @@ -551,6 +551,24 @@ public static class GameRegistry MainExecutable = @"ff7remake.exe".ToRelativePath() } }, + { + Game.BadlursGate3, new GameMetaData + { + Game = Game.BadlursGate3, + NexusName = "baldursgate3", + NexusGameId = 3474, + MO2Name = "Baldur's Gate 3", + MO2ArchiveName = "baldursgate3", + SteamIDs = [1086940], + GOGIDs = [1456460669], + IsGenericMO2Plugin = true, + RequiredFiles = new [] + { + @"bin/bg3.exe".ToRelativePath() + }, + MainExecutable = @"bin/bg3.exe".ToRelativePath() + } + }, { Game.ModdingTools, new GameMetaData { From e7d49b756dd29a5ff4a825f9612f096626f40436 Mon Sep 17 00:00:00 2001 From: Luca <52624146+EzioTheDeadPoet@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:02:10 +0100 Subject: [PATCH 08/12] Update CLI to .NET 8.0 (#2469) Co-authored-by: Timothy Baldridge --- CHANGELOG.md | 3 ++- Wabbajack.CLI/Wabbajack.CLI.csproj | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e474616..e5b22b7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ ### Changelog -#### Version - TBD +#### Version - 3.4.0.0 - 12/21/2023 * Added Support for Final Fantasy 7: Remake Intergrade +* Update CLI to .NET 8.0 (was missed in the last update) * Added Support for Baldur's Gate 3 * Very Work in Progress * **NOT** Plug and Play for compiling and installing! diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj index 7adaf80a..195e0981 100644 --- a/Wabbajack.CLI/Wabbajack.CLI.csproj +++ b/Wabbajack.CLI/Wabbajack.CLI.csproj @@ -2,8 +2,8 @@ Exe - net6.0-windows - net6.0 + net8.0-windows + net8.0 enable GPL-3.0-or-later $(VERSION) From b3783f6eebcc0e443231728ce6b9eab1048cf0f7 Mon Sep 17 00:00:00 2001 From: Luca <52624146+EzioTheDeadPoet@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:02:38 +0100 Subject: [PATCH 09/12] Update tests.yaml (#2467) Co-authored-by: Timothy Baldridge --- .github/workflows/tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 05a2264f..0fa95a24 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -109,10 +109,10 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Setup .NET Core SDK 6.0.x + - name: Setup .NET Core SDK 8.0.x uses: actions/setup-dotnet@v1 with: - dotnet-version: '7.0.x' + dotnet-version: '8.0.x' include-prerelease: true - name: Restore From 7bddfecdfb7a73114c4e439f972a413ace326d23 Mon Sep 17 00:00:00 2001 From: Timothy Baldridge Date: Thu, 21 Dec 2023 12:24:10 -0700 Subject: [PATCH 10/12] 3.4.1.0 --- CHANGELOG.md | 2 +- Wabbajack.CLI/Wabbajack.CLI.csproj | 1 - buildall.bat | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5b22b7e..9d1e4b92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ### Changelog -#### Version - 3.4.0.0 - 12/21/2023 +#### Version - 3.4.1.0 - 12/21/2023 * Added Support for Final Fantasy 7: Remake Intergrade * Update CLI to .NET 8.0 (was missed in the last update) * Added Support for Baldur's Gate 3 diff --git a/Wabbajack.CLI/Wabbajack.CLI.csproj b/Wabbajack.CLI/Wabbajack.CLI.csproj index 195e0981..7fc4af60 100644 --- a/Wabbajack.CLI/Wabbajack.CLI.csproj +++ b/Wabbajack.CLI/Wabbajack.CLI.csproj @@ -13,7 +13,6 @@ CS8600 CS8601 CS8618 - net8.0 true diff --git a/buildall.bat b/buildall.bat index b43059c4..182fc790 100644 --- a/buildall.bat +++ b/buildall.bat @@ -8,7 +8,7 @@ mkdir c:\tmp\publish-wj dotnet clean dotnet publish Wabbajack.App.Wpf\Wabbajack.App.Wpf.csproj --framework "net8.0-windows" --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app /p:PublishReadyToRun=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded dotnet publish Wabbajack.Launcher\Wabbajack.Launcher.csproj --framework "net8.0-windows" --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\launcher /p:PublishSingleFile=true /p:PublishReadyToRun=true /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded -dotnet publish c:\oss\Wabbajack\Wabbajack.CLI\Wabbajack.CLI.csproj --framework "net8.0-windows" --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app --self-contained /p:DebugType=embedded +dotnet publish c:\oss\Wabbajack\Wabbajack.CLI\Wabbajack.CLI.csproj --framework "net8.0-windows" --runtime win-x64 --configuration Release /p:Platform=x64 -o c:\tmp\publish-wj\app /p:PublishReadyToRun=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained /p:DebugType=embedded "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 8c26a8e0bf3e70eb89721cc4d86a87137153ccba c:\tmp\publish-wj\app\Wabbajack.exe "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 8c26a8e0bf3e70eb89721cc4d86a87137153ccba c:\tmp\publish-wj\launcher\Wabbajack.exe "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /fd sha256 /tr http://ts.ssl.com /td sha256 /sha1 8c26a8e0bf3e70eb89721cc4d86a87137153ccba c:\tmp\publish-wj\app\wabbajack-cli.exe From 74ed4b33ccd246bde76bea9f427ee0dd2ed3d05d Mon Sep 17 00:00:00 2001 From: halgari Date: Sat, 6 Jan 2024 12:42:24 -0700 Subject: [PATCH 11/12] Bump nuget release versions --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 0fa95a24..3b5d74cd 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -7,7 +7,7 @@ on: branches: [ main ] env: - VERSION: 3.0.6.2 + VERSION: 3.4.1.0 jobs: build: From e3505f4ea0b0a1a9725d9752e5266139beb69d51 Mon Sep 17 00:00:00 2001 From: halgari Date: Sat, 6 Jan 2024 13:56:56 -0700 Subject: [PATCH 12/12] Also release Wabbajack.Configuration --- .github/workflows/tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 3b5d74cd..d114fb6b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -71,6 +71,7 @@ jobs: - Wabbajack.Compiler - Wabbajack.Compression.BSA - Wabbajack.Compression.Zip + - Wabbajack.Configuration - Wabbajack.Downloaders.Bethesda - Wabbajack.Downloaders.Dispatcher - Wabbajack.Downloaders.GameFile