From 3bc9c122a23999f732171f35f57fa5bb669ee2b8 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Fri, 23 May 2025 08:58:34 +0200 Subject: [PATCH 01/26] update subs --- ModdingToolBase | 2 +- src/DevLauncher/Properties/launchSettings.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ModdingToolBase b/ModdingToolBase index 7893e04..91cee75 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit 7893e0437e9bc8880962b1b553839eb9cc57b1e9 +Subproject commit 91cee75996d5fa6483595e8605dcea40def0824e diff --git a/src/DevLauncher/Properties/launchSettings.json b/src/DevLauncher/Properties/launchSettings.json index 98701b1..0707b69 100644 --- a/src/DevLauncher/Properties/launchSettings.json +++ b/src/DevLauncher/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Build & Run Mod": { "commandName": "Project", - "commandLineArgs": "--verboseBootstrapLogging -verbose --skipUpdate", + "commandLineArgs": "--verboseBootstrapLogging -verbose", "workingDirectory": "C:\\Privat\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\republic-at-war" }, "DAT2LocFile": { From 73b667ab53d2c212f5abe0c4c8decd05d0480ef8 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Fri, 23 May 2025 10:35:36 +0200 Subject: [PATCH 02/26] update sub --- ModdingToolBase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ModdingToolBase b/ModdingToolBase index 91cee75..044d3cc 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit 91cee75996d5fa6483595e8605dcea40def0824e +Subproject commit 044d3ccad5f33e68c5f5737d273fbe1ed8fd6b88 From 539c7a477c3a38889368819b014d41afda0b05ae Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 11:22:36 +0100 Subject: [PATCH 03/26] increase git timeout --- src/DevLauncher/Properties/launchSettings.json | 2 +- src/DevLauncher/Services/GitService.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DevLauncher/Properties/launchSettings.json b/src/DevLauncher/Properties/launchSettings.json index 0707b69..4c349f6 100644 --- a/src/DevLauncher/Properties/launchSettings.json +++ b/src/DevLauncher/Properties/launchSettings.json @@ -17,7 +17,7 @@ }, "Release Republic at War": { "commandName": "Project", - "commandLineArgs": "release --uploaderDir D:\\Modding\\eawuploader --skipUpdate", + "commandLineArgs": "release --uploaderDir E:\\Modding\\eawuploader --skipUpdate", "workingDirectory": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\Republic_at_War" }, "Merge Diffs into Localization": { diff --git a/src/DevLauncher/Services/GitService.cs b/src/DevLauncher/Services/GitService.cs index bc94c6b..894a8e7 100644 --- a/src/DevLauncher/Services/GitService.cs +++ b/src/DevLauncher/Services/GitService.cs @@ -91,7 +91,7 @@ public void Fetch() }; - if (!Process.Start(startInfo)!.WaitForExit(3000)) + if (!Process.Start(startInfo)!.WaitForExit(10000)) throw new InvalidOperationException("Unable to fetch from origin."); } } \ No newline at end of file From 84aa55872462a56707547386d32bfaa788731caa Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 12:10:44 +0100 Subject: [PATCH 04/26] update to new libs --- Directory.Build.props | 2 +- ModVerify | 2 +- ModdingToolBase | 2 +- .../DevLauncher.Tests.csproj | 10 +- src/DevLauncher/DevLauncher.csproj | 27 +++-- src/DevLauncher/DevLauncherEnvironment.cs | 5 +- src/DevLauncher/Options/VerifyOption.cs | 6 - .../Pipelines/BuildAndRunPipeline.cs | 3 +- .../Pipelines/BuildAndVerifyPipeline.cs | 80 ------------- src/DevLauncher/Pipelines/BuildPipeline.cs | 106 ++++++++---------- .../Pipelines/ReleaseRawPipeline.cs | 45 ++++---- src/DevLauncher/Pipelines/Steps/LaunchStep.cs | 4 +- src/DevLauncher/Program.cs | 11 +- .../Properties/launchSettings.json | 5 - src/DevLauncher/RawDevLauncher.cs | 14 --- src/MegCompile/MegCompile.csproj | 16 +-- src/RawDevTools/RawDevTools.csproj | 12 +- .../Steps/Build/CleanOutdatedAssetsStep.cs | 24 ++-- .../Steps/Build/CompileLocalizationStep.cs | 13 ++- .../Steps/Build/Meg/PackMegFileStep.cs | 8 +- src/RawDevTools/Steps/Build/PackIconsStep.cs | 8 +- .../Steps/Releasing/CopyReleaseStep.cs | 23 ++-- .../CreateUploadMetaArtifactsStep.cs | 13 ++- src/RawDevTools/Steps/SingleActionPipeline.cs | 21 ++-- src/TextCompile/TextCompile.csproj | 16 +-- 25 files changed, 202 insertions(+), 274 deletions(-) delete mode 100644 src/DevLauncher/Options/VerifyOption.cs delete mode 100644 src/DevLauncher/Pipelines/BuildAndVerifyPipeline.cs diff --git a/Directory.Build.props b/Directory.Build.props index e638e40..f9cd8ce 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -3,7 +3,7 @@ all - 3.7.115 + 3.9.50 \ No newline at end of file diff --git a/ModVerify b/ModVerify index 59b5a3f..4eb6a1c 160000 --- a/ModVerify +++ b/ModVerify @@ -1 +1 @@ -Subproject commit 59b5a3f00b5d5445fecf1c4a1013ce412d47b80f +Subproject commit 4eb6a1c0567b68c6a0f858426c478c7572f4d81c diff --git a/ModdingToolBase b/ModdingToolBase index 044d3cc..e12f6ce 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit 044d3ccad5f33e68c5f5737d273fbe1ed8fd6b88 +Subproject commit e12f6ceedb83fe9e3372dd89c68d508f8479cf92 diff --git a/src/DevLauncher.Tests/DevLauncher.Tests.csproj b/src/DevLauncher.Tests/DevLauncher.Tests.csproj index 65466d9..a54378b 100644 --- a/src/DevLauncher.Tests/DevLauncher.Tests.csproj +++ b/src/DevLauncher.Tests/DevLauncher.Tests.csproj @@ -10,15 +10,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/DevLauncher/DevLauncher.csproj b/src/DevLauncher/DevLauncher.csproj index fd9c2b4..106a1a8 100644 --- a/src/DevLauncher/DevLauncher.csproj +++ b/src/DevLauncher/DevLauncher.csproj @@ -19,15 +19,15 @@ - - + + - - + + - - + + @@ -38,14 +38,23 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - all + + + + + + compile + runtime; build; native; contentfiles; analyzers; buildtransitive + + + compile runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/src/DevLauncher/DevLauncherEnvironment.cs b/src/DevLauncher/DevLauncherEnvironment.cs index 67a4da7..76dc6d5 100644 --- a/src/DevLauncher/DevLauncherEnvironment.cs +++ b/src/DevLauncher/DevLauncherEnvironment.cs @@ -7,14 +7,13 @@ namespace RepublicAtWar.DevLauncher; -internal class DevLauncherEnvironment(Assembly assembly, IFileSystem fileSystem) : UpdatableApplicationEnvironment(assembly, fileSystem) +internal class DevLauncherEnvironment(Assembly assembly, IFileSystem fileSystem) + : UpdatableApplicationEnvironment(assembly, fileSystem) { private const string ToolPathName = "RawDevLauncher"; public override string ApplicationName => "Republic at War DevLauncher"; - public override Uri? RepositoryUrl => null; - public override ICollection UpdateMirrors { get; } = new List { new($"https://republicatwar.com/downloads/{ToolPathName}") diff --git a/src/DevLauncher/Options/VerifyOption.cs b/src/DevLauncher/Options/VerifyOption.cs deleted file mode 100644 index 3dca4d0..0000000 --- a/src/DevLauncher/Options/VerifyOption.cs +++ /dev/null @@ -1,6 +0,0 @@ -using CommandLine; - -namespace RepublicAtWar.DevLauncher.Options; - -[Verb("verify")] -internal class VerifyOption : RaWBuildOption; \ No newline at end of file diff --git a/src/DevLauncher/Pipelines/BuildAndRunPipeline.cs b/src/DevLauncher/Pipelines/BuildAndRunPipeline.cs index c355f5a..68ba836 100644 --- a/src/DevLauncher/Pipelines/BuildAndRunPipeline.cs +++ b/src/DevLauncher/Pipelines/BuildAndRunPipeline.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; @@ -22,7 +23,7 @@ internal class BuildAndRunPipeline( private readonly BuildSettings _buildSettings = buildSettings ?? throw new ArgumentNullException(nameof(buildSettings)); private readonly LaunchSettings _launchSettings = launchSettings ?? throw new ArgumentNullException(nameof(launchSettings)); - protected override Task> BuildSteps() + protected override Task> CreateRunnerSteps(CancellationToken token) { return Task.FromResult>(new List { diff --git a/src/DevLauncher/Pipelines/BuildAndVerifyPipeline.cs b/src/DevLauncher/Pipelines/BuildAndVerifyPipeline.cs deleted file mode 100644 index ff08d20..0000000 --- a/src/DevLauncher/Pipelines/BuildAndVerifyPipeline.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; -using AET.ModVerify.Pipeline; -using AET.ModVerify.Pipeline.Progress; -using AET.ModVerify.Reporting; -using AET.ModVerify.Reporting.Settings; -using AET.ModVerify.Settings; -using AnakinRaW.CommonUtilities.SimplePipeline; -using AnakinRaW.CommonUtilities.SimplePipeline.Progress; -using AnakinRaW.CommonUtilities.SimplePipeline.Steps; -using Microsoft.Extensions.DependencyInjection; -using PG.StarWarsGame.Engine; -using PG.StarWarsGame.Infrastructure.Games; -using PG.StarWarsGame.Infrastructure.Mods; -using RepublicAtWar.DevTools.Steps.Settings; - -namespace RepublicAtWar.DevLauncher.Pipelines; - -internal class BuildAndVerifyPipeline(IPhysicalMod mod, IGame fallbackGame, BuildSettings buildSettings, IServiceProvider serviceProvider) - : SequentialPipeline(serviceProvider) -{ - public override string ToString() - { - return $"Build & Verify {mod.Name}"; - } - - protected override Task> BuildSteps() - { - return Task.FromResult>(new List - { - new RunPipelineStep(new BuildPipeline(mod, buildSettings, ServiceProvider), ServiceProvider), - new RunPipelineStep(CreateVerifyPipeline(), ServiceProvider), - }); - } - - private GameVerifyPipeline CreateVerifyPipeline() - { - var gameLocations = new GameLocations( - [mod.Directory.FullName], - mod.Game.Directory.FullName, - [fallbackGame.Directory.FullName, LauncherConstants.RaWFallbackAssetPathEaW] - ); - - var settings = new VerifyPipelineSettings - { - GameVerifySettings = GameVerifySettings.Default, - VerifiersProvider = new DefaultGameVerifiersProvider() - }; - - var globalReportSettings = new GlobalVerifyReportSettings - { - Baseline = VerificationBaseline.Empty, - Suppressions = SuppressionList.Empty - }; - - var gameEngineService = ServiceProvider.GetRequiredService(); - - var engineErrorReporter = new ConcurrentGameEngineErrorReporter(); - - var gameEngine = gameEngineService.InitializeAsync( - GameEngineType.Foc, - gameLocations, - engineErrorReporter, - null, - false, - CancellationToken.None).GetAwaiter().GetResult(); - - return new GameVerifyPipeline(gameEngine, engineErrorReporter, settings, globalReportSettings, new NullVerifyProgressReporter(), ServiceProvider); - } - - private class NullVerifyProgressReporter : IVerifyProgressReporter - { - public void Report(double progress, string? progressText, ProgressType type, VerifyProgressInfo detailedProgress) - { - - } - } -} \ No newline at end of file diff --git a/src/DevLauncher/Pipelines/BuildPipeline.cs b/src/DevLauncher/Pipelines/BuildPipeline.cs index 7106e48..b5324e6 100644 --- a/src/DevLauncher/Pipelines/BuildPipeline.cs +++ b/src/DevLauncher/Pipelines/BuildPipeline.cs @@ -1,12 +1,13 @@ using System; using System.Collections.Generic; using System.IO.Abstractions; +using System.Linq; using System.Threading; using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline; using AnakinRaW.CommonUtilities.SimplePipeline.Runners; +using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; using PG.StarWarsGame.Engine; using PG.StarWarsGame.Engine.Localization; using PG.StarWarsGame.Infrastructure.Mods; @@ -17,49 +18,44 @@ namespace RepublicAtWar.DevLauncher.Pipelines; -internal sealed class BuildPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) - : Pipeline(serviceProvider) +internal sealed class BuildPipeline : SequentialPipeline { - private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); + private readonly IFileSystem _fileSystem; - private readonly IGameLanguageManager _languageManager = serviceProvider - .GetRequiredService().GetLanguageManager(GameEngineType.Foc); + private readonly IGameLanguageManager _languageManager; - private readonly BuildSettings _settings = settings ?? throw new ArgumentNullException(nameof(settings)); + private readonly BuildSettings _settings; + private readonly IPhysicalMod _mod; - private readonly List _buildSteps = new(); - private readonly List _preBuildSteps = new(); - - private readonly ParallelStepRunner _buildRunner = new(4, serviceProvider); - private readonly SequentialStepRunner _preBuildRunner = new(serviceProvider); - - protected override bool FailFast => true; + public BuildPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) : base(serviceProvider) + { + _mod = mod; + _fileSystem = serviceProvider.GetRequiredService(); + _languageManager = serviceProvider + .GetRequiredService().GetLanguageManager(GameEngineType.Foc); + _settings = settings ?? throw new ArgumentNullException(nameof(settings)); + FailFast = true; + } public override string ToString() { - return $"Building {mod.Name}"; + return $"Building {_mod.Name}"; } - protected override Task PrepareCoreAsync() + protected override Task> CreateRunnerSteps(CancellationToken token) { - _preBuildSteps.Clear(); - _preBuildSteps.AddRange(CreatePreBuildSteps()); - foreach (var buildStep in _preBuildSteps) - _preBuildRunner.AddStep(buildStep); - - _buildSteps.Clear(); - _buildSteps.AddRange(CreateBuildSteps()); - foreach (var buildStep in _buildSteps) - _buildRunner.AddStep(buildStep); - - return Task.FromResult(true); + return Task.FromResult>(new List + { + new RunPipelineStep(new PreBuildPipeline(this, ServiceProvider), ServiceProvider), + new RunPipelineStep(new CoreBuildPipeline(this, ServiceProvider), ServiceProvider) + }); } private IEnumerable CreateBuildSteps() { - yield return new PackMegFileStep(new RawAiPackMegConfiguration(mod, ServiceProvider), _settings, ServiceProvider); - yield return new PackMegFileStep(new RawCustomMapsPackMegConfiguration(mod, ServiceProvider), _settings, ServiceProvider); - yield return new PackMegFileStep(new RawNonLocalizedSfxMegConfiguration(mod, ServiceProvider), _settings, ServiceProvider); + yield return new PackMegFileStep(new RawAiPackMegConfiguration(_mod, ServiceProvider), _settings, ServiceProvider); + yield return new PackMegFileStep(new RawCustomMapsPackMegConfiguration(_mod, ServiceProvider), _settings, ServiceProvider); + yield return new PackMegFileStep(new RawNonLocalizedSfxMegConfiguration(_mod, ServiceProvider), _settings, ServiceProvider); yield return new PackIconsStep(_settings, ServiceProvider); yield return new CompileLocalizationStep(_settings, ServiceProvider); @@ -72,7 +68,7 @@ private IEnumerable CreateBuildSteps() continue; yield return new PackMegFileStep( - new RawLocalizedSfx2DMegConfiguration(focLanguage, isRaWSupported, mod, ServiceProvider), + new RawLocalizedSfx2DMegConfiguration(focLanguage, isRaWSupported, _mod, ServiceProvider), _settings, ServiceProvider); } @@ -82,44 +78,36 @@ private IList CreatePreBuildSteps() { return new List { - new CleanOutdatedAssetsStep(mod, ServiceProvider) + new CleanOutdatedAssetsStep(_mod, ServiceProvider) }; } - protected override async Task RunCoreAsync(CancellationToken token) + private bool IsSupportedByRaw(LanguageType focLanguage) { - try - { - Logger?.LogInformation("Running Prebuild..."); - _preBuildRunner.Error -= OnError; - await _preBuildRunner.RunAsync(token); - } - finally - { - Logger?.LogInformation("Finished Prebuild..."); - _preBuildRunner.Error -= OnError; - } - - ThrowIfAnyStepsFailed(_preBuildSteps); + var path = _fileSystem.Path.Combine(_mod.Directory.FullName, "Data/Audio/Units", focLanguage.ToString()); + return _fileSystem.Directory.Exists(path); + } - try + private class CoreBuildPipeline(BuildPipeline parent, IServiceProvider serviceProvider) + : StepRunnerPipeline(serviceProvider) + { + protected override Task> CreateRunnerSteps(CancellationToken token) { - Logger?.LogInformation("Running Build..."); - _buildRunner.Error -= OnError; - await _buildRunner.RunAsync(token); + return Task.FromResult>(parent.CreateBuildSteps().ToList()); } - finally + + protected override IStepRunner CreateRunner() { - Logger?.LogInformation("Finished Build..."); - _buildRunner.Error -= OnError; + return new AsyncStepRunner(4, ServiceProvider); } - - ThrowIfAnyStepsFailed(_buildSteps); } - - private bool IsSupportedByRaw(LanguageType focLanguage) + + private class PreBuildPipeline(BuildPipeline parent, IServiceProvider serviceProvider) + : SequentialPipeline(serviceProvider) { - var path = _fileSystem.Path.Combine(mod.Directory.FullName, "Data/Audio/Units", focLanguage.ToString()); - return _fileSystem.Directory.Exists(path); + protected override Task> CreateRunnerSteps(CancellationToken token) + { + return Task.FromResult(parent.CreatePreBuildSteps()); + } } } \ No newline at end of file diff --git a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs index 59fdf6e..7260a7e 100644 --- a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs +++ b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs @@ -38,32 +38,14 @@ public ReleaseRawPipeline( _empireAtWarGame = empireAtWarGame; _logger = serviceProvider.GetService()?.CreateLogger(GetType()); } - protected override Task RunCoreAsync(CancellationToken token) - { - _logger?.LogInformation("Release Republic at War"); - - if (!_buildSettings.CleanBuild) - { - _logger?.LogWarning("Releasing without Clean build!!!"); - _logger?.LogWarning("Releasing without Clean build!!!"); - _logger?.LogWarning("Releasing without Clean build!!!"); - } - return base.RunCoreAsync(token); - } - protected override void DisposeResources() - { - _progressBarReporter?.Dispose(); - _progressBarReporter = null; - base.DisposeResources(); - } - protected override Task> BuildSteps() + protected override Task> CreateRunnerSteps(CancellationToken token) { return Task.Run>(() => { var createArtifactStep = new CreateUploadMetaArtifactsStep(ServiceProvider); - + var copyStep = new CopyReleaseStep(createArtifactStep, _releaseSettings, ServiceProvider); _progressBarReporter = new(copyStep); @@ -78,6 +60,27 @@ protected override Task> BuildSteps() // Copy to Release copyStep }; - }); + }, CancellationToken.None); + } + + protected override void OnExecuteStarted() + { + base.OnExecuteStarted(); + + _logger?.LogInformation("Release Republic at War"); + + if (!_buildSettings.CleanBuild) + { + _logger?.LogWarning("Releasing without Clean build!!!"); + _logger?.LogWarning("Releasing without Clean build!!!"); + _logger?.LogWarning("Releasing without Clean build!!!"); + } + } + + protected override void DisposeResources() + { + _progressBarReporter?.Dispose(); + _progressBarReporter = null; + base.DisposeResources(); } } \ No newline at end of file diff --git a/src/DevLauncher/Pipelines/Steps/LaunchStep.cs b/src/DevLauncher/Pipelines/Steps/LaunchStep.cs index cb60b1e..7d0d4b1 100644 --- a/src/DevLauncher/Pipelines/Steps/LaunchStep.cs +++ b/src/DevLauncher/Pipelines/Steps/LaunchStep.cs @@ -1,5 +1,6 @@ using System; using System.Threading; +using System.Threading.Tasks; using AET.Modinfo.Model; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using PG.StarWarsGame.Infrastructure.Clients.Arguments; @@ -14,11 +15,12 @@ internal class LaunchStep(LaunchSettings options, IPhysicalMod mod, IServiceProv { private readonly IPhysicalMod _mod = mod ?? throw new ArgumentNullException(nameof(mod)); - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) { var launcher = new GameLauncher(options, _mod, Services); var args = CreateGameArgs(); launcher.Launch(args); + return Task.CompletedTask; } private ArgumentCollection CreateGameArgs() diff --git a/src/DevLauncher/Program.cs b/src/DevLauncher/Program.cs index 9be543b..bac989e 100644 --- a/src/DevLauncher/Program.cs +++ b/src/DevLauncher/Program.cs @@ -107,16 +107,19 @@ private async Task RunAppCoreAsync(string[] args, IServiceProvider appServi } } - protected override void ResetApp(Microsoft.Extensions.Logging.ILogger? logger) + protected override void ResetApp() { - logger?.LogDebug("Resetting Application"); + Logger?.LogDebug("Resetting Application"); + + base.ResetApp(); + var deleteResult = ApplicationEnvironment.ApplicationLocalDirectory.TryDeleteWithRetry(); if (!deleteResult) - logger?.LogWarning("Failed to delete application local directory."); + Logger?.LogWarning("Failed to delete application local directory."); ApplicationEnvironment.ApplicationLocalDirectory.Create(); } - protected override void CreateAppServices(IServiceCollection services, IReadOnlyCollection args) + protected override void CreateAppServices(IServiceCollection services, IReadOnlyList args) { var verboseLogging = false; diff --git a/src/DevLauncher/Properties/launchSettings.json b/src/DevLauncher/Properties/launchSettings.json index 4c349f6..e517f5d 100644 --- a/src/DevLauncher/Properties/launchSettings.json +++ b/src/DevLauncher/Properties/launchSettings.json @@ -24,11 +24,6 @@ "commandName": "Project", "commandLineArgs": "mergeLoc --skipUpdate", "workingDirectory": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\Republic_at_War" - }, - "Build & Verify Republic at War": { - "commandName": "Project", - "commandLineArgs": "verify --skipUpdate", - "workingDirectory": "C:\\Privat\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\republic-at-war" } } } \ No newline at end of file diff --git a/src/DevLauncher/RawDevLauncher.cs b/src/DevLauncher/RawDevLauncher.cs index 17b3145..f74e6fb 100644 --- a/src/DevLauncher/RawDevLauncher.cs +++ b/src/DevLauncher/RawDevLauncher.cs @@ -69,7 +69,6 @@ private async Task UpdateLauncher(IReadOnlyList args) typeof(PrepareLocalizationsOption), typeof(MergeLocalizationOption), typeof(ReleaseRepublicAtWarOption), - typeof(VerifyOption) ]; var parseResult = _looseArgumentParser.ParseArguments(args, optionTypes); @@ -106,9 +105,6 @@ private async Task RunCore(DevToolsOptionBase options) case MergeLocalizationOption: launcherPipeline = new MergeLocalizationsAction(serviceProvider); break; - case VerifyOption verifyOption: - launcherPipeline = CreateBuildVerifyPipeline(verifyOption, gameFinderResult, serviceProvider); - break; default: throw new ArgumentException($"The option '{options.GetType().FullName}' is not implemented", nameof(options)); @@ -127,16 +123,6 @@ private async Task RunCore(DevToolsOptionBase options) } } - private static IPipeline CreateBuildVerifyPipeline(VerifyOption options, GameFinderResult gameFinderResult, IServiceProvider services) - { - var buildSettings = new BuildSettings - { - WarnAsError = options.WarnAsError, - CleanBuild = options.CleanBuild - }; - return new BuildAndVerifyPipeline(gameFinderResult.RepublicAtWar, gameFinderResult.FallbackGame, buildSettings, services); - } - private static IPipeline CreateBuildRunPipeline(BuildAndRunOption options, GameFinderResult gameFinderResult, IServiceProvider services) { var buildSettings = new BuildSettings diff --git a/src/MegCompile/MegCompile.csproj b/src/MegCompile/MegCompile.csproj index f0186c2..3d4808c 100644 --- a/src/MegCompile/MegCompile.csproj +++ b/src/MegCompile/MegCompile.csproj @@ -15,18 +15,18 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/RawDevTools/RawDevTools.csproj b/src/RawDevTools/RawDevTools.csproj index d5cccdf..b47feff 100644 --- a/src/RawDevTools/RawDevTools.csproj +++ b/src/RawDevTools/RawDevTools.csproj @@ -43,13 +43,13 @@ - + - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs index af12d65..be76bd8 100644 --- a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs +++ b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs @@ -1,6 +1,7 @@ using System; using System.IO.Abstractions; using System.Threading; +using System.Threading.Tasks; using AnakinRaW.CommonUtilities.FileSystem; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; @@ -15,18 +16,21 @@ public class CleanOutdatedAssetsStep(IPhysicalMod mod, IServiceProvider serviceP { private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) { - Logger?.LogInformation("Cleaning outdated assets..."); - var matcher = new Matcher(); - matcher.AddInclude("Data/Audio/SFX/sfx2d_*.meg"); - - foreach (var fileToDelete in matcher.GetResultsInFullPath(mod.Directory.FullName)) + return Task.Run(() => { - Logger?.LogDebug($"Deleting old asset '{fileToDelete}'"); - _fileSystem.File.DeleteWithRetry(fileToDelete); - } + Logger?.LogInformation("Cleaning outdated assets..."); + var matcher = new Matcher(); + matcher.AddInclude("Data/Audio/SFX/sfx2d_*.meg"); + + foreach (var fileToDelete in matcher.GetResultsInFullPath(mod.Directory.FullName)) + { + Logger?.LogDebug($"Deleting old asset '{fileToDelete}'"); + _fileSystem.File.DeleteWithRetry(fileToDelete); + } - Logger?.LogInformation("Finished cleaning outdated assets."); + Logger?.LogInformation("Finished cleaning outdated assets."); + }, CancellationToken.None); } } \ No newline at end of file diff --git a/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs b/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs index 35f5275..d2d0d08 100644 --- a/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs +++ b/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO.Abstractions; using System.Threading; +using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; @@ -15,12 +16,16 @@ public class CompileLocalizationStep(BuildSettings settings, IServiceProvider se private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); private readonly ILogger? _logger = serviceProvider.GetService()?.CreateLogger(typeof(CompileLocalizationStep)); - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) { - var localizationFiles = _fileSystem.Directory.EnumerateFiles("Data\\Text", "MasterTextFile_*.txt"); + return Task.Run(() => + { + var localizationFiles = _fileSystem.Directory + .EnumerateFiles("Data\\Text", "MasterTextFile_*.txt"); - foreach (var localizationFile in localizationFiles) - CompileDatFromLocalizationFile(localizationFile); + foreach (var localizationFile in localizationFiles) + CompileDatFromLocalizationFile(localizationFile); + }, CancellationToken.None); } private void CompileDatFromLocalizationFile(string file) diff --git a/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs b/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs index 1cf5a15..da6f4ef 100644 --- a/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs +++ b/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs @@ -3,6 +3,7 @@ using System.IO.Abstractions; using System.Linq; using System.Threading; +using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileSystemGlobbing; @@ -25,7 +26,12 @@ public class PackMegFileStep(IPackMegConfiguration config, BuildSettings setting private readonly IPackMegConfiguration _config = config ?? throw new ArgumentNullException(nameof(config)); - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) + { + return Task.Run(() => RunCore(token), CancellationToken.None); + } + + private void RunCore(CancellationToken token) { var matcher = new Matcher(StringComparison.OrdinalIgnoreCase); foreach (var fileToPack in _config.FilesToPack) diff --git a/src/RawDevTools/Steps/Build/PackIconsStep.cs b/src/RawDevTools/Steps/Build/PackIconsStep.cs index 855191f..846e756 100644 --- a/src/RawDevTools/Steps/Build/PackIconsStep.cs +++ b/src/RawDevTools/Steps/Build/PackIconsStep.cs @@ -5,6 +5,7 @@ using System.IO.Abstractions; using System.Reflection; using System.Threading; +using System.Threading.Tasks; using AnakinRaW.CommonUtilities; using AnakinRaW.CommonUtilities.FileSystem; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; @@ -28,7 +29,12 @@ public class PackIconsStep(BuildSettings settings, IServiceProvider serviceProvi private const string DummyMasterTextFileXml = "Data\\Text\\MasterTextFile.xml"; private const string ModCompileExe = "ModCompile.exe"; - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) + { + return Task.Run(() => RunCore(token), CancellationToken.None); + } + + private void RunCore(CancellationToken token) { if (!_fileSystem.Directory.Exists(IconsDirectory)) { diff --git a/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs b/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs index 6aa4734..1c0c6f9 100644 --- a/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs +++ b/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs @@ -75,10 +75,10 @@ private Matcher CreateBlacklist() return matcher; } - protected override void RunCore(CancellationToken token) + protected override async Task RunCoreAsync(CancellationToken token) { - _buildArtifactsStep.Wait(); - + await _buildArtifactsStep; + _logger?.LogInformation("Copying Release to SteamUploader ..."); if (!_fileSystem.Directory.Exists(_settings.UploaderDirectory)) @@ -101,16 +101,13 @@ protected override void RunCore(CancellationToken token) var steamJsonFile = _buildArtifactsStep.SteamJsonName; _fileSystem.File.Copy(steamJsonFile, _fileSystem.Path.Combine(uploaderWsContentPath, steamJsonFile), true); - Task.Run(async () => - { - await new DirectoryCopier(_fileSystem).CopyDirectoryAsync(source, - assetCopyPath, - new CopyProgress(this), - ShallCopyFile, 4, - token); - }, CancellationToken.None) - .Wait(token); - + await new DirectoryCopier(_fileSystem).CopyDirectoryAsync(source, + assetCopyPath, + new CopyProgress(this), + ShallCopyFile, + 4, + token); + _logger?.LogInformation($"Copied assets to SteamUploader at '{assetCopyPath}'"); } diff --git a/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs b/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs index d139674..af925c1 100644 --- a/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs +++ b/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs @@ -3,16 +3,18 @@ using System.IO.Abstractions; using System.Text.RegularExpressions; using System.Threading; +using System.Threading.Tasks; using AET.Modinfo.Model; using AET.Modinfo.Spec; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Semver; +using ILogger = Microsoft.Extensions.Logging.ILogger; namespace RepublicAtWar.DevTools.Steps.Releasing; -public class CreateUploadMetaArtifactsStep(IServiceProvider serviceProvider) : SynchronizedStep(serviceProvider) +public class CreateUploadMetaArtifactsStep(IServiceProvider serviceProvider) : PipelineStep(serviceProvider) { private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); private readonly ILogger? _logger = serviceProvider.GetService()?.CreateLogger(typeof(CreateUploadMetaArtifactsStep)); @@ -23,7 +25,12 @@ public class CreateUploadMetaArtifactsStep(IServiceProvider serviceProvider) : S internal string SteamJsonName { get; private set; } = null!; - protected override void RunSynchronized(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) + { + return Task.Run(() => RunCore(token), CancellationToken.None); + } + + private void RunCore(CancellationToken token) { _logger?.LogInformation("Creating Modinfo, Steam json and splashes..."); @@ -32,7 +39,7 @@ protected override void RunSynchronized(CancellationToken token) _replacementVariables.Add("version-minor", ToMinorOnly(version)); var baseInfo = ModinfoData.Parse(_fileSystem.File.ReadAllText("modinfo-base.json")); - + IModinfo releaseInfo; string steamDescription; if (version.IsPrerelease) diff --git a/src/RawDevTools/Steps/SingleActionPipeline.cs b/src/RawDevTools/Steps/SingleActionPipeline.cs index 3b822c0..1709a3e 100644 --- a/src/RawDevTools/Steps/SingleActionPipeline.cs +++ b/src/RawDevTools/Steps/SingleActionPipeline.cs @@ -8,22 +8,25 @@ namespace RepublicAtWar.DevTools.Steps; -public abstract class SingleActionPipeline(IServiceProvider serviceProvider, bool warningAsError) : SequentialPipeline(serviceProvider) +public abstract class SingleActionPipeline(IServiceProvider serviceProvider, bool warningAsError) + : SequentialPipeline(serviceProvider) { - protected override Task> BuildSteps() + + private class SimpleRunnerStep(Action action, IServiceProvider serviceProvider) + : PipelineStep(serviceProvider) { - return Task.FromResult>(new List + protected override Task RunCoreAsync(CancellationToken token) { - new SimpleRunnerStep(RunAction, ServiceProvider) - }); + return Task.Run(() => action(token), CancellationToken.None); + } } - private class SimpleRunnerStep(Action action, IServiceProvider serviceProvider) : PipelineStep(serviceProvider) + protected override Task> CreateRunnerSteps(CancellationToken token) { - protected override void RunCore(CancellationToken token) + return Task.FromResult>(new List { - action(token); - } + new SimpleRunnerStep(RunAction, ServiceProvider) + }); } protected abstract void RunAction(CancellationToken cancellationToken); diff --git a/src/TextCompile/TextCompile.csproj b/src/TextCompile/TextCompile.csproj index 5c129c8..e060ac5 100644 --- a/src/TextCompile/TextCompile.csproj +++ b/src/TextCompile/TextCompile.csproj @@ -15,18 +15,18 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + From 4ce8bd27b6eccba1ce1d37b1c6cf349d0d58ff43 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 12:19:51 +0100 Subject: [PATCH 05/26] prettier logging --- .../Pipelines/Actions/CreateLocalizationDiffsAction.cs | 2 +- .../Pipelines/Actions/InitializeLocalizationAction.cs | 4 ++-- src/DevLauncher/Program.cs | 4 ++-- src/DevLauncher/Update/RawDevLauncherUpdater.cs | 2 +- src/RawDevTools/Localization/LocalizationFileValidator.cs | 2 +- src/RawDevTools/Services/LocalizationFileService.cs | 3 ++- src/RawDevTools/Services/ModFinderService.cs | 6 ++++-- src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs | 2 +- src/RawDevTools/Steps/Build/CompileLocalizationStep.cs | 6 +++--- .../Build/Meg/Config/RawLocalizedSFX2DMegConfiguration.cs | 4 ++-- src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs | 6 +++--- src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs | 2 +- 12 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/DevLauncher/Pipelines/Actions/CreateLocalizationDiffsAction.cs b/src/DevLauncher/Pipelines/Actions/CreateLocalizationDiffsAction.cs index 3c27909..8689dd9 100644 --- a/src/DevLauncher/Pipelines/Actions/CreateLocalizationDiffsAction.cs +++ b/src/DevLauncher/Pipelines/Actions/CreateLocalizationDiffsAction.cs @@ -44,7 +44,7 @@ protected override void RunAction(CancellationToken cancellationToken) if (locFile.Language == LanguageType.English) continue; - Logger?.LogInformation($"Creating Diff for data '{langFile}'"); + Logger?.LogInformation("Creating Diff for data '{LangFile}'", langFile); var masterText = _localizationFileService.CreateModelFromLocalizationFile(locFile); diff --git a/src/DevLauncher/Pipelines/Actions/InitializeLocalizationAction.cs b/src/DevLauncher/Pipelines/Actions/InitializeLocalizationAction.cs index 71caca3..58c5aa0 100644 --- a/src/DevLauncher/Pipelines/Actions/InitializeLocalizationAction.cs +++ b/src/DevLauncher/Pipelines/Actions/InitializeLocalizationAction.cs @@ -31,7 +31,7 @@ internal class InitializeLocalizationAction(IServiceProvider serviceProvider) : protected override void RunAction(CancellationToken cancellationToken) { - Logger?.LogInformation($"Processing data '{EnglishDAT}'"); + Logger?.LogInformation("Processing data '{DatFile}'", EnglishDAT); var englishMtfPath = _fileSystem.Path.Combine("Data\\Text", EnglishDAT); var englishMasterText = _datFileService.LoadAs(englishMtfPath, DatFileType.OrderedByCrc32).Content; @@ -40,7 +40,7 @@ protected override void RunAction(CancellationToken cancellationToken) foreach (var datFile in datFiles) { - Logger?.LogInformation($"Processing data '{_fileSystem.Path.GetFileName(datFile)}'"); + Logger?.LogInformation("Processing data '{FileName}'", _fileSystem.Path.GetFileName(datFile)); var language = _localizationFileService.LanguageNameFromFileName(datFile.AsSpan()); diff --git a/src/DevLauncher/Program.cs b/src/DevLauncher/Program.cs index bac989e..d1a5347 100644 --- a/src/DevLauncher/Program.cs +++ b/src/DevLauncher/Program.cs @@ -87,7 +87,7 @@ private async Task RunAppCoreAsync(string[] args, IServiceProvider appServi { var returnCode = await new RawDevLauncher(UpdatableApplicationEnvironment!, appServiceProvider) .RunAsync(args); - logger?.LogInformation($"RaW DevLauncher finished with code: {returnCode}"); + logger?.LogInformation("RaW DevLauncher finished with code: {ExitCode}", returnCode); return returnCode; } catch (Exception e) @@ -109,7 +109,7 @@ private async Task RunAppCoreAsync(string[] args, IServiceProvider appServi protected override void ResetApp() { - Logger?.LogDebug("Resetting Application"); + Logger?.LogDebug("Resetting Application..."); base.ResetApp(); diff --git a/src/DevLauncher/Update/RawDevLauncherUpdater.cs b/src/DevLauncher/Update/RawDevLauncherUpdater.cs index 4785455..ac4d185 100644 --- a/src/DevLauncher/Update/RawDevLauncherUpdater.cs +++ b/src/DevLauncher/Update/RawDevLauncherUpdater.cs @@ -34,7 +34,7 @@ public async Task AutoUpdateApplication(ProductBranch branch) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine($"Error while {currentAction}: {e.Message}"); - Logger?.LogError(e, $"Unable to check for updates: {e.Message}"); + Logger?.LogError(e, "Unable to check for updates: {Message}", e.Message); Console.ResetColor(); } } diff --git a/src/RawDevTools/Localization/LocalizationFileValidator.cs b/src/RawDevTools/Localization/LocalizationFileValidator.cs index 1bf9a9c..5c0d5fe 100644 --- a/src/RawDevTools/Localization/LocalizationFileValidator.cs +++ b/src/RawDevTools/Localization/LocalizationFileValidator.cs @@ -121,7 +121,7 @@ public LanguageType GetLanguage(string language) { LogOrThrow($"Unrecognized language '{language}'"); // If we don't throw, we return English - _logger?.LogWarning($"Language '{language}' is not supported. Fallback to English!"); + _logger?.LogWarning("Language '{Language}' is not supported. Fallback to English!", language); } return languageType; } diff --git a/src/RawDevTools/Services/LocalizationFileService.cs b/src/RawDevTools/Services/LocalizationFileService.cs index c98e411..3c1aba3 100644 --- a/src/RawDevTools/Services/LocalizationFileService.cs +++ b/src/RawDevTools/Services/LocalizationFileService.cs @@ -104,7 +104,8 @@ public void CompileLocalizationFile(LocalizationFile localizationFile, string da { var result = builder.AddEntry(entry.Key, entry.Value); if (!result.Added) - _logger?.LogWarning($"Unable to add KEY '{entry.Key}' to the DAT for language {localizationFile.Language}: {result.Message}"); + _logger?.LogWarning("Unable to add KEY '{Key}' to the DAT for language {Language}: {Message}", + entry.Key, localizationFile.Language, result.Message); } builder.Build(new DatFileInformation { FilePath = _fileSystem.Path.GetFullPath(datFile) }, overwrite); diff --git a/src/RawDevTools/Services/ModFinderService.cs b/src/RawDevTools/Services/ModFinderService.cs index 540b88b..3363ba5 100644 --- a/src/RawDevTools/Services/ModFinderService.cs +++ b/src/RawDevTools/Services/ModFinderService.cs @@ -52,7 +52,8 @@ public GameFinderResult FindAndAddModInCurrentDirectory() if (focDetectionResult.GameLocation is null) throw new GameException("Unable to find game installation: Wrong install path?"); - _logger?.LogInformation($"Found game {focDetectionResult.GameIdentity} at '{focDetectionResult.GameLocation.FullName}'"); + _logger?.LogInformation("Found game {GameIdentity} at '{Name}'", + focDetectionResult.GameIdentity, focDetectionResult.GameLocation.FullName); var foc = _gameFactory.CreateGame(focDetectionResult, CultureInfo.InvariantCulture); @@ -69,7 +70,8 @@ public GameFinderResult FindAndAddModInCurrentDirectory() var eawDetectionResult = gd.Detect(GameType.Eaw); if (eawDetectionResult.GameLocation is null) throw new GameException("Unable to find Empire at War installation."); - _logger?.LogInformation($"Found game {eawDetectionResult.GameIdentity} at '{eawDetectionResult.GameLocation.FullName}'"); + _logger?.LogInformation("Found game {GameIdentity} at '{Name}'", + eawDetectionResult.GameIdentity, eawDetectionResult.GameLocation.FullName); var eaw = _gameFactory.CreateGame(eawDetectionResult, CultureInfo.InvariantCulture); diff --git a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs index be76bd8..d2bbdc6 100644 --- a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs +++ b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs @@ -26,7 +26,7 @@ protected override Task RunCoreAsync(CancellationToken token) foreach (var fileToDelete in matcher.GetResultsInFullPath(mod.Directory.FullName)) { - Logger?.LogDebug($"Deleting old asset '{fileToDelete}'"); + Logger?.LogDebug("Deleting old asset '{File}'", fileToDelete); _fileSystem.File.DeleteWithRetry(fileToDelete); } diff --git a/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs b/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs index d2d0d08..5262dfb 100644 --- a/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs +++ b/src/RawDevTools/Steps/Build/CompileLocalizationStep.cs @@ -36,11 +36,11 @@ private void CompileDatFromLocalizationFile(string file) var updateChecker = new TimeStampBasesUpdateChecker(settings.CleanBuild, Services); if (!settings.CleanBuild && !updateChecker.RequiresUpdate(datFilePath, new List { file })) { - _logger?.LogDebug($"DAT data '{datFileName}' is already up to date. Skipping build."); + _logger?.LogDebug("DAT data '{DatFile}' is already up to date. Skipping build.", datFileName); return; } - _logger?.LogInformation($"Writing DAT data '{datFileName}'..."); + _logger?.LogInformation("Writing DAT data '{DatFile}'...", datFileName); var locFileService = new LocalizationFileService(Services, settings.WarnAsError); @@ -51,6 +51,6 @@ private void CompileDatFromLocalizationFile(string file) locFileService.CompileLocalizationFile(localizationFile, datFilePath, true); - _logger?.LogInformation($"Finished writing DAT data for language {localizationFile.Language}"); + _logger?.LogInformation("Finished writing DAT data for language {Language}", localizationFile.Language); } } \ No newline at end of file diff --git a/src/RawDevTools/Steps/Build/Meg/Config/RawLocalizedSFX2DMegConfiguration.cs b/src/RawDevTools/Steps/Build/Meg/Config/RawLocalizedSFX2DMegConfiguration.cs index 65a22e7..491cde6 100644 --- a/src/RawDevTools/Steps/Build/Meg/Config/RawLocalizedSFX2DMegConfiguration.cs +++ b/src/RawDevTools/Steps/Build/Meg/Config/RawLocalizedSFX2DMegConfiguration.cs @@ -54,7 +54,7 @@ private IEnumerable GetFilesToPack() if (IsLanguageSupported) throw new DirectoryNotFoundException($"Unable to find SFX directory: '{path}'"); - Logger?.LogDebug($"Unsupported Language {_language} - Switching to English"); + Logger?.LogDebug("Unsupported Language {Language} - Switching to English", _language); path = $"Data\\Audio\\Units\\{LanguageType.English}"; } @@ -71,7 +71,7 @@ private string LocalizeFileName(string fileName) { var newFileName = _gameLanguageManager.LocalizeFileName(fileName, _language, out var localized); if (!localized) - Logger?.LogWarning($"Unable to localize file '{fileName}'"); + Logger?.LogWarning("Unable to localize file '{File}'", fileName); return newFileName; } } \ No newline at end of file diff --git a/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs b/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs index da6f4ef..866b3be 100644 --- a/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs +++ b/src/RawDevTools/Steps/Build/Meg/PackMegFileStep.cs @@ -48,11 +48,11 @@ private void RunCore(CancellationToken token) if (!settings.CleanBuild && !updateChecker.RequiresUpdate(megFilePath, files)) { - _logger?.LogDebug($"MEG data '{megFileName}' is already up to date. Skipping build."); + _logger?.LogDebug("MEG data '{MegFile}' is already up to date. Skipping build.", megFileName); return; } - _logger?.LogInformation($"Writing MEG data '{megFileName}'..."); + _logger?.LogInformation("Writing MEG data '{MegFile}'...", megFileName); using var megBuilder = new EmpireAtWarMegBuilder(_config.VirtualRootDirectory.FullName, _serviceProvider); @@ -76,6 +76,6 @@ private void RunCore(CancellationToken token) } megBuilder.Build(new MegFileInformation(megFilePath, MegFileVersion.V1), true); - _logger?.LogInformation($"Finished writing MEG data '{megFileName}'..."); + _logger?.LogInformation("Finished writing MEG data '{MegFile}'...", megFileName); } } \ No newline at end of file diff --git a/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs b/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs index 1c0c6f9..32bda17 100644 --- a/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs +++ b/src/RawDevTools/Steps/Releasing/CopyReleaseStep.cs @@ -108,7 +108,7 @@ protected override async Task RunCoreAsync(CancellationToken token) 4, token); - _logger?.LogInformation($"Copied assets to SteamUploader at '{assetCopyPath}'"); + _logger?.LogInformation("Copied assets to SteamUploader at '{Path}'", assetCopyPath); } private bool ShallCopyFile(string fileToCopy) From 7dea09fe458dea11c22d60ed7d8872ca0bd4ac77 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 13:07:22 +0100 Subject: [PATCH 06/26] draft new make all apps compile --- RawDevTools.sln | 11 +---- src/DevLauncher/DevLauncher.csproj | 1 - src/DevLauncher/Program.cs | 5 +-- src/MegCompile/MegCompile.csproj | 3 +- src/MegCompile/PackSfxMegPipeline.cs | 44 +++++++++---------- src/MegCompile/Program.cs | 3 +- .../Services/RepublicAtWarService.cs | 28 ++++++++++++ src/TextCompile/CompileTextDiffsPipeline.cs | 16 +++++-- src/TextCompile/MergeDiffIntoDatStep.cs | 5 ++- 9 files changed, 71 insertions(+), 45 deletions(-) create mode 100644 src/RawDevTools/Services/RepublicAtWarService.cs diff --git a/RawDevTools.sln b/RawDevTools.sln index 6f4e119..6f39e92 100644 --- a/RawDevTools.sln +++ b/RawDevTools.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.6.33626.354 +# Visual Studio Version 18 +VisualStudioVersion = 18.4.11519.219 insiders MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevLauncher", "src\DevLauncher\DevLauncher.csproj", "{1BA491BC-2CD6-4270-9573-5FF9529D8D89}" EndProject @@ -39,8 +39,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PG.StarWarsGame.Files.ALO", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PG.StarWarsGame.Engine", "ModVerify\src\PetroglyphTools\PG.StarWarsGame.Engine\PG.StarWarsGame.Engine.csproj", "{301A0BA8-303F-415E-A961-4755FB3978D8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ModVerify.CliApp", "ModVerify\src\ModVerify.CliApp\ModVerify.CliApp.csproj", "{C5703F53-DC3D-4B4E-9E18-365124C72793}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RawDevTools", "src\RawDevTools\RawDevTools.csproj", "{E4F63116-B94A-43FB-ABA9-B9D491D9F6D9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TextCompile", "src\TextCompile\TextCompile.csproj", "{50E34854-BF6B-4170-BB4C-74830AB5609B}" @@ -113,10 +111,6 @@ Global {301A0BA8-303F-415E-A961-4755FB3978D8}.Debug|Any CPU.Build.0 = Debug|Any CPU {301A0BA8-303F-415E-A961-4755FB3978D8}.Release|Any CPU.ActiveCfg = Release|Any CPU {301A0BA8-303F-415E-A961-4755FB3978D8}.Release|Any CPU.Build.0 = Release|Any CPU - {C5703F53-DC3D-4B4E-9E18-365124C72793}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5703F53-DC3D-4B4E-9E18-365124C72793}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5703F53-DC3D-4B4E-9E18-365124C72793}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5703F53-DC3D-4B4E-9E18-365124C72793}.Release|Any CPU.Build.0 = Release|Any CPU {E4F63116-B94A-43FB-ABA9-B9D491D9F6D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E4F63116-B94A-43FB-ABA9-B9D491D9F6D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {E4F63116-B94A-43FB-ABA9-B9D491D9F6D9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -163,7 +157,6 @@ Global {D6AC444F-5CC4-4DAC-B974-E3E64B9761A3} = {FF4C3704-0C74-40B5-A38D-AF29B6385D85} {94267A81-F31C-4381-9E2B-868C0AC0E65A} = {FF4C3704-0C74-40B5-A38D-AF29B6385D85} {301A0BA8-303F-415E-A961-4755FB3978D8} = {FF4C3704-0C74-40B5-A38D-AF29B6385D85} - {C5703F53-DC3D-4B4E-9E18-365124C72793} = {D4C9B8AA-96E5-49F4-B8A4-765144E16548} {50E34854-BF6B-4170-BB4C-74830AB5609B} = {5A7785E7-C59E-4F2D-9596-352844693272} {BB759AD8-EEAC-4994-80A8-34E60B2FDA86} = {5A7785E7-C59E-4F2D-9596-352844693272} {846253D9-D766-8852-74B9-E1E04B9F2A81} = {3E986062-E81F-4833-A127-24FA73FBCB1B} diff --git a/src/DevLauncher/DevLauncher.csproj b/src/DevLauncher/DevLauncher.csproj index 106a1a8..6f7f992 100644 --- a/src/DevLauncher/DevLauncher.csproj +++ b/src/DevLauncher/DevLauncher.csproj @@ -60,7 +60,6 @@ - diff --git a/src/DevLauncher/Program.cs b/src/DevLauncher/Program.cs index d1a5347..50944ba 100644 --- a/src/DevLauncher/Program.cs +++ b/src/DevLauncher/Program.cs @@ -1,5 +1,4 @@ -using AET.ModVerify.Reporting.Reporters; -using AET.SteamAbstraction; +using AET.SteamAbstraction; using AnakinRaW.ApplicationBase; using AnakinRaW.ApplicationBase.Environment; using AnakinRaW.ApplicationBase.Update; @@ -145,8 +144,6 @@ protected override void CreateAppServices(IServiceCollection services, IReadOnly PetroglyphCommons.ContributeServices(services); PetroglyphEngineServiceContribution.ContributeServices(services); - services.RegisterJsonReporter(); - services.RegisterTextFileReporter(); services.AddSingleton(sp => new GitService(".", sp)); diff --git a/src/MegCompile/MegCompile.csproj b/src/MegCompile/MegCompile.csproj index 3d4808c..b319200 100644 --- a/src/MegCompile/MegCompile.csproj +++ b/src/MegCompile/MegCompile.csproj @@ -12,7 +12,8 @@ $(SolutionDir)RAW.ico - + disable + diff --git a/src/MegCompile/PackSfxMegPipeline.cs b/src/MegCompile/PackSfxMegPipeline.cs index f799c3f..d50d45f 100644 --- a/src/MegCompile/PackSfxMegPipeline.cs +++ b/src/MegCompile/PackSfxMegPipeline.cs @@ -1,47 +1,43 @@ -using System; -using System.Collections.Generic; -using System.IO.Abstractions; -using System.Threading.Tasks; +using AET.Modinfo.Spec; using AnakinRaW.CommonUtilities.SimplePipeline; -using Microsoft.Extensions.DependencyInjection; -using PG.StarWarsGame.Engine; -using PG.StarWarsGame.Engine.Localization; +using AnakinRaW.CommonUtilities.SimplePipeline.Runners; using PG.StarWarsGame.Infrastructure.Mods; +using RepublicAtWar.DevTools.Services; using RepublicAtWar.DevTools.Steps.Build.Meg; using RepublicAtWar.DevTools.Steps.Build.Meg.Config; using RepublicAtWar.DevTools.Steps.Settings; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; namespace RepublicAtWar.MegCompile; -internal class PackSfxMegPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) : ParallelPipeline(serviceProvider, 2) +internal class PackSfxMegPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) + : StepRunnerPipeline(serviceProvider) { - private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); - - protected override Task> BuildSteps() + private readonly RepublicAtWarService _republicAtWarService = new(serviceProvider); + + protected override IStepRunner CreateRunner() { - var languageManager = ServiceProvider.GetRequiredService() - .GetLanguageManager(GameEngineType.Foc); + return new AsyncStepRunner(2, ServiceProvider); + } + protected override Task> CreateRunnerSteps(CancellationToken token) + { IList steps = new List(); - foreach (var focLanguage in languageManager.SupportedLanguages) + foreach (var supportedLanguage in _republicAtWarService.GetSupportedLanguages()) { - var isRaWSupported = IsSupportedByRaw(focLanguage); + var hasSfxSupport = supportedLanguage.support.HasFlag(LanguageSupportLevel.SFX); // There is no need to build non-supported languages if we don't do a release or force a clean build - if (!isRaWSupported) + if (!hasSfxSupport) continue; steps.Add(new PackMegFileStep( - new RawLocalizedSfx2DMegConfiguration(focLanguage, isRaWSupported, mod, ServiceProvider), settings, + new RawLocalizedSfx2DMegConfiguration(supportedLanguage.langauge, hasSfxSupport, mod, ServiceProvider), settings, ServiceProvider)); } - return Task.FromResult(steps); } - - private bool IsSupportedByRaw(LanguageType focLanguage) - { - var path = _fileSystem.Path.Combine(mod.Directory.FullName, "Data/Audio/Units", focLanguage.ToString()); - return _fileSystem.Directory.Exists(path); - } } \ No newline at end of file diff --git a/src/MegCompile/Program.cs b/src/MegCompile/Program.cs index 9f9ac26..c55a61c 100644 --- a/src/MegCompile/Program.cs +++ b/src/MegCompile/Program.cs @@ -48,7 +48,8 @@ static async Task Main() private async Task Run() { var gameFinderResult = new ModFinderService(serviceProvider).FindAndAddModInCurrentDirectory(); - var pipeline = new PackSfxMegPipeline(gameFinderResult.RepublicAtWar, new BuildSettings { CleanBuild = true }, serviceProvider); + var pipeline = new PackSfxMegPipeline(gameFinderResult.RepublicAtWar, + new BuildSettings { CleanBuild = true }, serviceProvider); await pipeline.RunAsync(); } diff --git a/src/RawDevTools/Services/RepublicAtWarService.cs b/src/RawDevTools/Services/RepublicAtWarService.cs new file mode 100644 index 0000000..383d086 --- /dev/null +++ b/src/RawDevTools/Services/RepublicAtWarService.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using AET.Modinfo.Spec; +using Microsoft.Extensions.DependencyInjection; +using PG.StarWarsGame.Engine; +using PG.StarWarsGame.Engine.Localization; + +namespace RepublicAtWar.DevTools.Services; + +public sealed class RepublicAtWarService(IServiceProvider serviceProvider) +{ + private readonly IGameLanguageManager _languageManager = serviceProvider + .GetRequiredService().GetLanguageManager(GameEngineType.Foc); + + public IEnumerable<(LanguageType langauge, LanguageSupportLevel support)> GetSupportedLanguages() + { + var supportedLanguages = _languageManager.SupportedLanguages; + + foreach (var language in supportedLanguages) + { + if (language is LanguageType.English or LanguageType.German) + yield return (language, LanguageSupportLevel.FullLocalized); + else + yield return (language, LanguageSupportLevel.Text); + } + } +} \ No newline at end of file diff --git a/src/TextCompile/CompileTextDiffsPipeline.cs b/src/TextCompile/CompileTextDiffsPipeline.cs index e2efe7f..ed6e2dd 100644 --- a/src/TextCompile/CompileTextDiffsPipeline.cs +++ b/src/TextCompile/CompileTextDiffsPipeline.cs @@ -1,19 +1,27 @@ using System; using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline; using RepublicAtWar.DevTools.Steps.Settings; namespace RepublicAtWar.TextCompile; -internal class CompileTextDiffsPipeline(BuildSettings settings, IServiceProvider serviceProvider, bool failFast = true) - : SequentialPipeline(serviceProvider, failFast) +internal class CompileTextDiffsPipeline : SequentialPipeline { - protected override Task> BuildSteps() + private readonly BuildSettings _settings; + + public CompileTextDiffsPipeline(BuildSettings settings, IServiceProvider serviceProvider) : base(serviceProvider) + { + _settings = settings; + FailFast = true; + } + + protected override Task> CreateRunnerSteps(CancellationToken token) { IList steps = new List { - new MergeDiffIntoDatStep(ServiceProvider, settings) + new MergeDiffIntoDatStep(ServiceProvider, _settings) }; return Task.FromResult(steps); } diff --git a/src/TextCompile/MergeDiffIntoDatStep.cs b/src/TextCompile/MergeDiffIntoDatStep.cs index 93527b1..ecf9c31 100644 --- a/src/TextCompile/MergeDiffIntoDatStep.cs +++ b/src/TextCompile/MergeDiffIntoDatStep.cs @@ -3,6 +3,7 @@ using System.IO.Abstractions; using System.Linq; using System.Threading; +using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using PG.StarWarsGame.Engine.Localization; @@ -19,7 +20,7 @@ internal class MergeDiffIntoDatStep(IServiceProvider serviceProvider, BuildSetti private readonly LocalizationFileService _localizationFileService = new(serviceProvider, buildSettings.WarnAsError); - protected override void RunCore(CancellationToken token) + protected override Task RunCoreAsync(CancellationToken token) { var diffFiles = _fileSystem.Directory.EnumerateFiles("Data\\Text", "Diff_MasterTextFile_*.txt"); var textFiles = _fileSystem.Directory.EnumerateFiles("Data\\Text", "MasterTextFile_*.txt"); @@ -33,6 +34,8 @@ protected override void RunCore(CancellationToken token) var locFile = _localizationFileService.ReadLocalizationFile(textFile); _localizationFileService.CompileLocalizationFile(locFile, datFile , true); } + + return Task.CompletedTask; } private void MergeDiffIntoDatOrText(string diffFile) From a1d1112531fd6cb7f489f96b3010af062a49d5b4 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 13:08:18 +0100 Subject: [PATCH 07/26] draft localization verify --- src/DevLauncher/Pipelines/BuildPipeline.cs | 32 ++++++----------- .../Pipelines/ReleaseRawPipeline.cs | 34 +++++++++++++++---- .../CreateUploadMetaArtifactsStep.cs | 7 +--- .../Steps/Releasing/VerifyLocalizationStep.cs | 31 +++++++++++++++++ 4 files changed, 69 insertions(+), 35 deletions(-) create mode 100644 src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs diff --git a/src/DevLauncher/Pipelines/BuildPipeline.cs b/src/DevLauncher/Pipelines/BuildPipeline.cs index b5324e6..a5369f7 100644 --- a/src/DevLauncher/Pipelines/BuildPipeline.cs +++ b/src/DevLauncher/Pipelines/BuildPipeline.cs @@ -1,16 +1,14 @@ using System; using System.Collections.Generic; -using System.IO.Abstractions; using System.Linq; using System.Threading; using System.Threading.Tasks; +using AET.Modinfo.Spec; using AnakinRaW.CommonUtilities.SimplePipeline; using AnakinRaW.CommonUtilities.SimplePipeline.Runners; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; -using Microsoft.Extensions.DependencyInjection; -using PG.StarWarsGame.Engine; -using PG.StarWarsGame.Engine.Localization; using PG.StarWarsGame.Infrastructure.Mods; +using RepublicAtWar.DevTools.Services; using RepublicAtWar.DevTools.Steps.Build; using RepublicAtWar.DevTools.Steps.Build.Meg; using RepublicAtWar.DevTools.Steps.Build.Meg.Config; @@ -20,20 +18,16 @@ namespace RepublicAtWar.DevLauncher.Pipelines; internal sealed class BuildPipeline : SequentialPipeline { - private readonly IFileSystem _fileSystem; - - private readonly IGameLanguageManager _languageManager; - + private readonly RepublicAtWarService _republicAtWarService; private readonly BuildSettings _settings; private readonly IPhysicalMod _mod; + public BuildPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) : base(serviceProvider) { _mod = mod; - _fileSystem = serviceProvider.GetRequiredService(); - _languageManager = serviceProvider - .GetRequiredService().GetLanguageManager(GameEngineType.Foc); _settings = settings ?? throw new ArgumentNullException(nameof(settings)); + _republicAtWarService = new RepublicAtWarService(serviceProvider); FailFast = true; } @@ -58,17 +52,17 @@ private IEnumerable CreateBuildSteps() yield return new PackMegFileStep(new RawNonLocalizedSfxMegConfiguration(_mod, ServiceProvider), _settings, ServiceProvider); yield return new PackIconsStep(_settings, ServiceProvider); yield return new CompileLocalizationStep(_settings, ServiceProvider); - - foreach (var focLanguage in _languageManager.SupportedLanguages) + + foreach (var supportedLanguage in _republicAtWarService.GetSupportedLanguages()) { - var isRaWSupported = IsSupportedByRaw(focLanguage); + var hasSfxSupport = supportedLanguage.support.HasFlag(LanguageSupportLevel.SFX); // There is no need to build non-supported languages if we don't do a release or force a clean build - if (!isRaWSupported && !_settings.CleanBuild) + if (!hasSfxSupport && !_settings.CleanBuild) continue; yield return new PackMegFileStep( - new RawLocalizedSfx2DMegConfiguration(focLanguage, isRaWSupported, _mod, ServiceProvider), + new RawLocalizedSfx2DMegConfiguration(supportedLanguage.langauge, hasSfxSupport, _mod, ServiceProvider), _settings, ServiceProvider); } @@ -82,12 +76,6 @@ private IList CreatePreBuildSteps() }; } - private bool IsSupportedByRaw(LanguageType focLanguage) - { - var path = _fileSystem.Path.Combine(_mod.Directory.FullName, "Data/Audio/Units", focLanguage.ToString()); - return _fileSystem.Directory.Exists(path); - } - private class CoreBuildPipeline(BuildPipeline parent, IServiceProvider serviceProvider) : StepRunnerPipeline(serviceProvider) { diff --git a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs index 7260a7e..b77a156 100644 --- a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs +++ b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; +using AET.Modinfo.Model; using AnakinRaW.CommonUtilities.SimplePipeline; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; @@ -11,6 +8,12 @@ using RepublicAtWar.DevLauncher.Utilities; using RepublicAtWar.DevTools.Steps.Releasing; using RepublicAtWar.DevTools.Steps.Settings; +using Semver; +using System; +using System.Collections.Generic; +using System.IO.Abstractions; +using System.Threading; +using System.Threading.Tasks; namespace RepublicAtWar.DevLauncher.Pipelines; @@ -21,9 +24,12 @@ internal class ReleaseRawPipeline : SequentialPipeline private readonly ReleaseSettings _releaseSettings; private readonly IPhysicalMod _republicAtWar; private readonly IGame _empireAtWarGame; + private readonly IFileSystem _fileSystem; private ProgressBarReporter? _progressBarReporter; + private SemVersion _modVersion = null!; + public ReleaseRawPipeline( IPhysicalMod republicAtWar, IGame empireAtWarGame, @@ -37,14 +43,16 @@ public ReleaseRawPipeline( _republicAtWar = republicAtWar ?? throw new ArgumentNullException(nameof(republicAtWar)); _empireAtWarGame = empireAtWarGame; _logger = serviceProvider.GetService()?.CreateLogger(GetType()); + _fileSystem = serviceProvider.GetRequiredService(); } - protected override Task> CreateRunnerSteps(CancellationToken token) { + _modVersion = SemVersion.Parse(_fileSystem.File.ReadAllText("version.txt"), SemVersionStyles.Strict); + return Task.Run>(() => { - var createArtifactStep = new CreateUploadMetaArtifactsStep(ServiceProvider); + var createArtifactStep = new CreateUploadMetaArtifactsStep(_modVersion, ServiceProvider); var copyStep = new CopyReleaseStep(createArtifactStep, _releaseSettings, ServiceProvider); _progressBarReporter = new(copyStep); @@ -55,6 +63,9 @@ protected override Task> CreateRunnerSteps(CancellationToken token) new RunPipelineStep(new BuildPipeline(_republicAtWar, _buildSettings, ServiceProvider), ServiceProvider), // Verify // new RunPipelineStep(new VerifyPipeline(_options, _republicAtWar, _empireAtWarGame, ServiceProvider), ServiceProvider), + + new VerifyLocalizationStep(_republicAtWar, _buildSettings, _modVersion.IsPrerelease, ServiceProvider), + // Build Release artifacts createArtifactStep, // Copy to Release @@ -67,7 +78,7 @@ protected override void OnExecuteStarted() { base.OnExecuteStarted(); - _logger?.LogInformation("Release Republic at War"); + _logger?.LogInformation("Releasing {Raw}...", "Republic at War"); if (!_buildSettings.CleanBuild) { @@ -75,6 +86,15 @@ protected override void OnExecuteStarted() _logger?.LogWarning("Releasing without Clean build!!!"); _logger?.LogWarning("Releasing without Clean build!!!"); } + + if (_modVersion.IsPrerelease) + { + Console.ForegroundColor = ConsoleColor.DarkYellow; + Console.WriteLine("Building a preview version!!!"); + Console.WriteLine("Building a preview version!!!"); + Console.WriteLine("Building a preview version!!!"); + Console.ResetColor(); + } } protected override void DisposeResources() diff --git a/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs b/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs index af925c1..b394a94 100644 --- a/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs +++ b/src/RawDevTools/Steps/Releasing/CreateUploadMetaArtifactsStep.cs @@ -14,7 +14,7 @@ namespace RepublicAtWar.DevTools.Steps.Releasing; -public class CreateUploadMetaArtifactsStep(IServiceProvider serviceProvider) : PipelineStep(serviceProvider) +public class CreateUploadMetaArtifactsStep(SemVersion version, IServiceProvider serviceProvider) : PipelineStep(serviceProvider) { private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); private readonly ILogger? _logger = serviceProvider.GetService()?.CreateLogger(typeof(CreateUploadMetaArtifactsStep)); @@ -34,7 +34,6 @@ private void RunCore(CancellationToken token) { _logger?.LogInformation("Creating Modinfo, Steam json and splashes..."); - var version = SemVersion.Parse(_fileSystem.File.ReadAllText("version.txt"), SemVersionStyles.Strict); _replacementVariables.Add("version", version.ToString()); _replacementVariables.Add("version-minor", ToMinorOnly(version)); @@ -44,10 +43,6 @@ private void RunCore(CancellationToken token) string steamDescription; if (version.IsPrerelease) { - Console.WriteLine("Building a preview version!!!"); - Console.WriteLine("Building a preview version!!!"); - Console.WriteLine("Building a preview version!!!"); - releaseInfo = ModinfoData.Parse(_fileSystem.File.ReadAllText("modinfo-beta.json")); steamDescription = _fileSystem.File.ReadAllText("SteamText-Beta.txt"); _fileSystem.File.Copy("splash-beta.png", "splash.png", true); diff --git a/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs new file mode 100644 index 0000000..74282d9 --- /dev/null +++ b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs @@ -0,0 +1,31 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using AnakinRaW.CommonUtilities.SimplePipeline.Steps; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using PG.StarWarsGame.Infrastructure.Mods; +using RepublicAtWar.DevTools.Steps.Settings; + +namespace RepublicAtWar.DevTools.Steps.Releasing; + +public class VerifyLocalizationStep( + IPhysicalMod republicAtWar, + BuildSettings buildSettings, + bool modVersionIsPrerelease, + IServiceProvider serviceProvider) : PipelineStep(serviceProvider) +{ + private readonly ILogger? _logger = + serviceProvider.GetService()?.CreateLogger(typeof(VerifyLocalizationStep)); + + + protected override Task RunCoreAsync(CancellationToken token) + { + return Task.Run(() => RunCore(token), CancellationToken.None); + } + + private void RunCore(CancellationToken token) + { + _logger?.LogInformation("Verifying localization..."); + } +} \ No newline at end of file From 996a9f4950951fcd47ff44e4baeb12fd3092fd22 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 15:19:20 +0100 Subject: [PATCH 08/26] add localization verification --- .../Pipelines/ReleaseRawPipeline.cs | 6 +- .../Services/LocalizationFileService.cs | 4 +- .../Steps/Releasing/VerifyLocalizationStep.cs | 275 +++++++++++++++++- 3 files changed, 277 insertions(+), 8 deletions(-) diff --git a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs index b77a156..1936d5b 100644 --- a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs +++ b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs @@ -44,6 +44,8 @@ public ReleaseRawPipeline( _empireAtWarGame = empireAtWarGame; _logger = serviceProvider.GetService()?.CreateLogger(GetType()); _fileSystem = serviceProvider.GetRequiredService(); + + FailFast = true; } protected override Task> CreateRunnerSteps(CancellationToken token) @@ -64,7 +66,7 @@ protected override Task> CreateRunnerSteps(CancellationToken token) // Verify // new RunPipelineStep(new VerifyPipeline(_options, _republicAtWar, _empireAtWarGame, ServiceProvider), ServiceProvider), - new VerifyLocalizationStep(_republicAtWar, _buildSettings, _modVersion.IsPrerelease, ServiceProvider), + new VerifyLocalizationStep(_republicAtWar, _modVersion.IsPrerelease, ServiceProvider), // Build Release artifacts createArtifactStep, @@ -78,7 +80,7 @@ protected override void OnExecuteStarted() { base.OnExecuteStarted(); - _logger?.LogInformation("Releasing {Raw}...", "Republic at War"); + _logger?.LogInformation("Releasing {Raw} v{Version}...", "Republic at War", _modVersion); if (!_buildSettings.CleanBuild) { diff --git a/src/RawDevTools/Services/LocalizationFileService.cs b/src/RawDevTools/Services/LocalizationFileService.cs index 3c1aba3..0dd727d 100644 --- a/src/RawDevTools/Services/LocalizationFileService.cs +++ b/src/RawDevTools/Services/LocalizationFileService.cs @@ -19,8 +19,8 @@ namespace RepublicAtWar.DevTools.Services; public class LocalizationFileService(IServiceProvider serviceProvider, bool warningAsError = false) { - private const string EnglishDAT = "MasterTextFile_English.DAT"; - private const string EnglishText = "MasterTextFile_English.txt"; + internal const string EnglishDAT = "MasterTextFile_English.DAT"; + internal const string EnglishText = "MasterTextFile_English.txt"; private readonly IServiceProvider _serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); diff --git a/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs index 74282d9..d59b223 100644 --- a/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs +++ b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs @@ -1,23 +1,42 @@ using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Abstractions; +using System.Linq; +using System.Text; using System.Threading; using System.Threading.Tasks; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using PG.StarWarsGame.Engine; +using PG.StarWarsGame.Engine.Localization; +using PG.StarWarsGame.Files.DAT.Data; +using PG.StarWarsGame.Files.DAT.Files; +using PG.StarWarsGame.Files.DAT.Services; +using PG.StarWarsGame.Files.MEG.Data.Archives; +using PG.StarWarsGame.Files.MEG.Services; using PG.StarWarsGame.Infrastructure.Mods; -using RepublicAtWar.DevTools.Steps.Settings; +using RepublicAtWar.DevTools.Services; namespace RepublicAtWar.DevTools.Steps.Releasing; public class VerifyLocalizationStep( IPhysicalMod republicAtWar, - BuildSettings buildSettings, - bool modVersionIsPrerelease, + bool isPrerelease, IServiceProvider serviceProvider) : PipelineStep(serviceProvider) { private readonly ILogger? _logger = serviceProvider.GetService()?.CreateLogger(typeof(VerifyLocalizationStep)); + private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); + private readonly IDatFileService _datFileService = serviceProvider.GetRequiredService(); + private readonly IDatModelService _datModelService = serviceProvider.GetRequiredService(); + private readonly IMegFileService _megFileService = serviceProvider.GetRequiredService(); + private readonly RepublicAtWarService _republicAtWarService = new(serviceProvider); + private readonly IGameLanguageManager _languageManager = serviceProvider + .GetRequiredService().GetLanguageManager(GameEngineType.Foc); + protected override Task RunCoreAsync(CancellationToken token) { @@ -25,7 +44,255 @@ protected override Task RunCoreAsync(CancellationToken token) } private void RunCore(CancellationToken token) - { + { _logger?.LogInformation("Verifying localization..."); + + var reportBuilder = new StringBuilder(); + var hasErrors = false; + + var supportedLanguages = _republicAtWarService.GetSupportedLanguages() + .Select(x => x.langauge) + .ToList(); + + hasErrors |= VerifyText(reportBuilder, supportedLanguages, token); + hasErrors |= VerifySpeech(reportBuilder, supportedLanguages, token); + hasErrors |= VerifySfx(reportBuilder, supportedLanguages, token); + + var reportPath = _fileSystem.Path.Combine(republicAtWar.Directory.FullName, "localization_verification.txt"); + if (!hasErrors) + { + if (_fileSystem.File.Exists(reportPath)) + _fileSystem.File.Delete(reportPath); + _logger?.LogInformation("Localization verification passed."); + return; + } + + _fileSystem.File.WriteAllText(reportPath, reportBuilder.ToString()); + + LogOrThrow(reportPath); + } + + private void LogOrThrow(string reportPath) + { + if (!isPrerelease) + throw new InvalidOperationException("Localization verification failed. See localization_verification.txt for details."); + _logger?.LogWarning("Localization verification failed. Report written to {ReportPath}", reportPath); + } + + private bool VerifyText( + StringBuilder reportBuilder, + IReadOnlyCollection supportedLanguages, + CancellationToken token) + { + var hasErrors = false; + var textDir = _fileSystem.Path.Combine(republicAtWar.Directory.FullName, "Data", "Text"); + if (!_fileSystem.Directory.Exists(textDir)) + { + reportBuilder.AppendLine($"Text directory not found: {textDir}"); + return false; + } + + var englishDatModel = GetDatModel(LanguageType.English); + + if (englishDatModel == null) + throw new FileNotFoundException($"Missing required English reference file: MasterTextFile_English.dat in {textDir}"); + + token.ThrowIfCancellationRequested(); + + foreach (var language in supportedLanguages) + { + if (language == LanguageType.English) + continue; + + var langDatModel = GetDatModel(language); + + if (langDatModel == null) + { + reportBuilder.AppendLine($"Missing DAT file for {language}: MasterTextFile_{language}.dat"); + hasErrors = true; + continue; + } + + var missingKeys = _datModelService.GetMissingKeysFromBase(englishDatModel, langDatModel).ToList(); + if (missingKeys.Any()) + { + reportBuilder.AppendLine($"Language {language} is missing {missingKeys.Count} keys from MasterTextFile_{language}.dat:"); + foreach (var key in missingKeys) + reportBuilder.AppendLine($" - {key}"); + hasErrors = true; + } + + var additionalKeys = _datModelService.GetMissingKeysFromBase(langDatModel, englishDatModel).ToList(); + if (additionalKeys.Any()) + { + reportBuilder.AppendLine($"Language {language} has {additionalKeys.Count} additional keys in MasterTextFile_{language}.dat (not in English):"); + foreach (var key in additionalKeys) + reportBuilder.AppendLine($" - {key}"); + hasErrors = true; + } + } + return hasErrors; + } + + private IDatModel? GetDatModel(LanguageType language) + { + var textDir = _fileSystem.Path.Combine(republicAtWar.Directory.FullName, "Data", "Text"); + if (!_fileSystem.Directory.Exists(textDir)) + return null; + + var expectedFileName = $"MasterTextFile_{language}.dat"; + + var filePath = _fileSystem.Directory.EnumerateFiles(textDir, "*.dat") + .FirstOrDefault(f => _fileSystem.Path.GetFileName(f).Equals(expectedFileName, StringComparison.OrdinalIgnoreCase)); + + return filePath == null ? null : _datFileService.LoadAs(filePath, DatFileType.OrderedByCrc32).Content; + } + + private bool VerifySpeech(StringBuilder reportBuilder, + IReadOnlyCollection supportedLanguages, + CancellationToken token) + { + var speechDir = _fileSystem.Path.Combine(republicAtWar.Directory.FullName, "Data", "Audio", "Speech"); + var englishSpeechDir = _fileSystem.Path.Combine(speechDir, "English"); + + if (!_fileSystem.Directory.Exists(englishSpeechDir)) + throw new DirectoryNotFoundException($"Missing required English reference speech directory: {englishSpeechDir}"); + + var englishFiles = _fileSystem.Directory.GetFiles(englishSpeechDir, "*", SearchOption.TopDirectoryOnly) + .Select(f => _fileSystem.Path.GetFileName(f)) + .ToList(); + + var hasErrors = VerifyEnglishFilesLocalizable(reportBuilder, englishFiles, "Speech"); + + foreach (var language in supportedLanguages) + { + if (language == LanguageType.English) + continue; + + token.ThrowIfCancellationRequested(); + + var langSpeechDir = _fileSystem.Path.Combine(speechDir, language.ToString()); + if (!_fileSystem.Directory.Exists(langSpeechDir)) + { + reportBuilder.AppendLine($"Missing speech directory for {language}: {langSpeechDir}"); + hasErrors = true; + continue; + } + + var langFiles = new HashSet(_fileSystem.Directory.GetFiles(langSpeechDir, "*", SearchOption.TopDirectoryOnly) + .Select(f => _fileSystem.Path.GetFileName(f)), StringComparer.OrdinalIgnoreCase); + + hasErrors |= VerifyFileParity(reportBuilder, language, englishFiles, langFiles, langSpeechDir); + } + + return hasErrors; + } + + private bool VerifyEnglishFilesLocalizable(StringBuilder reportBuilder, IEnumerable englishFiles, string category) + { + var nonLocalizable = englishFiles.Where(f => !_languageManager.IsFileNameLocalizable(f, true)).ToList(); + if (nonLocalizable.Any()) + { + reportBuilder.AppendLine($"The following English files in {category} are not localizable and should be renamed:"); + foreach (var f in nonLocalizable) + reportBuilder.AppendLine($" - {f}"); + return true; + } + return false; + } + + private bool VerifyFileParity( + StringBuilder reportBuilder, + LanguageType language, + IEnumerable englishFiles, + HashSet langFiles, + string location) + { + var hasErrors = false; + var missingInLang = new List(); + var expectedLocalizedNames = new HashSet(StringComparer.OrdinalIgnoreCase); + + foreach (var englishFile in englishFiles) + { + var localizedName = _languageManager.LocalizeFileName(englishFile, language, out _); + expectedLocalizedNames.Add(localizedName); + if (!langFiles.Contains(localizedName)) + missingInLang.Add(localizedName); + } + + if (missingInLang.Any()) + { + reportBuilder.AppendLine($"Language {language} has {missingInLang.Count} missing/mismatching files in {location}."); + foreach (var missingFile in missingInLang) + reportBuilder.AppendLine($" - {missingFile}"); + hasErrors = true; + } + + var additionalInLang = langFiles.Where(f => !expectedLocalizedNames.Contains(f)).ToList(); + if (additionalInLang.Any()) + { + reportBuilder.AppendLine($"Language {language} has {additionalInLang.Count} additional files in {location} (not in English):"); + foreach (var extraFile in additionalInLang) + reportBuilder.AppendLine($" - {extraFile}"); + hasErrors = true; + } + + return hasErrors; + } + + private bool VerifySfx(StringBuilder reportBuilder, + IReadOnlyCollection supportedLanguages, + CancellationToken token) + { + var englishMeg = GetMegArchive("Data/Audio/SFX/voices_English.meg"); + if (englishMeg == null) + throw new FileNotFoundException("Missing required English reference SFX MEG: Data/Audio/SFX/voices_English.meg"); + + return VerifyMegInternal(reportBuilder, supportedLanguages, englishMeg, l => $"Data/Audio/SFX/voices_{l}.meg", token); + } + + private bool VerifyMegInternal(StringBuilder reportBuilder, + IReadOnlyCollection supportedLanguages, + IMegArchive englishArchive, + Func megPathFunc, + CancellationToken token) + { + var englishFiles = englishArchive.Select(entry => entry.Path).ToList(); + + var hasErrors = VerifyEnglishFilesLocalizable(reportBuilder, englishFiles, "SFX"); + + foreach (var language in supportedLanguages) + { + if (language == LanguageType.English) + continue; + + token.ThrowIfCancellationRequested(); + + var megPath = megPathFunc(language); + var langArchive = GetMegArchive(megPath); + + if (langArchive == null) + { + reportBuilder.AppendLine($"Missing MEG file for {language}: {megPath}"); + hasErrors = true; + continue; + } + + var langFiles = new HashSet(StringComparer.OrdinalIgnoreCase); + foreach (var entry in langArchive) + langFiles.Add(entry.Path); + + hasErrors |= VerifyFileParity(reportBuilder, language, englishFiles, langFiles, megPath); + } + + return hasErrors; + } + + private IMegArchive? GetMegArchive(string relativePath) + { + var fullPath = _fileSystem.Path.Combine(republicAtWar.Directory.FullName, relativePath); + return !_fileSystem.File.Exists(fullPath) + ? null + : _megFileService.Load(fullPath).Archive; } } \ No newline at end of file From f455c8e2293a274485ee6d175bb3b4ba1276a5ac Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 15:40:42 +0100 Subject: [PATCH 09/26] add file type validation for localization verification --- .../Steps/Releasing/VerifyLocalizationStep.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs index d59b223..089a18d 100644 --- a/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs +++ b/src/RawDevTools/Steps/Releasing/VerifyLocalizationStep.cs @@ -164,6 +164,15 @@ private bool VerifySpeech(StringBuilder reportBuilder, var hasErrors = VerifyEnglishFilesLocalizable(reportBuilder, englishFiles, "Speech"); + var nonMp3Files = englishFiles.Where(f => !_fileSystem.Path.GetExtension(f).Equals(".mp3", StringComparison.OrdinalIgnoreCase)).ToList(); + if (nonMp3Files.Any()) + { + reportBuilder.AppendLine("The following English files in Speech are not .mp3 files:"); + foreach (var f in nonMp3Files) + reportBuilder.AppendLine($" - {f}"); + hasErrors = true; + } + foreach (var language in supportedLanguages) { if (language == LanguageType.English) @@ -261,6 +270,15 @@ private bool VerifyMegInternal(StringBuilder reportBuilder, var hasErrors = VerifyEnglishFilesLocalizable(reportBuilder, englishFiles, "SFX"); + var nonWavFiles = englishFiles.Where(f => !_fileSystem.Path.GetExtension(f).Equals(".wav", StringComparison.OrdinalIgnoreCase)).ToList(); + if (nonWavFiles.Any()) + { + reportBuilder.AppendLine("The following English files in SFX are not .wav files:"); + foreach (var f in nonWavFiles) + reportBuilder.AppendLine($" - {f}"); + hasErrors = true; + } + foreach (var language in supportedLanguages) { if (language == LanguageType.English) From 2f41e8dd1d98e9700bf29445bde8784a7f5f4981 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 15:41:08 +0100 Subject: [PATCH 10/26] add step to localize unsupported speech files during build --- src/DevLauncher/Pipelines/BuildPipeline.cs | 2 +- .../Steps/Build/CleanOutdatedAssetsStep.cs | 20 +++++ .../Build/LocalizeUnsupportedSpeechStep.cs | 78 +++++++++++++++++++ 3 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 src/RawDevTools/Steps/Build/LocalizeUnsupportedSpeechStep.cs diff --git a/src/DevLauncher/Pipelines/BuildPipeline.cs b/src/DevLauncher/Pipelines/BuildPipeline.cs index a5369f7..c124398 100644 --- a/src/DevLauncher/Pipelines/BuildPipeline.cs +++ b/src/DevLauncher/Pipelines/BuildPipeline.cs @@ -22,7 +22,6 @@ internal sealed class BuildPipeline : SequentialPipeline private readonly BuildSettings _settings; private readonly IPhysicalMod _mod; - public BuildPipeline(IPhysicalMod mod, BuildSettings settings, IServiceProvider serviceProvider) : base(serviceProvider) { _mod = mod; @@ -52,6 +51,7 @@ private IEnumerable CreateBuildSteps() yield return new PackMegFileStep(new RawNonLocalizedSfxMegConfiguration(_mod, ServiceProvider), _settings, ServiceProvider); yield return new PackIconsStep(_settings, ServiceProvider); yield return new CompileLocalizationStep(_settings, ServiceProvider); + yield return new LocalizeUnsupportedSpeechStep(_mod, _settings, ServiceProvider); foreach (var supportedLanguage in _republicAtWarService.GetSupportedLanguages()) { diff --git a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs index d2bbdc6..dff76f6 100644 --- a/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs +++ b/src/RawDevTools/Steps/Build/CleanOutdatedAssetsStep.cs @@ -4,6 +4,9 @@ using System.Threading.Tasks; using AnakinRaW.CommonUtilities.FileSystem; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; +using AET.Modinfo.Spec; +using PG.StarWarsGame.Engine.Localization; +using RepublicAtWar.DevTools.Services; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.FileSystemGlobbing; using Microsoft.Extensions.Logging; @@ -30,6 +33,23 @@ protected override Task RunCoreAsync(CancellationToken token) _fileSystem.File.DeleteWithRetry(fileToDelete); } + var republicAtWarService = new RepublicAtWarService(Services); + foreach (var (language, support) in republicAtWarService.GetSupportedLanguages()) + { + if (language == LanguageType.English) + continue; + + if (support.HasFlag(LanguageSupportLevel.Speech)) + continue; + + var targetDir = _fileSystem.Path.Combine(mod.Directory.FullName, "Data\\Audio\\Speech", language.ToString()); + if (_fileSystem.Directory.Exists(targetDir)) + { + Logger?.LogDebug("Deleting (unsupported) localized speech directory '{Directory}'", targetDir); + _fileSystem.Directory.Delete(targetDir, true); + } + } + Logger?.LogInformation("Finished cleaning outdated assets."); }, CancellationToken.None); } diff --git a/src/RawDevTools/Steps/Build/LocalizeUnsupportedSpeechStep.cs b/src/RawDevTools/Steps/Build/LocalizeUnsupportedSpeechStep.cs new file mode 100644 index 0000000..81fab7b --- /dev/null +++ b/src/RawDevTools/Steps/Build/LocalizeUnsupportedSpeechStep.cs @@ -0,0 +1,78 @@ +using System; +using System.IO.Abstractions; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using AET.Modinfo.Spec; +using AnakinRaW.CommonUtilities.FileSystem; +using AnakinRaW.CommonUtilities.SimplePipeline.Steps; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using PG.StarWarsGame.Engine; +using PG.StarWarsGame.Engine.Localization; +using PG.StarWarsGame.Infrastructure; +using RepublicAtWar.DevTools.Services; +using RepublicAtWar.DevTools.Steps.Settings; + +namespace RepublicAtWar.DevTools.Steps.Build; + +public class LocalizeUnsupportedSpeechStep(IPhysicalPlayableObject physicalGameObject, BuildSettings settings, IServiceProvider serviceProvider) + : PipelineStep(serviceProvider) +{ + private readonly IFileSystem _fileSystem = serviceProvider.GetRequiredService(); + private readonly ILogger? _logger = serviceProvider.GetService()?.CreateLogger(typeof(LocalizeUnsupportedSpeechStep)); + private readonly RepublicAtWarService _republicAtWarService = new(serviceProvider); + private readonly IGameLanguageManager _gameLanguageManager = serviceProvider.GetRequiredService() + .GetLanguageManager(GameEngineType.Foc); + + protected override Task RunCoreAsync(CancellationToken token) + { + return Task.Run(() => + { + var languages = _republicAtWarService.GetSupportedLanguages().ToList(); + var englishSpeechDir = _fileSystem.Path.Combine(physicalGameObject.Directory.FullName, "Data\\Audio\\Speech\\English"); + + if (!_fileSystem.Directory.Exists(englishSpeechDir)) + throw new InvalidOperationException("English speech directory not found. Skipping localization."); + + foreach (var (language, support) in languages) + { + if (language == LanguageType.English) + continue; + + if (support.HasFlag(LanguageSupportLevel.Speech)) + continue; + + LocalizeSpeechFromEnglish(language, englishSpeechDir); + } + }, CancellationToken.None); + } + + private void LocalizeSpeechFromEnglish(LanguageType language, string englishSpeechDir) + { + var targetDir = _fileSystem.Path.Combine(physicalGameObject.Directory.FullName, "Data\\Audio\\Speech", language.ToString()); + + _logger?.LogInformation("Localizing speech for language {Language} using English language files...", language); + + var overwriteOption = settings.CleanBuild + ? DirectoryOverwriteOption.CleanOverwrite + : DirectoryOverwriteOption.MergeOverwrite; + + _fileSystem.DirectoryInfo.New(englishSpeechDir).Copy(targetDir, null, overwriteOption); + + var speechFiles = _fileSystem.Directory.GetFiles(targetDir, "*.mp3"); + foreach (var speechFile in speechFiles) + { + var fileName = _fileSystem.Path.GetFileName(speechFile); + var localizedFileName = _gameLanguageManager.LocalizeFileName(fileName, language, out var localized); + + if (!localized) + continue; + + var targetPath = _fileSystem.Path.Combine(targetDir, localizedFileName); + _fileSystem.File.Move(speechFile, targetPath); + } + + _logger?.LogInformation("Finished localizing speech for language {Language}", language); + } +} From efc06c66482b1761559738b0fe0ec3e16fbb64c7 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sun, 8 Mar 2026 15:56:50 +0100 Subject: [PATCH 11/26] fix deploy --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b7146db..497ece0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -77,7 +77,7 @@ jobs: - name: Create Manifest run: dotnet ./dev/${{env.MANIFEST_CREATOR}} -a binaries/${{env.TOOL_EXE}} --appDataFiles binaries/${{env.UPDATER_EXE}} --origin ${{env.ORIGIN_BASE}} -o ./binaries -b ${{env.BRANCH_NAME}} - name: Upload Build - run: dotnet ./dev/${{env.SFTP_UPLOADER}} -h $host --port $port -u ${{secrets.SFTP_USER}} -p ${{secrets.SFTP_PASSWORD}} --base $base_path -s $source + run: dotnet ./dev/${{env.SFTP_UPLOADER}} ftp --host $host --port $port -u ${{secrets.SFTP_USER}} -p ${{secrets.SFTP_PASSWORD}} --base $base_path -s $source env: host: republicatwar.com port: 1579 From 1dc28ffba465df9a2423d53a63a1cdc52db4524c Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Sat, 28 Mar 2026 10:36:44 +0100 Subject: [PATCH 12/26] Update deps (#28) * update deps * remove intellij files --- ModVerify | 2 +- ModdingToolBase | 2 +- src/DevLauncher.Tests/DevLauncher.Tests.csproj | 8 ++++---- src/DevLauncher/DevLauncher.csproj | 10 +++++----- src/DevLauncher/Pipelines/ReleaseRawPipeline.cs | 3 +-- src/DevLauncher/Program.cs | 6 +++--- src/DevLauncher/Properties/launchSettings.json | 10 +++++----- src/MegCompile/MegCompile.csproj | 16 ++++++++-------- src/RawDevTools/RawDevTools.csproj | 10 +++++----- src/TextCompile/TextCompile.csproj | 16 ++++++++-------- 10 files changed, 41 insertions(+), 42 deletions(-) diff --git a/ModVerify b/ModVerify index 4eb6a1c..554b0fb 160000 --- a/ModVerify +++ b/ModVerify @@ -1 +1 @@ -Subproject commit 4eb6a1c0567b68c6a0f858426c478c7572f4d81c +Subproject commit 554b0fb61280b2cec7225832c21cfaebfc6c56f8 diff --git a/ModdingToolBase b/ModdingToolBase index e12f6ce..da072f4 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit e12f6ceedb83fe9e3372dd89c68d508f8479cf92 +Subproject commit da072f43e6b85aab35b43d11f6b36eab61bdcfa6 diff --git a/src/DevLauncher.Tests/DevLauncher.Tests.csproj b/src/DevLauncher.Tests/DevLauncher.Tests.csproj index a54378b..8ff8e60 100644 --- a/src/DevLauncher.Tests/DevLauncher.Tests.csproj +++ b/src/DevLauncher.Tests/DevLauncher.Tests.csproj @@ -1,4 +1,4 @@ - + net9.0 @@ -10,14 +10,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/DevLauncher/DevLauncher.csproj b/src/DevLauncher/DevLauncher.csproj index 6f7f992..e8b5dc7 100644 --- a/src/DevLauncher/DevLauncher.csproj +++ b/src/DevLauncher/DevLauncher.csproj @@ -23,11 +23,11 @@ - - + + - + @@ -46,7 +46,7 @@ - + compile runtime; build; native; contentfiles; analyzers; buildtransitive @@ -54,7 +54,7 @@ compile runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs index 1936d5b..cc82138 100644 --- a/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs +++ b/src/DevLauncher/Pipelines/ReleaseRawPipeline.cs @@ -1,5 +1,4 @@ -using AET.Modinfo.Model; -using AnakinRaW.CommonUtilities.SimplePipeline; +using AnakinRaW.CommonUtilities.SimplePipeline; using AnakinRaW.CommonUtilities.SimplePipeline.Steps; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; diff --git a/src/DevLauncher/Program.cs b/src/DevLauncher/Program.cs index 50944ba..067ff92 100644 --- a/src/DevLauncher/Program.cs +++ b/src/DevLauncher/Program.cs @@ -14,7 +14,6 @@ using Microsoft.Extensions.Logging; using PG.Commons; using PG.StarWarsGame.Engine; -using PG.StarWarsGame.Engine.Xml.Parsers; using PG.StarWarsGame.Files.ALO; using PG.StarWarsGame.Files.DAT; using PG.StarWarsGame.Files.MEG; @@ -35,6 +34,7 @@ using System.IO.Abstractions; using System.Reflection; using System.Threading.Tasks; +using PG.StarWarsGame.Engine.Xml; using Testably.Abstractions; using ILogger = Serilog.ILogger; @@ -52,8 +52,8 @@ public static Task Main(string[] args) internal class Program : SelfUpdateableAppLifecycle { - private static readonly string EngineParserNamespace = typeof(XmlObjectParser<>).Namespace!; - private static readonly string ParserNamespace = typeof(PetroglyphXmlFileParser<>).Namespace!; + private static readonly string EngineParserNamespace = typeof(PetroglyphStarWarsGameXmlParser).Namespace!; + private static readonly string ParserNamespace = typeof(XmlFileParser<>).Namespace!; private static readonly string DevLauncherRootNamespace = typeof(Program).Namespace!; private static readonly string DevLauncherUpdateNamespace = typeof(RawDevLauncherUpdater).Namespace!; diff --git a/src/DevLauncher/Properties/launchSettings.json b/src/DevLauncher/Properties/launchSettings.json index e517f5d..cbe0893 100644 --- a/src/DevLauncher/Properties/launchSettings.json +++ b/src/DevLauncher/Properties/launchSettings.json @@ -5,11 +5,11 @@ "commandLineArgs": "--verboseBootstrapLogging -verbose", "workingDirectory": "C:\\Privat\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\republic-at-war" }, - "DAT2LocFile": { - "commandName": "Project", - "commandLineArgs": "initLoc --skipUpdate", - "workingDirectory": "C:\\Privat\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\republic-at-war" - }, + //"DAT2LocFile": { + // "commandName": "Project", + // "commandLineArgs": "initLoc --skipUpdate", + // "workingDirectory": "C:\\Privat\\Steam\\steamapps\\common\\Star Wars Empire at War\\corruption\\Mods\\republic-at-war" + //}, "Diff Localizations": { "commandName": "Project", "commandLineArgs": "prepareLoc --skipUpdate", diff --git a/src/MegCompile/MegCompile.csproj b/src/MegCompile/MegCompile.csproj index b319200..262957e 100644 --- a/src/MegCompile/MegCompile.csproj +++ b/src/MegCompile/MegCompile.csproj @@ -16,18 +16,18 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/RawDevTools/RawDevTools.csproj b/src/RawDevTools/RawDevTools.csproj index b47feff..be8bd86 100644 --- a/src/RawDevTools/RawDevTools.csproj +++ b/src/RawDevTools/RawDevTools.csproj @@ -43,13 +43,13 @@ - + - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/TextCompile/TextCompile.csproj b/src/TextCompile/TextCompile.csproj index e060ac5..6c77460 100644 --- a/src/TextCompile/TextCompile.csproj +++ b/src/TextCompile/TextCompile.csproj @@ -15,18 +15,18 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + From b3a850b04002da11b470ac21b75558881559dc37 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Mon, 25 May 2026 14:46:33 +0200 Subject: [PATCH 13/26] update deps (partly) --- ModVerify | 2 +- ModdingToolBase | 2 +- RawDevTools.sln | 9 ++++++++- src/DevLauncher.Tests/DevLauncher.Tests.csproj | 8 ++++---- src/DevLauncher/DevLauncher.csproj | 14 +++++++------- src/MegCompile/MegCompile.csproj | 18 +++++++++--------- src/RawDevTools/RawDevTools.csproj | 10 +++++----- src/TextCompile/TextCompile.csproj | 18 +++++++++--------- 8 files changed, 44 insertions(+), 37 deletions(-) diff --git a/ModVerify b/ModVerify index 554b0fb..a3cb110 160000 --- a/ModVerify +++ b/ModVerify @@ -1 +1 @@ -Subproject commit 554b0fb61280b2cec7225832c21cfaebfc6c56f8 +Subproject commit a3cb110eaa861778284eddcef8806883eb4711b7 diff --git a/ModdingToolBase b/ModdingToolBase index da072f4..f08de8e 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit da072f43e6b85aab35b43d11f6b36eab61bdcfa6 +Subproject commit f08de8eda8b51d481fde8ba5f9e2fc9eb152ef88 diff --git a/RawDevTools.sln b/RawDevTools.sln index 6f39e92..40f2000 100644 --- a/RawDevTools.sln +++ b/RawDevTools.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.4.11519.219 insiders +VisualStudioVersion = 18.4.11519.219 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DevLauncher", "src\DevLauncher\DevLauncher.csproj", "{1BA491BC-2CD6-4270-9573-5FF9529D8D89}" EndProject @@ -57,6 +57,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppUpdaterFramework.Attribu EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "ApplicationBase.Shared", "ModdingToolBase\src\AnakinApps\ApplicationBase.Shared\ApplicationBase.Shared.shproj", "{B297A13A-8E3A-436C-BA97-8B5F57827FFE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PG.StarWarsGame.Engine.FileSystem", "ModVerify\src\PetroglyphTools\PG.StarWarsGame.Engine.FileSystem\PG.StarWarsGame.Engine.FileSystem.csproj", "{679DA7CA-B23B-7160-B6CD-420BD9CD2312}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -139,6 +141,10 @@ Global {1AA3A6D5-5492-26C3-E36C-54AB5997D2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU {1AA3A6D5-5492-26C3-E36C-54AB5997D2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {1AA3A6D5-5492-26C3-E36C-54AB5997D2CF}.Release|Any CPU.Build.0 = Release|Any CPU + {679DA7CA-B23B-7160-B6CD-420BD9CD2312}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {679DA7CA-B23B-7160-B6CD-420BD9CD2312}.Debug|Any CPU.Build.0 = Debug|Any CPU + {679DA7CA-B23B-7160-B6CD-420BD9CD2312}.Release|Any CPU.ActiveCfg = Release|Any CPU + {679DA7CA-B23B-7160-B6CD-420BD9CD2312}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -164,6 +170,7 @@ Global {8768819D-B0C2-4487-3B3A-84A90F36BAB7} = {46DB413A-0F73-48A6-9071-9C38916BE6FC} {1AA3A6D5-5492-26C3-E36C-54AB5997D2CF} = {3E986062-E81F-4833-A127-24FA73FBCB1B} {B297A13A-8E3A-436C-BA97-8B5F57827FFE} = {46DB413A-0F73-48A6-9071-9C38916BE6FC} + {679DA7CA-B23B-7160-B6CD-420BD9CD2312} = {FF4C3704-0C74-40B5-A38D-AF29B6385D85} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DC15751A-BB36-4EF1-BFF0-2DF1E419AC8F} diff --git a/src/DevLauncher.Tests/DevLauncher.Tests.csproj b/src/DevLauncher.Tests/DevLauncher.Tests.csproj index 8ff8e60..847d6ce 100644 --- a/src/DevLauncher.Tests/DevLauncher.Tests.csproj +++ b/src/DevLauncher.Tests/DevLauncher.Tests.csproj @@ -10,14 +10,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/DevLauncher/DevLauncher.csproj b/src/DevLauncher/DevLauncher.csproj index e8b5dc7..cf4011c 100644 --- a/src/DevLauncher/DevLauncher.csproj +++ b/src/DevLauncher/DevLauncher.csproj @@ -23,16 +23,16 @@ - - + + - + - + all @@ -46,15 +46,15 @@ - + compile runtime; build; native; contentfiles; analyzers; buildtransitive - + compile runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/MegCompile/MegCompile.csproj b/src/MegCompile/MegCompile.csproj index 262957e..68bce03 100644 --- a/src/MegCompile/MegCompile.csproj +++ b/src/MegCompile/MegCompile.csproj @@ -16,18 +16,18 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/src/RawDevTools/RawDevTools.csproj b/src/RawDevTools/RawDevTools.csproj index be8bd86..bfb86b4 100644 --- a/src/RawDevTools/RawDevTools.csproj +++ b/src/RawDevTools/RawDevTools.csproj @@ -43,13 +43,13 @@ - + - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/TextCompile/TextCompile.csproj b/src/TextCompile/TextCompile.csproj index 6c77460..90c7ad5 100644 --- a/src/TextCompile/TextCompile.csproj +++ b/src/TextCompile/TextCompile.csproj @@ -15,18 +15,18 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + From ffde2884aff5f0c8bf14aab2dc57fc517e029499 Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Mon, 25 May 2026 14:50:16 +0200 Subject: [PATCH 14/26] use signed updates branch in sub --- ModdingToolBase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ModdingToolBase b/ModdingToolBase index f08de8e..1fa9194 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit f08de8eda8b51d481fde8ba5f9e2fc9eb152ef88 +Subproject commit 1fa919492d6a08eadb5586267fe76b92d095fccf From 262f5ca203c21281681a76ffe699987bcc31912e Mon Sep 17 00:00:00 2001 From: AnakinRaW Date: Mon, 25 May 2026 15:57:41 +0200 Subject: [PATCH 15/26] start supporting signed updated --- .github/workflows/integration-test.yml | 43 ++++++++ .github/workflows/release.yml | 121 ++++++++++++++-------- .gitignore | 4 +- ModdingToolBase | 2 +- deploy-local.ps1 | 49 +++++++++ src/DevLauncher/DevLauncher.csproj | 20 ++-- src/DevLauncher/DevLauncherEnvironment.cs | 33 +++++- src/DevLauncher/Program.cs | 16 +++ src/DevLauncher/RawDevLauncher.cs | 12 ++- test-local-update-dual.ps1 | 39 +++++++ test-local-update.ps1 | 37 +++++++ tools/v1/AnakinRaW.ExternalUpdater.exe | Bin 0 -> 1406976 bytes version.json | 2 +- 13 files changed, 319 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/integration-test.yml create mode 100644 deploy-local.ps1 create mode 100644 test-local-update-dual.ps1 create mode 100644 test-local-update.ps1 create mode 100644 tools/v1/AnakinRaW.ExternalUpdater.exe diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml new file mode 100644 index 0000000..b1d38b0 --- /dev/null +++ b/.github/workflows/integration-test.yml @@ -0,0 +1,43 @@ +name: Update Integration Test + +on: + workflow_call: + workflow_dispatch: + +jobs: + update-cycle: + name: Update cycle (${{ matrix.scenario.name }}) + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + scenario: + - { name: single, script: ./test-local-update.ps1 } + - { name: dual, script: ./test-local-update-dual.ps1 } + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 + submodules: recursive + + - name: Setup .NET + uses: actions/setup-dotnet@v5 + with: + dotnet-version: 10.0.x + + - name: Run ${{ matrix.scenario.name }}-channel update cycle + shell: pwsh + run: ${{ matrix.scenario.script }} + + - name: Upload diagnostics on failure + if: failure() + uses: actions/upload-artifact@v7 + with: + name: update-cycle-${{ matrix.scenario.name }}-logs + # Updater log: %TEMP%\extUpdateLog-*.txt; RawDevLauncher app log: %APPDATA%\RawDevLauncher\*.txt + path: | + ${{ runner.temp }}\extUpdateLog-*.txt + ${{ env.APPDATA }}\RawDevLauncher\*.txt + if-no-files-found: ignore + retention-days: 7 \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 497ece0..4616be1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,84 +13,119 @@ on: env: TOOL_PROJ_PATH: ./src/DevLauncher/DevLauncher.csproj - CREATOR_PROJ_PATH: ./ModdingToolBase/src/AnakinApps/ApplicationManifestCreator/ApplicationManifestCreator.csproj - UPLOADER_PROJ_PATH: ./ModdingToolBase/src/AnakinApps/FtpUploader/FtpUploader.csproj + PUBLISH_SCRIPT: ./ModdingToolBase/scripts/Publish-Release.ps1 TOOL_EXE: RaW-DevLauncher.exe UPDATER_EXE: AnakinRaW.ExternalUpdater.exe - MANIFEST_CREATOR: AnakinRaW.ApplicationManifestCreator.dll - SFTP_UPLOADER: AnakinRaW.FtpUploader.dll + EMBEDDED_TRUST_CERT: src/DevLauncher/Resources/Certs/rawdev-trust.cer ORIGIN_BASE: https://republicatwar.com/downloads/RawDevLauncher - ORIGIN_BASE_PART: downloads/RawDevLauncher/ + SFTP_BASE_PATH: downloads/RawDevLauncher/ BRANCH_NAME: ${{ github.event.inputs.branch || 'stable' }} + # Migration-release values. Leave empty for a normal release; populate to enable. + # + # Origin URL of the next-generation channel, written into the manifest's componentOriginInfo. + NEXT_ORIGIN_BASE: https://republicatwar.com/downloads/RawDevLauncher/v2 + + # SFTP path the next-generation channel uploads to. Set together with NEXT_ORIGIN_BASE. + NEXT_SFTP_BASE_PATH: downloads/RawDevLauncher/v2/ + + # Previously-deployed updater used in place of the build-output one for the primary deploy. + # Only the old-gen manifest lists this binary; the next-gen manifest still uses the build-output updater. + # Requires NEXT_ORIGIN_BASE + NEXT_SFTP_BASE_PATH to be set. + COMPAT_UPDATER: tools/v1/AnakinRaW.ExternalUpdater.exe + jobs: - build: - name: Build +# Builds and tests the solution. + test: + uses: ./.github/workflows/test.yml + + # End-to-end self-update test + integration-test: + needs: [test] + uses: ./.github/workflows/integration-test.yml + + pack: + name: Pack + needs: [test] runs-on: windows-latest steps: - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 9.0.x - - name: Build - run: dotnet build ${{ env.TOOL_PROJ_PATH }} --configuration Release --output ./binaries + uses: actions/setup-dotnet@v5 + - name: Create NetFramework Release + # use build for .NET Framework to enusre external updatere .EXE is included + run: dotnet build ${{ env.TOOL_PROJ_PATH }} --configuration Release -f net481 --output ./releases/net481 /p:DebugType=None /p:DebugSymbols=false + - name: Create Net Core Release + # use publish for .NET Core + run: dotnet publish ${{ env.TOOL_PROJ_PATH }} --configuration Release -f net10.0 --output ./releases/net10.0 /p:DebugType=None /p:DebugSymbols=false + - name: Create Linux Release + run: dotnet publish ${{ env.TOOL_PROJ_PATH }} --configuration Release -f net10.0 --runtime linux-x64 --self-contained true --output ./releases/linux-x64 /p:DebugType=None /p:DebugSymbols=false - name: Upload a Build Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: - name: Build Artifacts - path: | - binaries/${{env.TOOL_EXE}} - binaries/${{env.UPDATER_EXE}} + name: Binary Releases + path: ./releases + if-no-files-found: error retention-days: 1 deploy: name: Deploy - # Only deploy on push to main or manual trigger + # Stable deploys are gated to 'main'. Non-stable channels (beta, canary, etc.) can be + # workflow_dispatched from any branch. if: | - (github.ref == 'refs/heads/main' && github.event_name == 'push') || github.event_name == 'workflow_dispatch' - needs: [build] + (github.event_name == 'push' && github.ref == 'refs/heads/main') || + (github.event_name == 'workflow_dispatch' && + (github.event.inputs.branch != 'stable' || github.ref == 'refs/heads/main')) + needs: [pack, integration-test] runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 submodules: recursive - - name: Setup .NET - uses: actions/setup-dotnet@v4 + - uses: actions/download-artifact@v8 with: - dotnet-version: 9.0.x - - uses: actions/download-artifact@v4 + name: Binary Releases + path: ./releases + - name: Setup .NET + uses: actions/setup-dotnet@v5 with: - name: Build Artifacts - path: binaries - - name: Build Creator - run: dotnet build ${{env.CREATOR_PROJ_PATH}} --configuration Release --output ./dev - - name: Build Uploader - run: dotnet build ${{env.UPLOADER_PROJ_PATH}} --configuration Release --output ./dev - - name: Create Manifest - run: dotnet ./dev/${{env.MANIFEST_CREATOR}} -a binaries/${{env.TOOL_EXE}} --appDataFiles binaries/${{env.UPDATER_EXE}} --origin ${{env.ORIGIN_BASE}} -o ./binaries -b ${{env.BRANCH_NAME}} - - name: Upload Build - run: dotnet ./dev/${{env.SFTP_UPLOADER}} ftp --host $host --port $port -u ${{secrets.SFTP_USER}} -p ${{secrets.SFTP_PASSWORD}} --base $base_path -s $source - env: - host: republicatwar.com - port: 1579 - base_path: ${{env.ORIGIN_BASE_PART}} - source: ./binaries + dotnet-version: 10.0.x + + + - name: Publish self-update release + shell: pwsh + run: | + & $env:PUBLISH_SCRIPT ` + -AppExePath "./releases/net481/$env:TOOL_EXE" ` + -UpdaterExePath "./releases/net481/$env:UPDATER_EXE" ` + -EmbeddedTrustCertPath "$env:EMBEDDED_TRUST_CERT" ` + -Origin "$env:ORIGIN_BASE" ` + -SftpBasePath "$env:SFTP_BASE_PATH" ` + -Branch "$env:BRANCH_NAME" ` + -SigningPfxBase64 "${{ secrets.UPDATER_SIGNING_PFX_B64 }}" ` + -SigningPfxPassword "${{ secrets.UPDATER_SIGNING_PFX_PASSWORD }}" ` + -SftpHost "republicatwar.com" ` + -SftpPort 1579 ` + -SftpUser "${{ secrets.SFTP_USER }}" ` + -SftpPassword "${{ secrets.SFTP_PASSWORD }}" ` + -NextOrigin "$env:NEXT_ORIGIN_BASE" ` + -NextSftpBasePath "$env:NEXT_SFTP_BASE_PATH" ` + -CompatibilityUpdaterExePath "$env:COMPAT_UPDATER" - - uses: dotnet/nbgv@v0.4.2 + - uses: dotnet/nbgv@v0.5.1 id: nbgv - name: Create GitHub release # Only create a release on push to main if: | github.ref == 'refs/heads/main' && github.event_name == 'push' - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: name: v${{ steps.nbgv.outputs.SemVer2 }} tag_name: v${{ steps.nbgv.outputs.SemVer2 }} diff --git a/.gitignore b/.gitignore index 5af3e6f..95991ec 100644 --- a/.gitignore +++ b/.gitignore @@ -398,4 +398,6 @@ FodyWeavers.xsd *.sln.iml -dev/* \ No newline at end of file +dev/* + +.local_deploy/ \ No newline at end of file diff --git a/ModdingToolBase b/ModdingToolBase index 1fa9194..8f64ea3 160000 --- a/ModdingToolBase +++ b/ModdingToolBase @@ -1 +1 @@ -Subproject commit 1fa919492d6a08eadb5586267fe76b92d095fccf +Subproject commit 8f64ea3993bdf036cad42bc51b03002f01d7ce47 diff --git a/deploy-local.ps1 b/deploy-local.ps1 new file mode 100644 index 0000000..ca2d090 --- /dev/null +++ b/deploy-local.ps1 @@ -0,0 +1,49 @@ +param( + [string]$InstalledVersion = "0.0.1-local", + [string]$ServerVersion = "99.99.99-local", + [switch]$DualPublish, + [string]$CompatibilityUpdater +) + +$ErrorActionPreference = "Stop" + +$root = $PSScriptRoot +if ([string]::IsNullOrEmpty($root)) { $root = Get-Location } + +. (Join-Path $root "ModdingToolBase\scripts\NbgvVersion.ps1") + +$deployRoot = Join-Path $root ".local_deploy" +$installBuildDir = Join-Path $deployRoot "bin\install" +$serverBuildDir = Join-Path $deployRoot "bin\tool" + +$toolProj = Join-Path $root "src\DevLauncher\DevLauncher.csproj" +$baseScript = Join-Path $root "ModdingToolBase\scripts\Publish-LocalRelease.ps1" + +if (Test-Path $deployRoot) { Remove-Item -Recurse -Force $deployRoot } +New-Item -ItemType Directory -Path $deployRoot | Out-Null + +$nbgv = Backup-NbgvVersion -RepoRoot $root +try { + Write-Host "--- Building DevLauncher (net481) @ installed v$InstalledVersion ---" -ForegroundColor Cyan + Set-NbgvVersion -Snapshot $nbgv -Version $InstalledVersion + dotnet build $toolProj --configuration Release -f net481 --output $installBuildDir /p:DebugType=None /p:DebugSymbols=false /p:LocalDeploy=true + + Write-Host "--- Building DevLauncher (net481) @ server v$ServerVersion ---" -ForegroundColor Cyan + Set-NbgvVersion -Snapshot $nbgv -Version $ServerVersion + dotnet build $toolProj --configuration Release -f net481 --output $serverBuildDir /p:DebugType=None /p:DebugSymbols=false /p:LocalDeploy=true + + $publishParams = @{ + AppExePath = Join-Path $serverBuildDir "RaW-DevLauncher.exe" + UpdaterExePath = Join-Path $serverBuildDir "AnakinRaW.ExternalUpdater.exe" + DeployRoot = $deployRoot + InstallBuildDir = $installBuildDir + Branch = "beta" + } + if ($DualPublish) { $publishParams.DualPublish = $true } + if ($CompatibilityUpdater) { $publishParams.CompatibilityUpdater = $CompatibilityUpdater } + + & $baseScript @publishParams +} +finally { + Restore-NbgvVersion -Snapshot $nbgv +} \ No newline at end of file diff --git a/src/DevLauncher/DevLauncher.csproj b/src/DevLauncher/DevLauncher.csproj index cf4011c..efd5dfa 100644 --- a/src/DevLauncher/DevLauncher.csproj +++ b/src/DevLauncher/DevLauncher.csproj @@ -18,6 +18,18 @@ true + + + $(DefineConstants);LOCAL_DEPLOY + + + + + + @@ -66,14 +78,6 @@ - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - diff --git a/src/DevLauncher/DevLauncherEnvironment.cs b/src/DevLauncher/DevLauncherEnvironment.cs index 76dc6d5..fbf8865 100644 --- a/src/DevLauncher/DevLauncherEnvironment.cs +++ b/src/DevLauncher/DevLauncherEnvironment.cs @@ -1,9 +1,12 @@ -using System; +using AnakinRaW.ApplicationBase.Environment; +using AnakinRaW.AppUpdaterFramework.Configuration; +using AnakinRaW.AppUpdaterFramework.Security; +using AnakinRaW.CommonUtilities.DownloadManager.Configuration; +using System; using System.Collections.Generic; using System.IO.Abstractions; +using System.Net; using System.Reflection; -using AnakinRaW.ApplicationBase.Environment; -using AnakinRaW.AppUpdaterFramework.Configuration; namespace RepublicAtWar.DevLauncher; @@ -16,12 +19,20 @@ internal class DevLauncherEnvironment(Assembly assembly, IFileSystem fileSystem) public override ICollection UpdateMirrors { get; } = new List { - new($"https://republicatwar.com/downloads/{ToolPathName}") + new($"https://republicatwar.com/downloads/{ToolPathName}/v2") }; public override string UpdateRegistryPath => $@"SOFTWARE\{ToolPathName}\Update"; protected override string ApplicationLocalDirectoryName => ToolPathName; + static DevLauncherEnvironment() + { + // For some unknown reason, packaging dependencies into the app, may alter the used security protocols... + // This reverts the changes and forces secure settings + if (ServicePointManager.SecurityProtocol != SecurityProtocolType.SystemDefault) + ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault | SecurityProtocolType.Tls12; + } + protected override UpdateConfiguration CreateUpdateConfiguration() { return new() @@ -34,6 +45,20 @@ protected override UpdateConfiguration CreateUpdateConfiguration() { SupportsRestart = true, PassCurrentArgumentsForRestart = true + }, + ManifestDownloadConfiguration = new ManifestDownloadConfiguration + { + DownloadRetryDelay = 500 + }, + ComponentDownloadConfiguration = new DownloadManagerConfiguration + { + ValidationPolicy = ValidationPolicy.Required + }, + ValidateInstallation = true, + ManifestSigningConfiguration = new SigningConfiguration + { + Policy = SignaturePolicy.Required, + SignatureAlgorithm = SignatureAlgorithm.ES256 } }; } diff --git a/src/DevLauncher/Program.cs b/src/DevLauncher/Program.cs index 067ff92..7615e7c 100644 --- a/src/DevLauncher/Program.cs +++ b/src/DevLauncher/Program.cs @@ -52,6 +52,8 @@ public static Task Main(string[] args) internal class Program : SelfUpdateableAppLifecycle { + private const string EmbeddedTrustCertResource = "RaW-DevLauncher.Resources.Certs.rawdev-trust.cer"; + private static readonly string EngineParserNamespace = typeof(PetroglyphStarWarsGameXmlParser).Namespace!; private static readonly string ParserNamespace = typeof(XmlFileParser<>).Namespace!; private static readonly string DevLauncherRootNamespace = typeof(Program).Namespace!; @@ -106,6 +108,20 @@ private async Task RunAppCoreAsync(string[] args, IServiceProvider appServi } } + protected override void RegisterTrustedCertificates(IServiceProvider appServices) + { + if (!IsUpdateableApplication) + return; + + string? devCertPath = null; +#if DEBUG || LOCAL_DEPLOY + devCertPath = System.IO.Path.GetFullPath( + System.IO.Path.Combine(AppContext.BaseDirectory, "..", "dev-trust.cer")); +#endif + appServices.GetRequiredService() + .RegisterTrustedCertificates(typeof(Program).Assembly, [EmbeddedTrustCertResource], devCertPath); + } + protected override void ResetApp() { Logger?.LogDebug("Resetting Application..."); diff --git a/src/DevLauncher/RawDevLauncher.cs b/src/DevLauncher/RawDevLauncher.cs index f74e6fb..0ca8f0b 100644 --- a/src/DevLauncher/RawDevLauncher.cs +++ b/src/DevLauncher/RawDevLauncher.cs @@ -16,6 +16,7 @@ using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using AnakinRaW.AppUpdaterFramework.Metadata.Product; namespace RepublicAtWar.DevLauncher; @@ -50,7 +51,16 @@ private async Task UpdateLauncher(IReadOnlyList args) var updater = new RawDevLauncherUpdater(applicationEnvironment, serviceProvider); var branchName = updater.GetBranchNameFromRegistry(options?.BranchName, true); - var branch = updater.CreateBranch(branchName, options?.ManifestUrl); + + ProductBranch branch; + if (options is not null) + { + branch = !string.IsNullOrEmpty(options.ServerUrl) + ? updater.CreateBranchFromServerUrl(options.ServerUrl!, branchName) + : updater.CreateBranch(branchName, options.ManifestUrl); + } + else + branch = updater.CreateBranch(branchName); await updater.AutoUpdateApplication(branch); } diff --git a/test-local-update-dual.ps1 b/test-local-update-dual.ps1 new file mode 100644 index 0000000..57ae3a8 --- /dev/null +++ b/test-local-update-dual.ps1 @@ -0,0 +1,39 @@ +#Requires -Version 7.0 + +[CmdletBinding()] +param( + [string]$InstalledVersion = '0.0.1-local', + [string]$ServerVersion = '99.99.99-local', + [string]$Branch = 'beta', + [string]$CompatibilityUpdater +) + +$ErrorActionPreference = 'Stop' + +$root = $PSScriptRoot +if ([string]::IsNullOrEmpty($root)) { $root = Get-Location } + +$deployArgs = @{ + InstalledVersion = $InstalledVersion + ServerVersion = $ServerVersion + DualPublish = $true +} +if ($CompatibilityUpdater) { $deployArgs.CompatibilityUpdater = $CompatibilityUpdater } + +& (Join-Path $root 'deploy-local.ps1') @deployArgs +if ($LASTEXITCODE -ne 0) { throw "deploy-local.ps1 -DualPublish failed (exit $LASTEXITCODE)." } + +$nextServerDir = Join-Path $root '.local_deploy\server\v2' +if (-not (Test-Path $nextServerDir)) { + throw "Expected /v2/ server dir at '$nextServerDir' but it does not exist." +} +$nextServerUri = "file:///$(((Resolve-Path $nextServerDir).Path -replace '\\','/'))" + +& (Join-Path $root 'ModdingToolBase\scripts\Test-LocalUpdateCycle.ps1') ` + -AppExePath (Join-Path $root '.local_deploy\install\RaW-DevLauncher.exe') ` + -ServerUri $nextServerUri ` + -Branch $Branch ` + -NoUpdateMessage 'No update available.' ` + -ExpectedNewVersion $ServerVersion + +exit $LASTEXITCODE \ No newline at end of file diff --git a/test-local-update.ps1 b/test-local-update.ps1 new file mode 100644 index 0000000..5a5f69e --- /dev/null +++ b/test-local-update.ps1 @@ -0,0 +1,37 @@ +# ========================================================================================= +# Local bootstrap for the self-update integration test. +# +# Stages a local deploy via deploy-local.ps1, then runs the shared end-to-end test from +# ModdingToolBase against the staged install dir + signed local server. +# +# Windows-only. +# ========================================================================================= + +#Requires -Version 7.0 + +[CmdletBinding()] +param( + [string]$InstalledVersion = '0.0.1-local', + [string]$ServerVersion = '99.99.99-local', + [string]$Branch = 'beta' +) + +$ErrorActionPreference = 'Stop' + +$root = $PSScriptRoot +if ([string]::IsNullOrEmpty($root)) { $root = Get-Location } + +& (Join-Path $root 'deploy-local.ps1') -InstalledVersion $InstalledVersion -ServerVersion $ServerVersion +if ($LASTEXITCODE -ne 0) { throw "deploy-local.ps1 failed (exit $LASTEXITCODE)." } + +$serverDir = Join-Path $root '.local_deploy\server' +$serverUri = "file:///$(((Resolve-Path $serverDir).Path -replace '\\','/'))" + +& (Join-Path $root 'ModdingToolBase\scripts\Test-LocalUpdateCycle.ps1') ` + -AppExePath (Join-Path $root '.local_deploy\install\RaW-DevLauncher.exe') ` + -ServerUri $serverUri ` + -Branch $Branch ` + -NoUpdateMessage 'No update available.' ` + -ExpectedNewVersion $ServerVersion + +exit $LASTEXITCODE \ No newline at end of file diff --git a/tools/v1/AnakinRaW.ExternalUpdater.exe b/tools/v1/AnakinRaW.ExternalUpdater.exe new file mode 100644 index 0000000000000000000000000000000000000000..c03ac56125db3518496520634bb56e3222df530e GIT binary patch literal 1406976 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
{oy)`TifF~I)fynQ#m@D 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