From 5919d848a722d148abfebcf2cdeef602f02f004d Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Mon, 29 Jun 2026 15:06:03 +1200 Subject: [PATCH 1/3] Extract the Notifications tool family into Fallout.Application.Tools.Notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First family of the tools split (proves the pattern end-to-end on a clean, dependency-free leaf). Moves Slack, Discord, Teams, Twitter and Mastodon out of Fallout.Common into a new Application-layer tool project under src/Tools/. - New project src/Tools/Fallout.Application.Tools.Notifications (net10.0), referencing Fallout.Common + Fallout.Tooling. - Tools keep their Fallout.Common.Tools. namespace, so no consumer source changes — only a ProjectReference is added where they're used (Fallout.Common.Tests). - Architecture suite governs the new family: it is a loaded, layering-checked assembly and must not depend on the Build/Components/Cli layers above it (strict, zero-tolerance). Namespace alignment for tool families is deferred, so they are intentionally not yet naming-rule subjects (RuntimeLibraries). Co-Authored-By: Claude Opus 4.8 (1M context) --- fallout.slnx | 1 + .../Discord/Discord.Generated.cs | 0 .../Discord/Discord.json | 0 .../Discord/DiscordTasks.cs | 0 .../Fallout.Application.Tools.Notifications.csproj | 13 +++++++++++++ .../Mastodon/Mastodon.Generated.cs | 0 .../Mastodon/Mastodon.json | 0 .../Mastodon/MastodonTasks.cs | 0 .../Slack/Slack.Generated.cs | 0 .../Slack/Slack.json | 0 .../Slack/SlackTasks.cs | 0 .../Teams/Teams.Extensions.cs | 0 .../Teams/Teams.Generated.cs | 0 .../Teams/Teams.json | 0 .../Teams/TeamsTasks.cs | 0 .../Twitter/TwitterTasks.cs | 0 .../Fallout.Architecture.Specs.csproj | 5 +++++ .../FalloutArchitecture.cs | 5 +++++ tests/Fallout.Architecture.Specs/LayeringSpecs.cs | 9 +++++++++ .../Fallout.Common.Specs.csproj | 1 + 20 files changed, 34 insertions(+) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Discord/Discord.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Discord/Discord.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Discord/DiscordTasks.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Notifications/Fallout.Application.Tools.Notifications.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Mastodon/Mastodon.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Mastodon/Mastodon.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Mastodon/MastodonTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Slack/Slack.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Slack/Slack.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Slack/SlackTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Teams/Teams.Extensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Teams/Teams.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Teams/Teams.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Teams/TeamsTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Notifications}/Twitter/TwitterTasks.cs (100%) diff --git a/fallout.slnx b/fallout.slnx index d6058e85d..b9a124332 100644 --- a/fallout.slnx +++ b/fallout.slnx @@ -30,6 +30,7 @@ + diff --git a/src/Fallout.Common/Tools/Discord/Discord.Generated.cs b/src/Tools/Fallout.Application.Tools.Notifications/Discord/Discord.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Discord/Discord.Generated.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Discord/Discord.Generated.cs diff --git a/src/Fallout.Common/Tools/Discord/Discord.json b/src/Tools/Fallout.Application.Tools.Notifications/Discord/Discord.json similarity index 100% rename from src/Fallout.Common/Tools/Discord/Discord.json rename to src/Tools/Fallout.Application.Tools.Notifications/Discord/Discord.json diff --git a/src/Fallout.Common/Tools/Discord/DiscordTasks.cs b/src/Tools/Fallout.Application.Tools.Notifications/Discord/DiscordTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Discord/DiscordTasks.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Discord/DiscordTasks.cs diff --git a/src/Tools/Fallout.Application.Tools.Notifications/Fallout.Application.Tools.Notifications.csproj b/src/Tools/Fallout.Application.Tools.Notifications/Fallout.Application.Tools.Notifications.csproj new file mode 100644 index 000000000..7cc7c49d4 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Notifications/Fallout.Application.Tools.Notifications.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Notification tool wrappers for Fallout — Slack, Discord, Teams, Twitter, Mastodon. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/Mastodon/Mastodon.Generated.cs b/src/Tools/Fallout.Application.Tools.Notifications/Mastodon/Mastodon.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Mastodon/Mastodon.Generated.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Mastodon/Mastodon.Generated.cs diff --git a/src/Fallout.Common/Tools/Mastodon/Mastodon.json b/src/Tools/Fallout.Application.Tools.Notifications/Mastodon/Mastodon.json similarity index 100% rename from src/Fallout.Common/Tools/Mastodon/Mastodon.json rename to src/Tools/Fallout.Application.Tools.Notifications/Mastodon/Mastodon.json diff --git a/src/Fallout.Common/Tools/Mastodon/MastodonTasks.cs b/src/Tools/Fallout.Application.Tools.Notifications/Mastodon/MastodonTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Mastodon/MastodonTasks.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Mastodon/MastodonTasks.cs diff --git a/src/Fallout.Common/Tools/Slack/Slack.Generated.cs b/src/Tools/Fallout.Application.Tools.Notifications/Slack/Slack.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Slack/Slack.Generated.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Slack/Slack.Generated.cs diff --git a/src/Fallout.Common/Tools/Slack/Slack.json b/src/Tools/Fallout.Application.Tools.Notifications/Slack/Slack.json similarity index 100% rename from src/Fallout.Common/Tools/Slack/Slack.json rename to src/Tools/Fallout.Application.Tools.Notifications/Slack/Slack.json diff --git a/src/Fallout.Common/Tools/Slack/SlackTasks.cs b/src/Tools/Fallout.Application.Tools.Notifications/Slack/SlackTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Slack/SlackTasks.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Slack/SlackTasks.cs diff --git a/src/Fallout.Common/Tools/Teams/Teams.Extensions.cs b/src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.Extensions.cs similarity index 100% rename from src/Fallout.Common/Tools/Teams/Teams.Extensions.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.Extensions.cs diff --git a/src/Fallout.Common/Tools/Teams/Teams.Generated.cs b/src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Teams/Teams.Generated.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.Generated.cs diff --git a/src/Fallout.Common/Tools/Teams/Teams.json b/src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.json similarity index 100% rename from src/Fallout.Common/Tools/Teams/Teams.json rename to src/Tools/Fallout.Application.Tools.Notifications/Teams/Teams.json diff --git a/src/Fallout.Common/Tools/Teams/TeamsTasks.cs b/src/Tools/Fallout.Application.Tools.Notifications/Teams/TeamsTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Teams/TeamsTasks.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Teams/TeamsTasks.cs diff --git a/src/Fallout.Common/Tools/Twitter/TwitterTasks.cs b/src/Tools/Fallout.Application.Tools.Notifications/Twitter/TwitterTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Twitter/TwitterTasks.cs rename to src/Tools/Fallout.Application.Tools.Notifications/Twitter/TwitterTasks.cs diff --git a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj index f554c9160..f421362cb 100644 --- a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj +++ b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj @@ -49,6 +49,11 @@ + + + + + diff --git a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs index 773d7529a..15f899083 100644 --- a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs +++ b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs @@ -36,6 +36,11 @@ internal static class FalloutArchitecture public const string Components = "Fallout.Components"; public const string Cli = "Fallout.Cli"; + // Application-layer tool families (Fallout.Application.Tools.*). Governed for layering; their + // namespace alignment (still legacy Fallout.Common.Tools.*) is deferred, so they are deliberately + // NOT in RuntimeLibraries (the naming-rule subjects) yet. + public const string ToolsNotifications = "Fallout.Application.Tools.Notifications"; + // Transition shims. public const string NukeCommon = "Nuke.Common"; public const string NukeBuild = "Nuke.Build"; diff --git a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs index 9e1ccd4e8..c02d99447 100644 --- a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs +++ b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs @@ -52,6 +52,15 @@ public void Tooling_contract_leaf_is_a_foundation(string leaf) => $"{leaf} is a pure Application-layer tooling-contract leaf and must reference no other Fallout/Nuke assembly", KnownViolations.None); + [Theory] + [InlineData(Arch.ToolsNotifications)] + public void Tool_family_does_not_depend_on_upper_layers(string family) => + Ratchet.Enforce( + Arch.TypesIn(family) + .Should().NotDependOnAny(Arch.TypesIn(Arch.Build, Arch.Components, Arch.Cli)), + $"{family} is an Application-layer tool family and must not depend on the Build/Components/Cli layers above it", + KnownViolations.None); + [Fact] public void Tooling_does_not_depend_on_upper_layers() => Ratchet.Enforce( diff --git a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj index 0df502072..077e00e13 100644 --- a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj +++ b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj @@ -6,6 +6,7 @@ + From c101dcc23d59dd8e7a1c4cee3ff62a9b93c9c143 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Mon, 29 Jun 2026 15:22:27 +1200 Subject: [PATCH 2/3] Extract the nine independent tool families into Fallout.Application.Tools.* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bulk move of the dependency-free tool families out of Fallout.Common into Application-layer projects under src/Tools/ (the cycle-break/cross-dep families — DotNet, Coverage, Containers, VersionControl — follow next): - JavaScript (Npm); Testing (xUnit/NUnit/MSpec/Fixie/VSTest/SpecFlow/ TestCloud/BenchmarkDotNet/dotMemoryUnit); Signing (AzureKeyVault/ AzureSignTool/SignClient/SignPath/SignTool/NuGetKeyVaultSignTool); Packaging (Chocolatey/Squirrel/InnoSetup/MakeNsis/Boots/DotnetPackaging); Versioning (GitVersion/MinVer/NerdbankGitVersioning/OctoVersion); Cloud (Octopus/Netlify/StaticWebApps); Shell (PowerShell/Pwsh); Gaming (Unity); Documentation (DocFX). - Tools keep their Fallout.Common.Tools. namespace (non-breaking); consumers (Cli, Components, Cli.Tests, Common.Tests) gain ProjectReferences only. Signing carries the Azure Key Vault package refs. - A few tool attributes integrate with Fallout.Common's internal value-injection plumbing, so Signing/Versioning/Shell are granted InternalsVisibleTo (interim bridge until value-injection becomes a public Application API). - Architecture suite governs every family: each must not depend on the Components layer (would cycle) or the Cli composition root. Tools reaching up into Fallout.Build (ValueInjectionAttributeBase) is documented interim debt of the half-onion state. Co-Authored-By: Claude Opus 4.8 (1M context) --- AssemblyInfo.cs | 7 +++++++ fallout.slnx | 9 +++++++++ src/Fallout.Cli/Fallout.Cli.csproj | 2 ++ .../Fallout.Components.csproj | 2 ++ .../Fallout.Application.Tools.Cloud.csproj | 13 +++++++++++++ .../Netlify/Netlify.Generated.cs | 0 .../Netlify/Netlify.json | 0 .../Netlify/NetlifyTasks.cs | 0 .../Octopus/Octopus.Generated.cs | 0 .../Octopus/Octopus.json | 0 .../StaticWebApps/StaticWebApps.Generated.cs | 0 .../StaticWebApps/StaticWebApps.json | 0 .../DocFX/DocFX.Generated.cs | 0 .../DocFX/DocFX.json | 0 .../DocFX/DocFXTasks.cs | 0 ...out.Application.Tools.Documentation.csproj | 13 +++++++++++++ .../Fallout.Application.Tools.Gaming.csproj | 13 +++++++++++++ .../Unity/Logging/BlockMatcher.cs | 0 .../Unity/Logging/FileWatcher.cs | 0 .../Unity/Logging/LineMatcher.cs | 0 .../Unity/Logging/LogParser.cs | 0 .../Unity/Logging/MatchType.cs | 0 .../Unity/Logging/MatchedBlock.cs | 0 .../Unity/Logging/UnityLogLevel.cs | 0 .../Unity/Unity.Generated.cs | 0 .../Unity/Unity.json | 0 .../Unity/UnityTasks.cs | 0 ...allout.Application.Tools.JavaScript.csproj | 13 +++++++++++++ .../Npm/Npm.Generated.cs | 0 .../Npm/Npm.json | 0 .../Npm/NpmTasks.cs | 0 .../Boots/Boots.Generated.cs | 0 .../Boots/Boots.json | 0 .../Chocolatey/Chocolatey.Generated.cs | 0 .../Chocolatey/Chocolatey.json | 0 .../DotnetPackaging.Generated.cs | 0 .../DotnetPackaging/DotnetPackaging.json | 0 ...Fallout.Application.Tools.Packaging.csproj | 13 +++++++++++++ .../InnoSetup/InnoSetup.Generated.cs | 0 .../InnoSetup/InnoSetup.json | 0 .../InnoSetup/InnoSetupSettings.cs | 0 .../MakeNsis/MakeNSIS.Generated.cs | 0 .../MakeNsis/MakeNSIS.json | 0 .../Squirrel/Squirrel.Generated.cs | 0 .../Squirrel/Squirrel.json | 0 .../Fallout.Application.Tools.Shell.csproj | 13 +++++++++++++ .../PowerShell/PowerShell.Generated.cs | 0 .../PowerShell/PowerShell.json | 0 .../PowerShell/PowerShellTasks.cs | 0 .../Pwsh/Pwsh.Generated.cs | 0 .../Pwsh/Pwsh.json | 0 .../AzureKeyVault/AzureKeyVault.cs | 0 .../AzureKeyVault/AzureKeyVaultAttribute.cs | 0 .../AzureKeyVaultAttributeBase.cs | 0 .../AzureKeyVault/AzureKeyVaultCertificate.cs | 0 .../AzureKeyVaultCertificateAttribute.cs | 0 .../AzureKeyVaultConfigurationAttribute.cs | 0 .../AzureKeyVault/AzureKeyVaultKey.cs | 0 .../AzureKeyVaultKeyAttribute.cs | 0 .../AzureKeyVaultSecretAttribute.cs | 0 .../AzureKeyVault/AzureKeyVaultTasks.cs | 0 .../AzureSignTool/AzureSignTool.Generated.cs | 0 .../AzureSignTool/AzureSignTool.json | 0 .../Fallout.Application.Tools.Signing.csproj | 19 +++++++++++++++++++ .../NuGetKeyVaultSignTool.Generated.cs | 0 .../NuGetKeyVaultSignTool.json | 0 .../SignClient/SignClient.Generated.cs | 0 .../SignClient/SignClient.json | 0 .../SignPath/SignPathTasks.cs | 0 .../SignTool/SignTool.Generated.cs | 0 .../SignTool/SignTool.json | 0 .../SignTool/SignToolTasks.cs | 0 .../BenchmarkDotNet.Generated.cs | 0 .../BenchmarkDotNet/BenchmarkDotNet.json | 0 .../DotMemoryUnit/DotMemoryUnit.Generated.cs | 0 .../DotMemoryUnit/DotMemoryUnit.json | 0 .../Fallout.Application.Tools.Testing.csproj | 13 +++++++++++++ .../Fixie/Fixie.Generated.cs | 0 .../Fixie/Fixie.json | 0 .../MSpec/MSpec.Generated.cs | 0 .../MSpec/MSpec.json | 0 .../MSpec/MSpecTasks.cs | 0 .../NUnit/NUnit.Generated.cs | 0 .../NUnit/NUnit.json | 0 .../NUnit/NUnitTasks.cs | 0 .../SpecFlow/SpecFlow.Generated.cs | 0 .../SpecFlow/SpecFlow.json | 0 .../TestCloud/TestCloud.Generated.cs | 0 .../TestCloud/TestCloud.json | 0 .../VSTest/VSTest.Generated.cs | 0 .../VSTest/VSTest.json | 0 .../Xunit/Xunit.Generated.cs | 0 .../Xunit/Xunit.json | 0 .../Xunit/Xunit2SettingsExtensions.cs | 0 .../Xunit/XunitTasks.cs | 0 ...allout.Application.Tools.Versioning.csproj | 13 +++++++++++++ .../GitVersion/GitVersion.Generated.cs | 0 .../GitVersion/GitVersion.json | 0 .../GitVersion/GitVersionAttribute.cs | 0 .../GitVersion/GitVersionTasks.cs | 0 .../GitVersion/NumberToStringJsonConverter.cs | 0 .../MinVer/MinVer.Generated.cs | 0 .../MinVer/MinVer.json | 0 .../MinVer/MinVerAttribute.cs | 0 .../MinVer/MinVerTasks.cs | 0 .../NerdbankGitVersioning.Generated.cs | 0 .../NerdbankGitVersioning.json | 0 .../NerdbankGitVersioningAttribute.cs | 0 .../NerdbankGitVersioningTasks.cs | 0 .../OctoVersion/OctoVersion.Generated.cs | 0 .../OctoVersion/OctoVersion.json | 0 .../OctoVersion/OctoVersionAttribute.cs | 0 .../OctoVersion/OctoVersionTasks.cs | 0 .../Fallout.Architecture.Specs.csproj | 9 +++++++++ .../FalloutArchitecture.cs | 9 +++++++++ .../LayeringSpecs.cs | 19 +++++++++++++++++-- .../Fallout.Cli.Specs.csproj | 2 ++ .../Fallout.Common.Specs.csproj | 2 ++ 118 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 src/Tools/Fallout.Application.Tools.Cloud/Fallout.Application.Tools.Cloud.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/Netlify/Netlify.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/Netlify/Netlify.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/Netlify/NetlifyTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/Octopus/Octopus.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/Octopus/Octopus.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/StaticWebApps/StaticWebApps.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Cloud}/StaticWebApps/StaticWebApps.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Documentation}/DocFX/DocFX.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Documentation}/DocFX/DocFX.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Documentation}/DocFX/DocFXTasks.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Documentation/Fallout.Application.Tools.Documentation.csproj create mode 100644 src/Tools/Fallout.Application.Tools.Gaming/Fallout.Application.Tools.Gaming.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/BlockMatcher.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/FileWatcher.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/LineMatcher.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/LogParser.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/MatchType.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/MatchedBlock.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Logging/UnityLogLevel.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Unity.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/Unity.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Gaming}/Unity/UnityTasks.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.JavaScript/Fallout.Application.Tools.JavaScript.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.JavaScript}/Npm/Npm.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.JavaScript}/Npm/Npm.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.JavaScript}/Npm/NpmTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Boots/Boots.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Boots/Boots.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Chocolatey/Chocolatey.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Chocolatey/Chocolatey.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/DotnetPackaging/DotnetPackaging.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/DotnetPackaging/DotnetPackaging.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Packaging/Fallout.Application.Tools.Packaging.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/InnoSetup/InnoSetup.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/InnoSetup/InnoSetup.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/InnoSetup/InnoSetupSettings.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/MakeNsis/MakeNSIS.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/MakeNsis/MakeNSIS.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Squirrel/Squirrel.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Packaging}/Squirrel/Squirrel.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Shell/Fallout.Application.Tools.Shell.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Shell}/PowerShell/PowerShell.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Shell}/PowerShell/PowerShell.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Shell}/PowerShell/PowerShellTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Shell}/Pwsh/Pwsh.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Shell}/Pwsh/Pwsh.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVault.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultAttributeBase.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultCertificate.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultKey.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultKeyAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultSecretAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureKeyVault/AzureKeyVaultTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureSignTool/AzureSignTool.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/AzureSignTool/AzureSignTool.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Signing/Fallout.Application.Tools.Signing.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignClient/SignClient.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignClient/SignClient.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignPath/SignPathTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignTool/SignTool.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignTool/SignTool.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Signing}/SignTool/SignToolTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/BenchmarkDotNet/BenchmarkDotNet.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/BenchmarkDotNet/BenchmarkDotNet.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/DotMemoryUnit/DotMemoryUnit.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/DotMemoryUnit/DotMemoryUnit.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Testing/Fallout.Application.Tools.Testing.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Fixie/Fixie.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Fixie/Fixie.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/MSpec/MSpec.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/MSpec/MSpec.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/MSpec/MSpecTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/NUnit/NUnit.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/NUnit/NUnit.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/NUnit/NUnitTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/SpecFlow/SpecFlow.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/SpecFlow/SpecFlow.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/TestCloud/TestCloud.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/TestCloud/TestCloud.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/VSTest/VSTest.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/VSTest/VSTest.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Xunit/Xunit.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Xunit/Xunit.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Xunit/Xunit2SettingsExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Testing}/Xunit/XunitTasks.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Versioning/Fallout.Application.Tools.Versioning.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/GitVersion/GitVersion.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/GitVersion/GitVersion.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/GitVersion/GitVersionAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/GitVersion/GitVersionTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/GitVersion/NumberToStringJsonConverter.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/MinVer/MinVer.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/MinVer/MinVer.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/MinVer/MinVerAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/MinVer/MinVerTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/NerdbankGitVersioning/NerdbankGitVersioning.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/OctoVersion/OctoVersion.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/OctoVersion/OctoVersion.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/OctoVersion/OctoVersionAttribute.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Versioning}/OctoVersion/OctoVersionTasks.cs (100%) diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index df15df355..cc693bde7 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -18,6 +18,13 @@ [assembly: InternalsVisibleTo("Fallout.Utilities.IO.Globbing")] [assembly: InternalsVisibleTo("Fallout.Utilities.Specs")] +// Application-layer tool families — some tool attributes integrate with the (currently +// internal) value-injection plumbing. Interim bridge until value-injection is a public +// Application API; tracked with the tool-namespace-alignment follow-up. +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Signing")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Versioning")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Shell")] + // External extensions — kept as Nuke.* until those projects rebrand independently. [assembly: InternalsVisibleTo("Nuke.VisualStudio")] [assembly: InternalsVisibleTo("ReSharper.Nuke")] diff --git a/fallout.slnx b/fallout.slnx index b9a124332..8f1c8ef25 100644 --- a/fallout.slnx +++ b/fallout.slnx @@ -30,7 +30,16 @@ + + + + + + + + + diff --git a/src/Fallout.Cli/Fallout.Cli.csproj b/src/Fallout.Cli/Fallout.Cli.csproj index 996a07f13..2daffc731 100644 --- a/src/Fallout.Cli/Fallout.Cli.csproj +++ b/src/Fallout.Cli/Fallout.Cli.csproj @@ -14,6 +14,8 @@ + + diff --git a/src/Fallout.Components/Fallout.Components.csproj b/src/Fallout.Components/Fallout.Components.csproj index 7b70d2480..eae6b2096 100644 --- a/src/Fallout.Components/Fallout.Components.csproj +++ b/src/Fallout.Components/Fallout.Components.csproj @@ -6,6 +6,8 @@ + + diff --git a/src/Tools/Fallout.Application.Tools.Cloud/Fallout.Application.Tools.Cloud.csproj b/src/Tools/Fallout.Application.Tools.Cloud/Fallout.Application.Tools.Cloud.csproj new file mode 100644 index 000000000..0d92526a2 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Cloud/Fallout.Application.Tools.Cloud.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Cloud/deploy tool wrappers — Octopus, Netlify, Static Web Apps. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/Netlify/Netlify.Generated.cs b/src/Tools/Fallout.Application.Tools.Cloud/Netlify/Netlify.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Netlify/Netlify.Generated.cs rename to src/Tools/Fallout.Application.Tools.Cloud/Netlify/Netlify.Generated.cs diff --git a/src/Fallout.Common/Tools/Netlify/Netlify.json b/src/Tools/Fallout.Application.Tools.Cloud/Netlify/Netlify.json similarity index 100% rename from src/Fallout.Common/Tools/Netlify/Netlify.json rename to src/Tools/Fallout.Application.Tools.Cloud/Netlify/Netlify.json diff --git a/src/Fallout.Common/Tools/Netlify/NetlifyTasks.cs b/src/Tools/Fallout.Application.Tools.Cloud/Netlify/NetlifyTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Netlify/NetlifyTasks.cs rename to src/Tools/Fallout.Application.Tools.Cloud/Netlify/NetlifyTasks.cs diff --git a/src/Fallout.Common/Tools/Octopus/Octopus.Generated.cs b/src/Tools/Fallout.Application.Tools.Cloud/Octopus/Octopus.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Octopus/Octopus.Generated.cs rename to src/Tools/Fallout.Application.Tools.Cloud/Octopus/Octopus.Generated.cs diff --git a/src/Fallout.Common/Tools/Octopus/Octopus.json b/src/Tools/Fallout.Application.Tools.Cloud/Octopus/Octopus.json similarity index 100% rename from src/Fallout.Common/Tools/Octopus/Octopus.json rename to src/Tools/Fallout.Application.Tools.Cloud/Octopus/Octopus.json diff --git a/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.Generated.cs b/src/Tools/Fallout.Application.Tools.Cloud/StaticWebApps/StaticWebApps.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.Generated.cs rename to src/Tools/Fallout.Application.Tools.Cloud/StaticWebApps/StaticWebApps.Generated.cs diff --git a/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.json b/src/Tools/Fallout.Application.Tools.Cloud/StaticWebApps/StaticWebApps.json similarity index 100% rename from src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.json rename to src/Tools/Fallout.Application.Tools.Cloud/StaticWebApps/StaticWebApps.json diff --git a/src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs b/src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFX.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs rename to src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFX.Generated.cs diff --git a/src/Fallout.Common/Tools/DocFX/DocFX.json b/src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFX.json similarity index 100% rename from src/Fallout.Common/Tools/DocFX/DocFX.json rename to src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFX.json diff --git a/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs b/src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFXTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/DocFX/DocFXTasks.cs rename to src/Tools/Fallout.Application.Tools.Documentation/DocFX/DocFXTasks.cs diff --git a/src/Tools/Fallout.Application.Tools.Documentation/Fallout.Application.Tools.Documentation.csproj b/src/Tools/Fallout.Application.Tools.Documentation/Fallout.Application.Tools.Documentation.csproj new file mode 100644 index 000000000..d34a701ce --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Documentation/Fallout.Application.Tools.Documentation.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Documentation tool wrappers — DocFX. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Tools/Fallout.Application.Tools.Gaming/Fallout.Application.Tools.Gaming.csproj b/src/Tools/Fallout.Application.Tools.Gaming/Fallout.Application.Tools.Gaming.csproj new file mode 100644 index 000000000..ab091d9ba --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Gaming/Fallout.Application.Tools.Gaming.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Game-engine tool wrappers — Unity. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/Unity/Logging/BlockMatcher.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/BlockMatcher.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/BlockMatcher.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/BlockMatcher.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/FileWatcher.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/FileWatcher.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/FileWatcher.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/FileWatcher.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/LineMatcher.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/LineMatcher.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/LineMatcher.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/LineMatcher.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/LogParser.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/LogParser.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/LogParser.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/LogParser.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/MatchType.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/MatchType.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/MatchType.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/MatchType.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/MatchedBlock.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/MatchedBlock.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/MatchedBlock.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/MatchedBlock.cs diff --git a/src/Fallout.Common/Tools/Unity/Logging/UnityLogLevel.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/UnityLogLevel.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Logging/UnityLogLevel.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Logging/UnityLogLevel.cs diff --git a/src/Fallout.Common/Tools/Unity/Unity.Generated.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Unity.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/Unity.Generated.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Unity.Generated.cs diff --git a/src/Fallout.Common/Tools/Unity/Unity.json b/src/Tools/Fallout.Application.Tools.Gaming/Unity/Unity.json similarity index 100% rename from src/Fallout.Common/Tools/Unity/Unity.json rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/Unity.json diff --git a/src/Fallout.Common/Tools/Unity/UnityTasks.cs b/src/Tools/Fallout.Application.Tools.Gaming/Unity/UnityTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Unity/UnityTasks.cs rename to src/Tools/Fallout.Application.Tools.Gaming/Unity/UnityTasks.cs diff --git a/src/Tools/Fallout.Application.Tools.JavaScript/Fallout.Application.Tools.JavaScript.csproj b/src/Tools/Fallout.Application.Tools.JavaScript/Fallout.Application.Tools.JavaScript.csproj new file mode 100644 index 000000000..ca57436db --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.JavaScript/Fallout.Application.Tools.JavaScript.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + JavaScript/Node tool wrappers — Npm. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/Npm/Npm.Generated.cs b/src/Tools/Fallout.Application.Tools.JavaScript/Npm/Npm.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Npm/Npm.Generated.cs rename to src/Tools/Fallout.Application.Tools.JavaScript/Npm/Npm.Generated.cs diff --git a/src/Fallout.Common/Tools/Npm/Npm.json b/src/Tools/Fallout.Application.Tools.JavaScript/Npm/Npm.json similarity index 100% rename from src/Fallout.Common/Tools/Npm/Npm.json rename to src/Tools/Fallout.Application.Tools.JavaScript/Npm/Npm.json diff --git a/src/Fallout.Common/Tools/Npm/NpmTasks.cs b/src/Tools/Fallout.Application.Tools.JavaScript/Npm/NpmTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Npm/NpmTasks.cs rename to src/Tools/Fallout.Application.Tools.JavaScript/Npm/NpmTasks.cs diff --git a/src/Fallout.Common/Tools/Boots/Boots.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/Boots/Boots.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Boots/Boots.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/Boots/Boots.Generated.cs diff --git a/src/Fallout.Common/Tools/Boots/Boots.json b/src/Tools/Fallout.Application.Tools.Packaging/Boots/Boots.json similarity index 100% rename from src/Fallout.Common/Tools/Boots/Boots.json rename to src/Tools/Fallout.Application.Tools.Packaging/Boots/Boots.json diff --git a/src/Fallout.Common/Tools/Chocolatey/Chocolatey.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/Chocolatey/Chocolatey.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Chocolatey/Chocolatey.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/Chocolatey/Chocolatey.Generated.cs diff --git a/src/Fallout.Common/Tools/Chocolatey/Chocolatey.json b/src/Tools/Fallout.Application.Tools.Packaging/Chocolatey/Chocolatey.json similarity index 100% rename from src/Fallout.Common/Tools/Chocolatey/Chocolatey.json rename to src/Tools/Fallout.Application.Tools.Packaging/Chocolatey/Chocolatey.json diff --git a/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/DotnetPackaging/DotnetPackaging.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/DotnetPackaging/DotnetPackaging.Generated.cs diff --git a/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.json b/src/Tools/Fallout.Application.Tools.Packaging/DotnetPackaging/DotnetPackaging.json similarity index 100% rename from src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.json rename to src/Tools/Fallout.Application.Tools.Packaging/DotnetPackaging/DotnetPackaging.json diff --git a/src/Tools/Fallout.Application.Tools.Packaging/Fallout.Application.Tools.Packaging.csproj b/src/Tools/Fallout.Application.Tools.Packaging/Fallout.Application.Tools.Packaging.csproj new file mode 100644 index 000000000..4565bc96e --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Packaging/Fallout.Application.Tools.Packaging.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Packaging/installer tool wrappers — Chocolatey, Squirrel, Inno Setup, NSIS, Boots, dotnet-packaging. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetup.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetup.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetup.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetup.Generated.cs diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetup.json b/src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetup.json similarity index 100% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetup.json rename to src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetup.json diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetupSettings.cs b/src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetupSettings.cs similarity index 100% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetupSettings.cs rename to src/Tools/Fallout.Application.Tools.Packaging/InnoSetup/InnoSetupSettings.cs diff --git a/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/MakeNsis/MakeNSIS.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/MakeNsis/MakeNSIS.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/MakeNsis/MakeNSIS.Generated.cs diff --git a/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.json b/src/Tools/Fallout.Application.Tools.Packaging/MakeNsis/MakeNSIS.json similarity index 100% rename from src/Fallout.Common/Tools/MakeNsis/MakeNSIS.json rename to src/Tools/Fallout.Application.Tools.Packaging/MakeNsis/MakeNSIS.json diff --git a/src/Fallout.Common/Tools/Squirrel/Squirrel.Generated.cs b/src/Tools/Fallout.Application.Tools.Packaging/Squirrel/Squirrel.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Squirrel/Squirrel.Generated.cs rename to src/Tools/Fallout.Application.Tools.Packaging/Squirrel/Squirrel.Generated.cs diff --git a/src/Fallout.Common/Tools/Squirrel/Squirrel.json b/src/Tools/Fallout.Application.Tools.Packaging/Squirrel/Squirrel.json similarity index 100% rename from src/Fallout.Common/Tools/Squirrel/Squirrel.json rename to src/Tools/Fallout.Application.Tools.Packaging/Squirrel/Squirrel.json diff --git a/src/Tools/Fallout.Application.Tools.Shell/Fallout.Application.Tools.Shell.csproj b/src/Tools/Fallout.Application.Tools.Shell/Fallout.Application.Tools.Shell.csproj new file mode 100644 index 000000000..39dae52b1 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Shell/Fallout.Application.Tools.Shell.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Shell tool wrappers — PowerShell, pwsh. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShell.Generated.cs b/src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShell.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/PowerShell/PowerShell.Generated.cs rename to src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShell.Generated.cs diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShell.json b/src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShell.json similarity index 100% rename from src/Fallout.Common/Tools/PowerShell/PowerShell.json rename to src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShell.json diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShellTasks.cs b/src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShellTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/PowerShell/PowerShellTasks.cs rename to src/Tools/Fallout.Application.Tools.Shell/PowerShell/PowerShellTasks.cs diff --git a/src/Fallout.Common/Tools/Pwsh/Pwsh.Generated.cs b/src/Tools/Fallout.Application.Tools.Shell/Pwsh/Pwsh.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Pwsh/Pwsh.Generated.cs rename to src/Tools/Fallout.Application.Tools.Shell/Pwsh/Pwsh.Generated.cs diff --git a/src/Fallout.Common/Tools/Pwsh/Pwsh.json b/src/Tools/Fallout.Application.Tools.Shell/Pwsh/Pwsh.json similarity index 100% rename from src/Fallout.Common/Tools/Pwsh/Pwsh.json rename to src/Tools/Fallout.Application.Tools.Shell/Pwsh/Pwsh.json diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVault.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVault.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultAttribute.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultAttributeBase.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultAttributeBase.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultCertificate.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultCertificate.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultKey.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultKey.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultKeyAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultKeyAttribute.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultSecretAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultSecretAttribute.cs diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureKeyVault/AzureKeyVaultTasks.cs diff --git a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs b/src/Tools/Fallout.Application.Tools.Signing/AzureSignTool/AzureSignTool.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs rename to src/Tools/Fallout.Application.Tools.Signing/AzureSignTool/AzureSignTool.Generated.cs diff --git a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.json b/src/Tools/Fallout.Application.Tools.Signing/AzureSignTool/AzureSignTool.json similarity index 100% rename from src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.json rename to src/Tools/Fallout.Application.Tools.Signing/AzureSignTool/AzureSignTool.json diff --git a/src/Tools/Fallout.Application.Tools.Signing/Fallout.Application.Tools.Signing.csproj b/src/Tools/Fallout.Application.Tools.Signing/Fallout.Application.Tools.Signing.csproj new file mode 100644 index 000000000..904f36a17 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Signing/Fallout.Application.Tools.Signing.csproj @@ -0,0 +1,19 @@ + + + + net10.0 + Code-signing tool wrappers — Azure Key Vault, AzureSignTool, SignClient, SignPath, SignTool, NuGetKeyVaultSignTool. Application layer (Fallout.Application.Tools.*). + + + + + + + + + + + + + + diff --git a/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs b/src/Tools/Fallout.Application.Tools.Signing/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs rename to src/Tools/Fallout.Application.Tools.Signing/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs diff --git a/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json b/src/Tools/Fallout.Application.Tools.Signing/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json similarity index 100% rename from src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json rename to src/Tools/Fallout.Application.Tools.Signing/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json diff --git a/src/Fallout.Common/Tools/SignClient/SignClient.Generated.cs b/src/Tools/Fallout.Application.Tools.Signing/SignClient/SignClient.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/SignClient/SignClient.Generated.cs rename to src/Tools/Fallout.Application.Tools.Signing/SignClient/SignClient.Generated.cs diff --git a/src/Fallout.Common/Tools/SignClient/SignClient.json b/src/Tools/Fallout.Application.Tools.Signing/SignClient/SignClient.json similarity index 100% rename from src/Fallout.Common/Tools/SignClient/SignClient.json rename to src/Tools/Fallout.Application.Tools.Signing/SignClient/SignClient.json diff --git a/src/Fallout.Common/Tools/SignPath/SignPathTasks.cs b/src/Tools/Fallout.Application.Tools.Signing/SignPath/SignPathTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/SignPath/SignPathTasks.cs rename to src/Tools/Fallout.Application.Tools.Signing/SignPath/SignPathTasks.cs diff --git a/src/Fallout.Common/Tools/SignTool/SignTool.Generated.cs b/src/Tools/Fallout.Application.Tools.Signing/SignTool/SignTool.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/SignTool/SignTool.Generated.cs rename to src/Tools/Fallout.Application.Tools.Signing/SignTool/SignTool.Generated.cs diff --git a/src/Fallout.Common/Tools/SignTool/SignTool.json b/src/Tools/Fallout.Application.Tools.Signing/SignTool/SignTool.json similarity index 100% rename from src/Fallout.Common/Tools/SignTool/SignTool.json rename to src/Tools/Fallout.Application.Tools.Signing/SignTool/SignTool.json diff --git a/src/Fallout.Common/Tools/SignTool/SignToolTasks.cs b/src/Tools/Fallout.Application.Tools.Signing/SignTool/SignToolTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/SignTool/SignToolTasks.cs rename to src/Tools/Fallout.Application.Tools.Signing/SignTool/SignToolTasks.cs diff --git a/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/BenchmarkDotNet/BenchmarkDotNet.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/BenchmarkDotNet/BenchmarkDotNet.Generated.cs diff --git a/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.json b/src/Tools/Fallout.Application.Tools.Testing/BenchmarkDotNet/BenchmarkDotNet.json similarity index 100% rename from src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.json rename to src/Tools/Fallout.Application.Tools.Testing/BenchmarkDotNet/BenchmarkDotNet.json diff --git a/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/DotMemoryUnit/DotMemoryUnit.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/DotMemoryUnit/DotMemoryUnit.Generated.cs diff --git a/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.json b/src/Tools/Fallout.Application.Tools.Testing/DotMemoryUnit/DotMemoryUnit.json similarity index 100% rename from src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.json rename to src/Tools/Fallout.Application.Tools.Testing/DotMemoryUnit/DotMemoryUnit.json diff --git a/src/Tools/Fallout.Application.Tools.Testing/Fallout.Application.Tools.Testing.csproj b/src/Tools/Fallout.Application.Tools.Testing/Fallout.Application.Tools.Testing.csproj new file mode 100644 index 000000000..c4c2cb9d2 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Testing/Fallout.Application.Tools.Testing.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Test-runner tool wrappers — xUnit, NUnit, MSpec, Fixie, VSTest, SpecFlow, TestCloud, BenchmarkDotNet, dotMemory Unit. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/Fixie/Fixie.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/Fixie/Fixie.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Fixie/Fixie.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/Fixie/Fixie.Generated.cs diff --git a/src/Fallout.Common/Tools/Fixie/Fixie.json b/src/Tools/Fallout.Application.Tools.Testing/Fixie/Fixie.json similarity index 100% rename from src/Fallout.Common/Tools/Fixie/Fixie.json rename to src/Tools/Fallout.Application.Tools.Testing/Fixie/Fixie.json diff --git a/src/Fallout.Common/Tools/MSpec/MSpec.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpec.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/MSpec/MSpec.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpec.Generated.cs diff --git a/src/Fallout.Common/Tools/MSpec/MSpec.json b/src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpec.json similarity index 100% rename from src/Fallout.Common/Tools/MSpec/MSpec.json rename to src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpec.json diff --git a/src/Fallout.Common/Tools/MSpec/MSpecTasks.cs b/src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpecTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/MSpec/MSpecTasks.cs rename to src/Tools/Fallout.Application.Tools.Testing/MSpec/MSpecTasks.cs diff --git a/src/Fallout.Common/Tools/NUnit/NUnit.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnit.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/NUnit/NUnit.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnit.Generated.cs diff --git a/src/Fallout.Common/Tools/NUnit/NUnit.json b/src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnit.json similarity index 100% rename from src/Fallout.Common/Tools/NUnit/NUnit.json rename to src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnit.json diff --git a/src/Fallout.Common/Tools/NUnit/NUnitTasks.cs b/src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnitTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/NUnit/NUnitTasks.cs rename to src/Tools/Fallout.Application.Tools.Testing/NUnit/NUnitTasks.cs diff --git a/src/Fallout.Common/Tools/SpecFlow/SpecFlow.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/SpecFlow/SpecFlow.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/SpecFlow/SpecFlow.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/SpecFlow/SpecFlow.Generated.cs diff --git a/src/Fallout.Common/Tools/SpecFlow/SpecFlow.json b/src/Tools/Fallout.Application.Tools.Testing/SpecFlow/SpecFlow.json similarity index 100% rename from src/Fallout.Common/Tools/SpecFlow/SpecFlow.json rename to src/Tools/Fallout.Application.Tools.Testing/SpecFlow/SpecFlow.json diff --git a/src/Fallout.Common/Tools/TestCloud/TestCloud.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/TestCloud/TestCloud.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/TestCloud/TestCloud.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/TestCloud/TestCloud.Generated.cs diff --git a/src/Fallout.Common/Tools/TestCloud/TestCloud.json b/src/Tools/Fallout.Application.Tools.Testing/TestCloud/TestCloud.json similarity index 100% rename from src/Fallout.Common/Tools/TestCloud/TestCloud.json rename to src/Tools/Fallout.Application.Tools.Testing/TestCloud/TestCloud.json diff --git a/src/Fallout.Common/Tools/VSTest/VSTest.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/VSTest/VSTest.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/VSTest/VSTest.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/VSTest/VSTest.Generated.cs diff --git a/src/Fallout.Common/Tools/VSTest/VSTest.json b/src/Tools/Fallout.Application.Tools.Testing/VSTest/VSTest.json similarity index 100% rename from src/Fallout.Common/Tools/VSTest/VSTest.json rename to src/Tools/Fallout.Application.Tools.Testing/VSTest/VSTest.json diff --git a/src/Fallout.Common/Tools/Xunit/Xunit.Generated.cs b/src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Xunit/Xunit.Generated.cs rename to src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit.Generated.cs diff --git a/src/Fallout.Common/Tools/Xunit/Xunit.json b/src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit.json similarity index 100% rename from src/Fallout.Common/Tools/Xunit/Xunit.json rename to src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit.json diff --git a/src/Fallout.Common/Tools/Xunit/Xunit2SettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit2SettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/Tools/Xunit/Xunit2SettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.Testing/Xunit/Xunit2SettingsExtensions.cs diff --git a/src/Fallout.Common/Tools/Xunit/XunitTasks.cs b/src/Tools/Fallout.Application.Tools.Testing/Xunit/XunitTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Xunit/XunitTasks.cs rename to src/Tools/Fallout.Application.Tools.Testing/Xunit/XunitTasks.cs diff --git a/src/Tools/Fallout.Application.Tools.Versioning/Fallout.Application.Tools.Versioning.csproj b/src/Tools/Fallout.Application.Tools.Versioning/Fallout.Application.Tools.Versioning.csproj new file mode 100644 index 000000000..ae871ca32 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Versioning/Fallout.Application.Tools.Versioning.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + Versioning tool wrappers — GitVersion, MinVer, Nerdbank.GitVersioning, OctoVersion. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersion.Generated.cs b/src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersion.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/GitVersion.Generated.cs rename to src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersion.Generated.cs diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersion.json b/src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersion.json similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/GitVersion.json rename to src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersion.json diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersionAttribute.cs b/src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersionAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/GitVersionAttribute.cs rename to src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersionAttribute.cs diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersionTasks.cs b/src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersionTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/GitVersionTasks.cs rename to src/Tools/Fallout.Application.Tools.Versioning/GitVersion/GitVersionTasks.cs diff --git a/src/Fallout.Common/Tools/GitVersion/NumberToStringJsonConverter.cs b/src/Tools/Fallout.Application.Tools.Versioning/GitVersion/NumberToStringJsonConverter.cs similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/NumberToStringJsonConverter.cs rename to src/Tools/Fallout.Application.Tools.Versioning/GitVersion/NumberToStringJsonConverter.cs diff --git a/src/Fallout.Common/Tools/MinVer/MinVer.Generated.cs b/src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVer.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/MinVer/MinVer.Generated.cs rename to src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVer.Generated.cs diff --git a/src/Fallout.Common/Tools/MinVer/MinVer.json b/src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVer.json similarity index 100% rename from src/Fallout.Common/Tools/MinVer/MinVer.json rename to src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVer.json diff --git a/src/Fallout.Common/Tools/MinVer/MinVerAttribute.cs b/src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVerAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/MinVer/MinVerAttribute.cs rename to src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVerAttribute.cs diff --git a/src/Fallout.Common/Tools/MinVer/MinVerTasks.cs b/src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVerTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/MinVer/MinVerTasks.cs rename to src/Tools/Fallout.Application.Tools.Versioning/MinVer/MinVerTasks.cs diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs b/src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs rename to src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.json b/src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioning.json similarity index 100% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.json rename to src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioning.json diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs b/src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs rename to src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs b/src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs rename to src/Tools/Fallout.Application.Tools.Versioning/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersion.Generated.cs b/src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersion.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersion.Generated.cs rename to src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersion.Generated.cs diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersion.json b/src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersion.json similarity index 100% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersion.json rename to src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersion.json diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersionAttribute.cs b/src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersionAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersionAttribute.cs rename to src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersionAttribute.cs diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs b/src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersionTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs rename to src/Tools/Fallout.Application.Tools.Versioning/OctoVersion/OctoVersionTasks.cs diff --git a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj index f421362cb..3c9defa66 100644 --- a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj +++ b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj @@ -51,7 +51,16 @@ + + + + + + + + + diff --git a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs index 15f899083..d012040ec 100644 --- a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs +++ b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs @@ -40,6 +40,15 @@ internal static class FalloutArchitecture // namespace alignment (still legacy Fallout.Common.Tools.*) is deferred, so they are deliberately // NOT in RuntimeLibraries (the naming-rule subjects) yet. public const string ToolsNotifications = "Fallout.Application.Tools.Notifications"; + public const string ToolsJavaScript = "Fallout.Application.Tools.JavaScript"; + public const string ToolsTesting = "Fallout.Application.Tools.Testing"; + public const string ToolsSigning = "Fallout.Application.Tools.Signing"; + public const string ToolsPackaging = "Fallout.Application.Tools.Packaging"; + public const string ToolsVersioning = "Fallout.Application.Tools.Versioning"; + public const string ToolsCloud = "Fallout.Application.Tools.Cloud"; + public const string ToolsShell = "Fallout.Application.Tools.Shell"; + public const string ToolsGaming = "Fallout.Application.Tools.Gaming"; + public const string ToolsDocumentation = "Fallout.Application.Tools.Documentation"; // Transition shims. public const string NukeCommon = "Nuke.Common"; diff --git a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs index c02d99447..e560a7860 100644 --- a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs +++ b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs @@ -54,11 +54,26 @@ public void Tooling_contract_leaf_is_a_foundation(string leaf) => [Theory] [InlineData(Arch.ToolsNotifications)] + [InlineData(Arch.ToolsJavaScript)] + [InlineData(Arch.ToolsTesting)] + [InlineData(Arch.ToolsSigning)] + [InlineData(Arch.ToolsPackaging)] + [InlineData(Arch.ToolsVersioning)] + [InlineData(Arch.ToolsCloud)] + [InlineData(Arch.ToolsShell)] + [InlineData(Arch.ToolsGaming)] + [InlineData(Arch.ToolsDocumentation)] public void Tool_family_does_not_depend_on_upper_layers(string family) => + // Tool families legitimately reach UP into Fallout.Build today — their value-injection + // attributes derive from ValueInjectionAttributeBase, which still lives in Fallout.Build. + // That edge is interim debt of the half-onion state (value-injection moves to a lower layer + // with the deferred namespace/Infrastructure pass); until then we guard the edges that would + // actually break the model: a tool family must never depend on the Components layer (which + // depends on tools — that would be a cycle) or the Cli composition root. Ratchet.Enforce( Arch.TypesIn(family) - .Should().NotDependOnAny(Arch.TypesIn(Arch.Build, Arch.Components, Arch.Cli)), - $"{family} is an Application-layer tool family and must not depend on the Build/Components/Cli layers above it", + .Should().NotDependOnAny(Arch.TypesIn(Arch.Components, Arch.Cli)), + $"{family} is an Application-layer tool family and must not depend on the Components layer or the Cli composition root", KnownViolations.None); [Fact] diff --git a/tests/Fallout.Cli.Specs/Fallout.Cli.Specs.csproj b/tests/Fallout.Cli.Specs/Fallout.Cli.Specs.csproj index 911b87173..ea2175e4b 100644 --- a/tests/Fallout.Cli.Specs/Fallout.Cli.Specs.csproj +++ b/tests/Fallout.Cli.Specs/Fallout.Cli.Specs.csproj @@ -7,6 +7,8 @@ + + diff --git a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj index 077e00e13..0642b3a09 100644 --- a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj +++ b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj @@ -7,6 +7,8 @@ + + From 355b1626d3dc975569bf9400615830eeee11fc2e Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Mon, 29 Jun 2026 15:40:56 +1200 Subject: [PATCH 3/3] Extract the entangled tool families and break the Common<->Tools cycle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Completes the tools split: the four families that were coupled to Fallout.Common or to each other now live under src/Tools/ as well, so Fallout.Common no longer contains any tool wrappers. Families: - DotNet (dotnet/MSBuild/NuGet/Paket/EntityFramework/NSwag/ILRepack/CorFlags/ VSWhere/MauiCheck/WebConfigTransformRunner) — also home to the three TeamCity DotNet/MSBuild settings-extension bridges moved out of Common. - Coverage (Coverlet/OpenCover/dotCover/ReportGenerator/Codecov/Coveralls/ CodeMetrics/SonarScanner) — references Tools.DotNet (Coverlet). - Containers (Docker/Helm/Kubernetes/Pulumi) — references Tools.DotNet (Docker). - VersionControl (Git/GitHub/GitLink/GitReleaseManager) + LatestGitHubReleaseAttribute; adds Octokit. Cycle-break: - GitHubTasks.cs split: the pure GitRepository URL/identity helpers (and GitHubItemType) move down next to GitRepository as Fallout.Build/VCS/ GitHubUrlExtensions.cs (namespace Fallout.Common.Git, no Octokit); the Octokit-backed client stays in the GitHub tool. ChangeLogTasks now resolves the URL helpers via Fallout.Common.Git and no longer depends on a tool. - TeamCity.cs no longer references the DotCover tool (nameof -> string literals). Wiring: Cli/Components/_build and the affected test projects gain ProjectReferences; the four families get InternalsVisibleTo for Common's value-injection internals; Octokit/Azure.* package refs removed from Fallout.Common (now on the owning families). Architecture suite governs all 14 families; the two new Fallout.Common.Git helper types are added to the namespace-drift baseline. Co-Authored-By: Claude Opus 4.8 (1M context) --- AssemblyInfo.cs | 4 + build/Build.CodeGeneration.cs | 1 + build/Build.Stargazers.cs | 1 + build/_build.csproj | 3 + fallout.slnx | 4 + src/Fallout.Build/VCS/GitHubUrlExtensions.cs | 119 ++++++++++++++++++ src/Fallout.Cli/Fallout.Cli.csproj | 2 + src/Fallout.Common/CI/TeamCity/TeamCity.cs | 5 +- .../ChangeLog/ChangeLogTasks.cs | 1 - src/Fallout.Common/Fallout.Common.csproj | 8 -- .../Fallout.Components.csproj | 3 + .../ICreateGitHubRelease.cs | 1 + .../Docker/Docker.Generated.cs | 0 .../Docker/Docker.json | 0 .../DockerTargetDefinitionExtensions.cs | 0 .../Docker/DockerTasks.cs | 0 ...allout.Application.Tools.Containers.csproj | 14 +++ .../Helm/Helm.Generated.cs | 0 .../Helm/Helm.json | 0 .../Kubernetes/Kubernetes.Generated.cs | 0 .../Kubernetes/Kubernetes.json | 0 .../Pulumi/Pulumi.Generated.cs | 0 .../Pulumi/Pulumi.json | 0 .../Pulumi/PulumiTasks.cs | 0 .../CodeMetrics/CodeMetrics.Generated.cs | 0 .../CodeMetrics/CodeMetrics.json | 0 .../Codecov/Codecov.Generated.cs | 0 .../Codecov/Codecov.json | 0 .../Codecov/CodecovTasks.cs | 0 .../CoverallsNet/CoverallsNet.Generated.cs | 0 .../CoverallsNet/CoverallsNet.json | 0 .../Coverlet/Coverlet.Generated.cs | 0 .../Coverlet/Coverlet.json | 0 .../Coverlet/CoverletSettingsExtensions.cs | 0 .../DotCover/DotCover.Generated.cs | 0 .../DotCover/DotCover.json | 0 .../DotCover/DotCoverTasks.cs | 0 .../TeamCitySetDotCoverHomePathAttribute.cs | 0 .../Fallout.Application.Tools.Coverage.csproj | 14 +++ .../OpenCover/OpenCover.Generated.cs | 0 .../OpenCover/OpenCover.json | 0 .../OpenCover/OpenCoverTasks.cs | 0 .../ReportGenerator.Generated.cs | 0 .../ReportGenerator/ReportGenerator.json | 0 .../ReportGenerator/ReportGeneratorTasks.cs | 0 .../SonarScanner/SonarScanner.Generated.cs | 0 .../SonarScanner/SonarScanner.json | 0 .../CorFlags/CorFlags.Generated.cs | 0 .../CorFlags/CorFlags.json | 0 .../CorFlags/CorFlagsSettings.cs | 0 .../DotNet/DotNet.Generated.cs | 0 .../DotNet/DotNet.json | 0 .../DotNet/DotNetRuntimeIdentifier.cs | 0 .../DotNet/DotNetTasks.cs | 0 .../DotNetBuildSettingsExtensions.cs | 0 .../DotNetTestSettingsExtensions.cs | 0 .../EntityFramework.Generated.cs | 0 .../EntityFramework/EntityFramework.json | 0 .../Fallout.Application.Tools.DotNet.csproj | 13 ++ .../ILRepack/ILRepack.Generated.cs | 0 .../ILRepack/ILRepack.json | 0 .../MSBuild/MSBuild.Generated.cs | 0 .../MSBuild/MSBuild.json | 0 .../MSBuild/MSBuildPlatform.cs | 0 .../MSBuild/MSBuildProject.cs | 0 .../MSBuild/MSBuildSettingsExtensions.cs | 0 .../MSBuild/MSBuildTasks.cs | 0 .../MSBuild/MSBuildToolPathResolver.cs | 0 .../MSBuild/MSBuildVersion.cs | 0 .../MSBuildSettingsExtensions.cs | 0 .../MauiCheck/MauiCheck.Generated.cs | 0 .../MauiCheck/MauiCheck.json | 0 .../NSwag/NSwag.Generated.cs | 0 .../NSwag/NSwag.json | 0 .../NuGet/NuGet.Generated.cs | 0 .../NuGet/NuGet.json | 0 .../Paket/Paket.Generated.cs | 0 .../Paket/Paket.json | 0 .../VSWhere/VSWhere.Generated.cs | 0 .../VSWhere/VSWhere.json | 0 .../VSWhere/VSWhereTasks.cs | 0 .../WebConfigTransformRunner.Generated.cs | 0 .../WebConfigTransformRunner.json | 0 ...ut.Application.Tools.VersionControl.csproj | 17 +++ .../Git/Git.Generated.cs | 0 .../Git/Git.json | 0 .../Git/GitTasks.cs | 0 .../GitHub/GitHubTasks.cs | 107 ---------------- .../GitLink/GitLink.Generated.cs | 0 .../GitLink/GitLink.json | 0 .../GitReleaseManager.Generated.cs | 0 .../GitReleaseManager/GitReleaseManager.json | 0 .../LatestGitHubReleaseAttribute.cs | 0 .../Fallout.Architecture.Specs.csproj | 4 + .../FalloutArchitecture.cs | 4 + .../KnownViolations.cs | 2 + .../LayeringSpecs.cs | 4 + .../Fallout.Common.Specs.csproj | 4 + 98 files changed, 216 insertions(+), 119 deletions(-) create mode 100644 src/Fallout.Build/VCS/GitHubUrlExtensions.cs rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Docker/Docker.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Docker/Docker.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Docker/DockerTargetDefinitionExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Docker/DockerTasks.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Containers/Fallout.Application.Tools.Containers.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Helm/Helm.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Helm/Helm.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Kubernetes/Kubernetes.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Kubernetes/Kubernetes.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Pulumi/Pulumi.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Pulumi/Pulumi.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Containers}/Pulumi/PulumiTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/CodeMetrics/CodeMetrics.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/CodeMetrics/CodeMetrics.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Codecov/Codecov.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Codecov/Codecov.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Codecov/CodecovTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/CoverallsNet/CoverallsNet.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/CoverallsNet/CoverallsNet.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Coverlet/Coverlet.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Coverlet/Coverlet.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/Coverlet/CoverletSettingsExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/DotCover/DotCover.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/DotCover/DotCover.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/DotCover/DotCoverTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/DotCover/TeamCitySetDotCoverHomePathAttribute.cs (100%) create mode 100644 src/Tools/Fallout.Application.Tools.Coverage/Fallout.Application.Tools.Coverage.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/OpenCover/OpenCover.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/OpenCover/OpenCover.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/OpenCover/OpenCoverTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/ReportGenerator/ReportGenerator.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/ReportGenerator/ReportGenerator.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/ReportGenerator/ReportGeneratorTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/SonarScanner/SonarScanner.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.Coverage}/SonarScanner/SonarScanner.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/CorFlags/CorFlags.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/CorFlags/CorFlags.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/CorFlags/CorFlagsSettings.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/DotNet/DotNet.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/DotNet/DotNet.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/DotNet/DotNetRuntimeIdentifier.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/DotNet/DotNetTasks.cs (100%) rename src/{Fallout.Common/CI/TeamCity => Tools/Fallout.Application.Tools.DotNet}/DotNetBuildSettingsExtensions.cs (100%) rename src/{Fallout.Common/CI/TeamCity => Tools/Fallout.Application.Tools.DotNet}/DotNetTestSettingsExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/EntityFramework/EntityFramework.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/EntityFramework/EntityFramework.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.DotNet/Fallout.Application.Tools.DotNet.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/ILRepack/ILRepack.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/ILRepack/ILRepack.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuild.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuild.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildPlatform.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildProject.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildSettingsExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildToolPathResolver.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MSBuild/MSBuildVersion.cs (100%) rename src/{Fallout.Common/CI/TeamCity => Tools/Fallout.Application.Tools.DotNet}/MSBuildSettingsExtensions.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MauiCheck/MauiCheck.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/MauiCheck/MauiCheck.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/NSwag/NSwag.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/NSwag/NSwag.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/NuGet/NuGet.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/NuGet/NuGet.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/Paket/Paket.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/Paket/Paket.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/VSWhere/VSWhere.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/VSWhere/VSWhere.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/VSWhere/VSWhereTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.DotNet}/WebConfigTransformRunner/WebConfigTransformRunner.json (100%) create mode 100644 src/Tools/Fallout.Application.Tools.VersionControl/Fallout.Application.Tools.VersionControl.csproj rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/Git/Git.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/Git/Git.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/Git/GitTasks.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/GitHub/GitHubTasks.cs (52%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/GitLink/GitLink.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/GitLink/GitLink.json (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/GitReleaseManager/GitReleaseManager.Generated.cs (100%) rename src/{Fallout.Common/Tools => Tools/Fallout.Application.Tools.VersionControl}/GitReleaseManager/GitReleaseManager.json (100%) rename src/{Fallout.Common/Attributes => Tools/Fallout.Application.Tools.VersionControl}/LatestGitHubReleaseAttribute.cs (100%) diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index cc693bde7..af099f603 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -24,6 +24,10 @@ [assembly: InternalsVisibleTo("Fallout.Application.Tools.Signing")] [assembly: InternalsVisibleTo("Fallout.Application.Tools.Versioning")] [assembly: InternalsVisibleTo("Fallout.Application.Tools.Shell")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.DotNet")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Coverage")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Containers")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.VersionControl")] // External extensions — kept as Nuke.* until those projects rebrand independently. [assembly: InternalsVisibleTo("Nuke.VisualStudio")] diff --git a/build/Build.CodeGeneration.cs b/build/Build.CodeGeneration.cs index f8ab28165..109417e77 100644 --- a/build/Build.CodeGeneration.cs +++ b/build/Build.CodeGeneration.cs @@ -1,6 +1,7 @@ using System; using Fallout.Common; using Fallout.Common.IO; +using Fallout.Common.Git; using Fallout.Common.Tools.GitHub; using Fallout.Common.Utilities.Collections; using static Fallout.CodeGeneration.CodeGenerator; diff --git a/build/Build.Stargazers.cs b/build/Build.Stargazers.cs index 72d5449ba..47a428d56 100644 --- a/build/Build.Stargazers.cs +++ b/build/Build.Stargazers.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Fallout.Common; using Fallout.Common.IO; +using Fallout.Common.Git; using Fallout.Common.Tools.GitHub; using Fallout.Common.Utilities; diff --git a/build/_build.csproj b/build/_build.csproj index cee68e3d4..89c4f410b 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -67,6 +67,9 @@ + + + diff --git a/fallout.slnx b/fallout.slnx index 8f1c8ef25..75b2cf2e3 100644 --- a/fallout.slnx +++ b/fallout.slnx @@ -31,6 +31,9 @@ + + + @@ -40,6 +43,7 @@ + diff --git a/src/Fallout.Build/VCS/GitHubUrlExtensions.cs b/src/Fallout.Build/VCS/GitHubUrlExtensions.cs new file mode 100644 index 000000000..adfd752e8 --- /dev/null +++ b/src/Fallout.Build/VCS/GitHubUrlExtensions.cs @@ -0,0 +1,119 @@ +using System.IO; +using Fallout.Common.Utilities; +using static Fallout.Common.IO.PathConstruction; + +namespace Fallout.Common.Git; + +public enum GitHubItemType +{ + Automatic, + File, + Directory +} + +/// +/// Pure URL/identity helpers over a for GitHub-hosted repositories. +/// These are Git-domain string helpers (no GitHub API access) and live next to +/// ; the Octokit-backed client lives in the GitHub tool. +/// +public static class GitHubUrlExtensions +{ + public static bool IsGitHubRepository(this GitRepository repository) + { + return repository?.Endpoint?.EqualsOrdinalIgnoreCase("github.com") ?? false; + } + + public static string GetGitHubOwner(this GitRepository repository) + { + Assert.True(repository.IsGitHubRepository()); + return repository.Identifier.Split('/')[0]; + } + + public static string GetGitHubName(this GitRepository repository) + { + Assert.True(repository.IsGitHubRepository()); + return repository.Identifier.Split('/')[1]; + } + + public static string GetGitHubCompareCommitsUrl(this GitRepository repository, string startCommitSha, string endCommitSha) + { + Assert.True(repository.IsGitHubRepository()); + return $"https://github.com/{repository.Identifier}/compare/{endCommitSha}^...{startCommitSha}"; + } + + public static string GetGitHubCompareTagToHeadUrl(this GitRepository repository, string tag) + { + Assert.True(repository.IsGitHubRepository()); + return $"https://github.com/{repository.Identifier}/compare/{tag}...HEAD"; + } + + public static string GetGitHubCompareTagsUrl(this GitRepository repository, string startTag, string endTag) + { + Assert.True(repository.IsGitHubRepository()); + return $"https://github.com/{repository.Identifier}/compare/{endTag}...{startTag}"; + } + + public static string GetGitHubCommitUrl(this GitRepository repository, string commitSha) + { + Assert.True(repository.IsGitHubRepository()); + return $"https://github.com/{repository.Identifier}/commit/{commitSha}"; + } + + /// Url in the form of https://raw.githubusercontent.com/{identifier}/{branch}/{file}. + public static string GetGitHubDownloadUrl(this GitRepository repository, string file, string branch = null) + { + Assert.True(repository.IsGitHubRepository()); + + branch ??= repository.Branch.NotNull("repository.Branch != null"); + var relativePath = GetRepositoryRelativePath(file, repository); + return $"https://raw.githubusercontent.com/{repository.Identifier}/{branch}/{relativePath}"; + } + + /// + /// Url in the form of https://github.com/{identifier}/tree/{branch}/directory or + /// https://github.com/{identifier}/blob/{branch}/file depending on the item type. + /// + public static string GetGitHubBrowseUrl( + this GitRepository repository, + string path = null, + string branch = null, + GitHubItemType itemType = GitHubItemType.Automatic) + { + Assert.True(repository.IsGitHubRepository()); + + branch ??= repository.Branch.NotNull(); + var relativePath = GetRepositoryRelativePath(path, repository); + var method = GetMethod(relativePath, itemType, repository); + Assert.True(path == null || method != null, "Could not determine item type"); + + return $"https://github.com/{repository.Identifier}/{method}/{branch}/{relativePath}".TrimEnd("/"); + } + + private static string GetMethod(string relativePath, GitHubItemType itemType, GitRepository repository) + { + var absolutePath = repository.LocalDirectory != null && relativePath != null + ? NormalizePath(Path.Combine(repository.LocalDirectory, relativePath)) + : null; + + if (itemType == GitHubItemType.Directory || Directory.Exists(absolutePath) || relativePath == null) + return "tree"; + + if (itemType == GitHubItemType.File || File.Exists(absolutePath)) + return "blob"; + + return null; + } + + private static string GetRepositoryRelativePath(string path, GitRepository repository) + { + if (path == null) + return null; + + if (!Path.IsPathRooted(path)) + return path; + + var localDirectory = repository.LocalDirectory.NotNull(); + Assert.True(IsDescendantPath(localDirectory, path), $"Path {path.SingleQuote()} must be descendant of {localDirectory:s}"); + return GetRelativePath(localDirectory, path).Replace(oldChar: '\\', newChar: '/'); + } +} diff --git a/src/Fallout.Cli/Fallout.Cli.csproj b/src/Fallout.Cli/Fallout.Cli.csproj index 2daffc731..876045491 100644 --- a/src/Fallout.Cli/Fallout.Cli.csproj +++ b/src/Fallout.Cli/Fallout.Cli.csproj @@ -14,7 +14,9 @@ + + diff --git a/src/Fallout.Common/CI/TeamCity/TeamCity.cs b/src/Fallout.Common/CI/TeamCity/TeamCity.cs index b12931127..fb1cb34d6 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCity.cs +++ b/src/Fallout.Common/CI/TeamCity/TeamCity.cs @@ -5,7 +5,6 @@ using System.Linq; using System.Text; using Fallout.Common.IO; -using Fallout.Common.Tools.DotCover; using Fallout.Common.Utilities; using Fallout.Common.Utilities.Collections; using Serilog; @@ -140,8 +139,8 @@ public void ImportData( { Log.Warning("Configuration parameter 'teamcity.dotCover.home' is set to the bundled version." + "Adding the {AttributeName} will automatically set " + - $"it to '{nameof(DotCoverTasks)}.{nameof(DotCoverTasks.DotCoverPath)}'", - nameof(TeamCitySetDotCoverHomePathAttribute)); + "it to 'DotCoverTasks.DotCoverPath'", + "TeamCitySetDotCoverHomePathAttribute"); } Write("importData", diff --git a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs b/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs index c354b0293..1bbf03b96 100644 --- a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs +++ b/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs @@ -5,7 +5,6 @@ using NuGet.Versioning; using Fallout.Common.Git; using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; using Fallout.Common.Utilities; using Serilog; diff --git a/src/Fallout.Common/Fallout.Common.csproj b/src/Fallout.Common/Fallout.Common.csproj index b0c922b14..5382bc5e1 100644 --- a/src/Fallout.Common/Fallout.Common.csproj +++ b/src/Fallout.Common/Fallout.Common.csproj @@ -22,14 +22,6 @@ - - - - - - - - diff --git a/src/Fallout.Components/Fallout.Components.csproj b/src/Fallout.Components/Fallout.Components.csproj index eae6b2096..09b58e4b8 100644 --- a/src/Fallout.Components/Fallout.Components.csproj +++ b/src/Fallout.Components/Fallout.Components.csproj @@ -6,7 +6,10 @@ + + + diff --git a/src/Fallout.Components/ICreateGitHubRelease.cs b/src/Fallout.Components/ICreateGitHubRelease.cs index f730d0854..dd240bd25 100644 --- a/src/Fallout.Components/ICreateGitHubRelease.cs +++ b/src/Fallout.Components/ICreateGitHubRelease.cs @@ -6,6 +6,7 @@ using Fallout.Common; using Fallout.Common.ChangeLog; using Fallout.Common.CI.GitHubActions; +using Fallout.Common.Git; using Fallout.Common.IO; using Fallout.Common.Tools.GitHub; using Fallout.Common.Utilities; diff --git a/src/Fallout.Common/Tools/Docker/Docker.Generated.cs b/src/Tools/Fallout.Application.Tools.Containers/Docker/Docker.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Docker/Docker.Generated.cs rename to src/Tools/Fallout.Application.Tools.Containers/Docker/Docker.Generated.cs diff --git a/src/Fallout.Common/Tools/Docker/Docker.json b/src/Tools/Fallout.Application.Tools.Containers/Docker/Docker.json similarity index 100% rename from src/Fallout.Common/Tools/Docker/Docker.json rename to src/Tools/Fallout.Application.Tools.Containers/Docker/Docker.json diff --git a/src/Fallout.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs b/src/Tools/Fallout.Application.Tools.Containers/Docker/DockerTargetDefinitionExtensions.cs similarity index 100% rename from src/Fallout.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs rename to src/Tools/Fallout.Application.Tools.Containers/Docker/DockerTargetDefinitionExtensions.cs diff --git a/src/Fallout.Common/Tools/Docker/DockerTasks.cs b/src/Tools/Fallout.Application.Tools.Containers/Docker/DockerTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Docker/DockerTasks.cs rename to src/Tools/Fallout.Application.Tools.Containers/Docker/DockerTasks.cs diff --git a/src/Tools/Fallout.Application.Tools.Containers/Fallout.Application.Tools.Containers.csproj b/src/Tools/Fallout.Application.Tools.Containers/Fallout.Application.Tools.Containers.csproj new file mode 100644 index 000000000..286bc6526 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Containers/Fallout.Application.Tools.Containers.csproj @@ -0,0 +1,14 @@ + + + + net10.0 + Container/orchestration tool wrappers for Fallout — Docker, Helm, Kubernetes, Pulumi. Application layer (Fallout.Application.Tools.*). + + + + + + + + + diff --git a/src/Fallout.Common/Tools/Helm/Helm.Generated.cs b/src/Tools/Fallout.Application.Tools.Containers/Helm/Helm.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Helm/Helm.Generated.cs rename to src/Tools/Fallout.Application.Tools.Containers/Helm/Helm.Generated.cs diff --git a/src/Fallout.Common/Tools/Helm/Helm.json b/src/Tools/Fallout.Application.Tools.Containers/Helm/Helm.json similarity index 100% rename from src/Fallout.Common/Tools/Helm/Helm.json rename to src/Tools/Fallout.Application.Tools.Containers/Helm/Helm.json diff --git a/src/Fallout.Common/Tools/Kubernetes/Kubernetes.Generated.cs b/src/Tools/Fallout.Application.Tools.Containers/Kubernetes/Kubernetes.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Kubernetes/Kubernetes.Generated.cs rename to src/Tools/Fallout.Application.Tools.Containers/Kubernetes/Kubernetes.Generated.cs diff --git a/src/Fallout.Common/Tools/Kubernetes/Kubernetes.json b/src/Tools/Fallout.Application.Tools.Containers/Kubernetes/Kubernetes.json similarity index 100% rename from src/Fallout.Common/Tools/Kubernetes/Kubernetes.json rename to src/Tools/Fallout.Application.Tools.Containers/Kubernetes/Kubernetes.json diff --git a/src/Fallout.Common/Tools/Pulumi/Pulumi.Generated.cs b/src/Tools/Fallout.Application.Tools.Containers/Pulumi/Pulumi.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Pulumi/Pulumi.Generated.cs rename to src/Tools/Fallout.Application.Tools.Containers/Pulumi/Pulumi.Generated.cs diff --git a/src/Fallout.Common/Tools/Pulumi/Pulumi.json b/src/Tools/Fallout.Application.Tools.Containers/Pulumi/Pulumi.json similarity index 100% rename from src/Fallout.Common/Tools/Pulumi/Pulumi.json rename to src/Tools/Fallout.Application.Tools.Containers/Pulumi/Pulumi.json diff --git a/src/Fallout.Common/Tools/Pulumi/PulumiTasks.cs b/src/Tools/Fallout.Application.Tools.Containers/Pulumi/PulumiTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Pulumi/PulumiTasks.cs rename to src/Tools/Fallout.Application.Tools.Containers/Pulumi/PulumiTasks.cs diff --git a/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/CodeMetrics/CodeMetrics.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/CodeMetrics/CodeMetrics.Generated.cs diff --git a/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.json b/src/Tools/Fallout.Application.Tools.Coverage/CodeMetrics/CodeMetrics.json similarity index 100% rename from src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.json rename to src/Tools/Fallout.Application.Tools.Coverage/CodeMetrics/CodeMetrics.json diff --git a/src/Fallout.Common/Tools/Codecov/Codecov.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/Codecov/Codecov.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Codecov/Codecov.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/Codecov/Codecov.Generated.cs diff --git a/src/Fallout.Common/Tools/Codecov/Codecov.json b/src/Tools/Fallout.Application.Tools.Coverage/Codecov/Codecov.json similarity index 100% rename from src/Fallout.Common/Tools/Codecov/Codecov.json rename to src/Tools/Fallout.Application.Tools.Coverage/Codecov/Codecov.json diff --git a/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs b/src/Tools/Fallout.Application.Tools.Coverage/Codecov/CodecovTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Codecov/CodecovTasks.cs rename to src/Tools/Fallout.Application.Tools.Coverage/Codecov/CodecovTasks.cs diff --git a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/CoverallsNet/CoverallsNet.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/CoverallsNet/CoverallsNet.Generated.cs diff --git a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.json b/src/Tools/Fallout.Application.Tools.Coverage/CoverallsNet/CoverallsNet.json similarity index 100% rename from src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.json rename to src/Tools/Fallout.Application.Tools.Coverage/CoverallsNet/CoverallsNet.json diff --git a/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/Coverlet/Coverlet.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/Coverlet/Coverlet.Generated.cs diff --git a/src/Fallout.Common/Tools/Coverlet/Coverlet.json b/src/Tools/Fallout.Application.Tools.Coverage/Coverlet/Coverlet.json similarity index 100% rename from src/Fallout.Common/Tools/Coverlet/Coverlet.json rename to src/Tools/Fallout.Application.Tools.Coverage/Coverlet/Coverlet.json diff --git a/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.Coverage/Coverlet/CoverletSettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.Coverage/Coverlet/CoverletSettingsExtensions.cs diff --git a/src/Fallout.Common/Tools/DotCover/DotCover.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCover.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/DotCover/DotCover.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCover.Generated.cs diff --git a/src/Fallout.Common/Tools/DotCover/DotCover.json b/src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCover.json similarity index 100% rename from src/Fallout.Common/Tools/DotCover/DotCover.json rename to src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCover.json diff --git a/src/Fallout.Common/Tools/DotCover/DotCoverTasks.cs b/src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCoverTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/DotCover/DotCoverTasks.cs rename to src/Tools/Fallout.Application.Tools.Coverage/DotCover/DotCoverTasks.cs diff --git a/src/Fallout.Common/Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs b/src/Tools/Fallout.Application.Tools.Coverage/DotCover/TeamCitySetDotCoverHomePathAttribute.cs similarity index 100% rename from src/Fallout.Common/Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs rename to src/Tools/Fallout.Application.Tools.Coverage/DotCover/TeamCitySetDotCoverHomePathAttribute.cs diff --git a/src/Tools/Fallout.Application.Tools.Coverage/Fallout.Application.Tools.Coverage.csproj b/src/Tools/Fallout.Application.Tools.Coverage/Fallout.Application.Tools.Coverage.csproj new file mode 100644 index 000000000..10e76e3dc --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.Coverage/Fallout.Application.Tools.Coverage.csproj @@ -0,0 +1,14 @@ + + + + net10.0 + Code-coverage/quality tool wrappers for Fallout — Coverlet, OpenCover, dotCover, ReportGenerator, Codecov, Coveralls.net, CodeMetrics, SonarScanner. Application layer (Fallout.Application.Tools.*). + + + + + + + + + diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCover.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCover.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/OpenCover/OpenCover.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCover.Generated.cs diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCover.json b/src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCover.json similarity index 100% rename from src/Fallout.Common/Tools/OpenCover/OpenCover.json rename to src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCover.json diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCoverTasks.cs b/src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCoverTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/OpenCover/OpenCoverTasks.cs rename to src/Tools/Fallout.Application.Tools.Coverage/OpenCover/OpenCoverTasks.cs diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGenerator.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGenerator.Generated.cs diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.json b/src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGenerator.json similarity index 100% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.json rename to src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGenerator.json diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGeneratorTasks.cs b/src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGeneratorTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGeneratorTasks.cs rename to src/Tools/Fallout.Application.Tools.Coverage/ReportGenerator/ReportGeneratorTasks.cs diff --git a/src/Fallout.Common/Tools/SonarScanner/SonarScanner.Generated.cs b/src/Tools/Fallout.Application.Tools.Coverage/SonarScanner/SonarScanner.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/SonarScanner/SonarScanner.Generated.cs rename to src/Tools/Fallout.Application.Tools.Coverage/SonarScanner/SonarScanner.Generated.cs diff --git a/src/Fallout.Common/Tools/SonarScanner/SonarScanner.json b/src/Tools/Fallout.Application.Tools.Coverage/SonarScanner/SonarScanner.json similarity index 100% rename from src/Fallout.Common/Tools/SonarScanner/SonarScanner.json rename to src/Tools/Fallout.Application.Tools.Coverage/SonarScanner/SonarScanner.json diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlags.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlags.Generated.cs diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlags.json b/src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlags.json similarity index 100% rename from src/Fallout.Common/Tools/CorFlags/CorFlags.json rename to src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlags.json diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs b/src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlagsSettings.cs similarity index 100% rename from src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs rename to src/Tools/Fallout.Application.Tools.DotNet/CorFlags/CorFlagsSettings.cs diff --git a/src/Fallout.Common/Tools/DotNet/DotNet.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNet.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/DotNet/DotNet.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNet.Generated.cs diff --git a/src/Fallout.Common/Tools/DotNet/DotNet.json b/src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNet.json similarity index 100% rename from src/Fallout.Common/Tools/DotNet/DotNet.json rename to src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNet.json diff --git a/src/Fallout.Common/Tools/DotNet/DotNetRuntimeIdentifier.cs b/src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNetRuntimeIdentifier.cs similarity index 100% rename from src/Fallout.Common/Tools/DotNet/DotNetRuntimeIdentifier.cs rename to src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNetRuntimeIdentifier.cs diff --git a/src/Fallout.Common/Tools/DotNet/DotNetTasks.cs b/src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNetTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/DotNet/DotNetTasks.cs rename to src/Tools/Fallout.Application.Tools.DotNet/DotNet/DotNetTasks.cs diff --git a/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.DotNet/DotNetBuildSettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.DotNet/DotNetBuildSettingsExtensions.cs diff --git a/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.DotNet/DotNetTestSettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.DotNet/DotNetTestSettingsExtensions.cs diff --git a/src/Fallout.Common/Tools/EntityFramework/EntityFramework.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/EntityFramework/EntityFramework.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/EntityFramework/EntityFramework.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/EntityFramework/EntityFramework.Generated.cs diff --git a/src/Fallout.Common/Tools/EntityFramework/EntityFramework.json b/src/Tools/Fallout.Application.Tools.DotNet/EntityFramework/EntityFramework.json similarity index 100% rename from src/Fallout.Common/Tools/EntityFramework/EntityFramework.json rename to src/Tools/Fallout.Application.Tools.DotNet/EntityFramework/EntityFramework.json diff --git a/src/Tools/Fallout.Application.Tools.DotNet/Fallout.Application.Tools.DotNet.csproj b/src/Tools/Fallout.Application.Tools.DotNet/Fallout.Application.Tools.DotNet.csproj new file mode 100644 index 000000000..ea6e33f47 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.DotNet/Fallout.Application.Tools.DotNet.csproj @@ -0,0 +1,13 @@ + + + + net10.0 + .NET SDK tool wrappers for Fallout — dotnet, MSBuild, NuGet, Paket, EntityFramework, NSwag, ILRepack, CorFlags, VSWhere, MauiCheck, WebConfigTransformRunner. Application layer (Fallout.Application.Tools.*). + + + + + + + + diff --git a/src/Fallout.Common/Tools/ILRepack/ILRepack.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/ILRepack/ILRepack.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/ILRepack/ILRepack.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/ILRepack/ILRepack.Generated.cs diff --git a/src/Fallout.Common/Tools/ILRepack/ILRepack.json b/src/Tools/Fallout.Application.Tools.DotNet/ILRepack/ILRepack.json similarity index 100% rename from src/Fallout.Common/Tools/ILRepack/ILRepack.json rename to src/Tools/Fallout.Application.Tools.DotNet/ILRepack/ILRepack.json diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuild.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuild.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuild.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuild.Generated.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuild.json b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuild.json similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuild.json rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuild.json diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildPlatform.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildPlatform.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildPlatform.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildPlatform.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildProject.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildProject.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildProject.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildProject.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildSettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildSettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildSettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildSettingsExtensions.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildTasks.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildTasks.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildTasks.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildToolPathResolver.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildToolPathResolver.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildToolPathResolver.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildToolPathResolver.cs diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildVersion.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildVersion.cs similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuildVersion.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuild/MSBuildVersion.cs diff --git a/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs b/src/Tools/Fallout.Application.Tools.DotNet/MSBuildSettingsExtensions.cs similarity index 100% rename from src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MSBuildSettingsExtensions.cs diff --git a/src/Fallout.Common/Tools/MauiCheck/MauiCheck.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/MauiCheck/MauiCheck.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/MauiCheck/MauiCheck.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/MauiCheck/MauiCheck.Generated.cs diff --git a/src/Fallout.Common/Tools/MauiCheck/MauiCheck.json b/src/Tools/Fallout.Application.Tools.DotNet/MauiCheck/MauiCheck.json similarity index 100% rename from src/Fallout.Common/Tools/MauiCheck/MauiCheck.json rename to src/Tools/Fallout.Application.Tools.DotNet/MauiCheck/MauiCheck.json diff --git a/src/Fallout.Common/Tools/NSwag/NSwag.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/NSwag/NSwag.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/NSwag/NSwag.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/NSwag/NSwag.Generated.cs diff --git a/src/Fallout.Common/Tools/NSwag/NSwag.json b/src/Tools/Fallout.Application.Tools.DotNet/NSwag/NSwag.json similarity index 100% rename from src/Fallout.Common/Tools/NSwag/NSwag.json rename to src/Tools/Fallout.Application.Tools.DotNet/NSwag/NSwag.json diff --git a/src/Fallout.Common/Tools/NuGet/NuGet.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/NuGet/NuGet.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/NuGet/NuGet.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/NuGet/NuGet.Generated.cs diff --git a/src/Fallout.Common/Tools/NuGet/NuGet.json b/src/Tools/Fallout.Application.Tools.DotNet/NuGet/NuGet.json similarity index 100% rename from src/Fallout.Common/Tools/NuGet/NuGet.json rename to src/Tools/Fallout.Application.Tools.DotNet/NuGet/NuGet.json diff --git a/src/Fallout.Common/Tools/Paket/Paket.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/Paket/Paket.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Paket/Paket.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/Paket/Paket.Generated.cs diff --git a/src/Fallout.Common/Tools/Paket/Paket.json b/src/Tools/Fallout.Application.Tools.DotNet/Paket/Paket.json similarity index 100% rename from src/Fallout.Common/Tools/Paket/Paket.json rename to src/Tools/Fallout.Application.Tools.DotNet/Paket/Paket.json diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhere.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhere.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/VSWhere/VSWhere.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhere.Generated.cs diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhere.json b/src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhere.json similarity index 100% rename from src/Fallout.Common/Tools/VSWhere/VSWhere.json rename to src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhere.json diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhereTasks.cs b/src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhereTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/VSWhere/VSWhereTasks.cs rename to src/Tools/Fallout.Application.Tools.DotNet/VSWhere/VSWhereTasks.cs diff --git a/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs b/src/Tools/Fallout.Application.Tools.DotNet/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs rename to src/Tools/Fallout.Application.Tools.DotNet/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs diff --git a/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.json b/src/Tools/Fallout.Application.Tools.DotNet/WebConfigTransformRunner/WebConfigTransformRunner.json similarity index 100% rename from src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.json rename to src/Tools/Fallout.Application.Tools.DotNet/WebConfigTransformRunner/WebConfigTransformRunner.json diff --git a/src/Tools/Fallout.Application.Tools.VersionControl/Fallout.Application.Tools.VersionControl.csproj b/src/Tools/Fallout.Application.Tools.VersionControl/Fallout.Application.Tools.VersionControl.csproj new file mode 100644 index 000000000..70187ff81 --- /dev/null +++ b/src/Tools/Fallout.Application.Tools.VersionControl/Fallout.Application.Tools.VersionControl.csproj @@ -0,0 +1,17 @@ + + + + net10.0 + Version-control tool wrappers for Fallout — Git, GitHub (gh/Octokit client), GitLink, GitReleaseManager. Application layer (Fallout.Application.Tools.*). + + + + + + + + + + + + diff --git a/src/Fallout.Common/Tools/Git/Git.Generated.cs b/src/Tools/Fallout.Application.Tools.VersionControl/Git/Git.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/Git/Git.Generated.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/Git/Git.Generated.cs diff --git a/src/Fallout.Common/Tools/Git/Git.json b/src/Tools/Fallout.Application.Tools.VersionControl/Git/Git.json similarity index 100% rename from src/Fallout.Common/Tools/Git/Git.json rename to src/Tools/Fallout.Application.Tools.VersionControl/Git/Git.json diff --git a/src/Fallout.Common/Tools/Git/GitTasks.cs b/src/Tools/Fallout.Application.Tools.VersionControl/Git/GitTasks.cs similarity index 100% rename from src/Fallout.Common/Tools/Git/GitTasks.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/Git/GitTasks.cs diff --git a/src/Fallout.Common/Tools/GitHub/GitHubTasks.cs b/src/Tools/Fallout.Application.Tools.VersionControl/GitHub/GitHubTasks.cs similarity index 52% rename from src/Fallout.Common/Tools/GitHub/GitHubTasks.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/GitHub/GitHubTasks.cs index 1d1abc282..1ed542172 100644 --- a/src/Fallout.Common/Tools/GitHub/GitHubTasks.cs +++ b/src/Tools/Fallout.Application.Tools.VersionControl/GitHub/GitHubTasks.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Threading.Tasks; using Fallout.Common.Git; @@ -10,13 +9,6 @@ namespace Fallout.Common.Tools.GitHub; -public enum GitHubItemType -{ - Automatic, - File, - Directory -} - public static class GitHubTasks { public static GitHubClient GitHubClient = new(new ProductHeaderValue(nameof(FalloutBuild))); @@ -125,103 +117,4 @@ await GitHubClient.Issue.Milestone.Update( milestone.Number, new MilestoneUpdate { State = ItemState.Closed }); } - - public static bool IsGitHubRepository(this GitRepository repository) - { - return repository?.Endpoint?.EqualsOrdinalIgnoreCase("github.com") ?? false; - } - - public static string GetGitHubOwner(this GitRepository repository) - { - Assert.True(repository.IsGitHubRepository()); - return repository.Identifier.Split('/')[0]; - } - - public static string GetGitHubName(this GitRepository repository) - { - Assert.True(repository.IsGitHubRepository()); - return repository.Identifier.Split('/')[1]; - } - - public static string GetGitHubCompareCommitsUrl(this GitRepository repository, string startCommitSha, string endCommitSha) - { - Assert.True(repository.IsGitHubRepository()); - return $"https://github.com/{repository.Identifier}/compare/{endCommitSha}^...{startCommitSha}"; - } - - public static string GetGitHubCompareTagToHeadUrl(this GitRepository repository, string tag) - { - Assert.True(repository.IsGitHubRepository()); - return $"https://github.com/{repository.Identifier}/compare/{tag}...HEAD"; - } - - public static string GetGitHubCompareTagsUrl(this GitRepository repository, string startTag, string endTag) - { - Assert.True(repository.IsGitHubRepository()); - return $"https://github.com/{repository.Identifier}/compare/{endTag}...{startTag}"; - } - - public static string GetGitHubCommitUrl(this GitRepository repository, string commitSha) - { - Assert.True(repository.IsGitHubRepository()); - return $"https://github.com/{repository.Identifier}/commit/{commitSha}"; - } - - /// Url in the form of https://raw.githubusercontent.com/{identifier}/{branch}/{file}. - public static string GetGitHubDownloadUrl(this GitRepository repository, string file, string branch = null) - { - Assert.True(repository.IsGitHubRepository()); - - branch ??= repository.Branch.NotNull("repository.Branch != null"); - var relativePath = GetRepositoryRelativePath(file, repository); - return $"https://raw.githubusercontent.com/{repository.Identifier}/{branch}/{relativePath}"; - } - - /// - /// Url in the form of https://github.com/{identifier}/tree/{branch}/directory or - /// https://github.com/{identifier}/blob/{branch}/file depending on the item type. - /// - public static string GetGitHubBrowseUrl( - this GitRepository repository, - string path = null, - string branch = null, - GitHubItemType itemType = GitHubItemType.Automatic) - { - Assert.True(repository.IsGitHubRepository()); - - branch ??= repository.Branch.NotNull(); - var relativePath = GetRepositoryRelativePath(path, repository); - var method = GetMethod(relativePath, itemType, repository); - Assert.True(path == null || method != null, "Could not determine item type"); - - return $"https://github.com/{repository.Identifier}/{method}/{branch}/{relativePath}".TrimEnd("/"); - } - - private static string GetMethod(string relativePath, GitHubItemType itemType, GitRepository repository) - { - var absolutePath = repository.LocalDirectory != null && relativePath != null - ? NormalizePath(Path.Combine(repository.LocalDirectory, relativePath)) - : null; - - if (itemType == GitHubItemType.Directory || Directory.Exists(absolutePath) || relativePath == null) - return "tree"; - - if (itemType == GitHubItemType.File || File.Exists(absolutePath)) - return "blob"; - - return null; - } - - private static string GetRepositoryRelativePath(string path, GitRepository repository) - { - if (path == null) - return null; - - if (!Path.IsPathRooted(path)) - return path; - - var localDirectory = repository.LocalDirectory.NotNull(); - Assert.True(IsDescendantPath(localDirectory, path), $"Path {path.SingleQuote()} must be descendant of {localDirectory:s}"); - return GetRelativePath(localDirectory, path).Replace(oldChar: '\\', newChar: '/'); - } } diff --git a/src/Fallout.Common/Tools/GitLink/GitLink.Generated.cs b/src/Tools/Fallout.Application.Tools.VersionControl/GitLink/GitLink.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/GitLink/GitLink.Generated.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/GitLink/GitLink.Generated.cs diff --git a/src/Fallout.Common/Tools/GitLink/GitLink.json b/src/Tools/Fallout.Application.Tools.VersionControl/GitLink/GitLink.json similarity index 100% rename from src/Fallout.Common/Tools/GitLink/GitLink.json rename to src/Tools/Fallout.Application.Tools.VersionControl/GitLink/GitLink.json diff --git a/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs b/src/Tools/Fallout.Application.Tools.VersionControl/GitReleaseManager/GitReleaseManager.Generated.cs similarity index 100% rename from src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/GitReleaseManager/GitReleaseManager.Generated.cs diff --git a/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.json b/src/Tools/Fallout.Application.Tools.VersionControl/GitReleaseManager/GitReleaseManager.json similarity index 100% rename from src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.json rename to src/Tools/Fallout.Application.Tools.VersionControl/GitReleaseManager/GitReleaseManager.json diff --git a/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs b/src/Tools/Fallout.Application.Tools.VersionControl/LatestGitHubReleaseAttribute.cs similarity index 100% rename from src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs rename to src/Tools/Fallout.Application.Tools.VersionControl/LatestGitHubReleaseAttribute.cs diff --git a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj index 3c9defa66..12ed70d79 100644 --- a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj +++ b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj @@ -52,6 +52,9 @@ + + + @@ -61,6 +64,7 @@ + diff --git a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs index d012040ec..999e4bcad 100644 --- a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs +++ b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs @@ -49,6 +49,10 @@ internal static class FalloutArchitecture public const string ToolsShell = "Fallout.Application.Tools.Shell"; public const string ToolsGaming = "Fallout.Application.Tools.Gaming"; public const string ToolsDocumentation = "Fallout.Application.Tools.Documentation"; + public const string ToolsDotNet = "Fallout.Application.Tools.DotNet"; + public const string ToolsCoverage = "Fallout.Application.Tools.Coverage"; + public const string ToolsContainers = "Fallout.Application.Tools.Containers"; + public const string ToolsVersionControl = "Fallout.Application.Tools.VersionControl"; // Transition shims. public const string NukeCommon = "Nuke.Common"; diff --git a/tests/Fallout.Architecture.Specs/KnownViolations.cs b/tests/Fallout.Architecture.Specs/KnownViolations.cs index fe3e39904..8fe54c112 100644 --- a/tests/Fallout.Architecture.Specs/KnownViolations.cs +++ b/tests/Fallout.Architecture.Specs/KnownViolations.cs @@ -101,6 +101,8 @@ internal static class KnownViolations "Fallout.Common.Execution.VSCode", "Fallout.Common.Execution.VisualStudio", "Fallout.Common.FalloutBuild", + "Fallout.Common.Git.GitHubItemType", + "Fallout.Common.Git.GitHubUrlExtensions", "Fallout.Common.Git.GitProtocol", "Fallout.Common.Git.GitRepository", "Fallout.Common.Git.GitRepositoryExtensions", diff --git a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs index e560a7860..ececf1b07 100644 --- a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs +++ b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs @@ -63,6 +63,10 @@ public void Tooling_contract_leaf_is_a_foundation(string leaf) => [InlineData(Arch.ToolsShell)] [InlineData(Arch.ToolsGaming)] [InlineData(Arch.ToolsDocumentation)] + [InlineData(Arch.ToolsDotNet)] + [InlineData(Arch.ToolsCoverage)] + [InlineData(Arch.ToolsContainers)] + [InlineData(Arch.ToolsVersionControl)] public void Tool_family_does_not_depend_on_upper_layers(string family) => // Tool families legitimately reach UP into Fallout.Build today — their value-injection // attributes derive from ValueInjectionAttributeBase, which still lives in Fallout.Build. diff --git a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj index 0642b3a09..22e2a97e8 100644 --- a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj +++ b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj @@ -6,8 +6,12 @@ + + + +