diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index df15df355..af099f603 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -18,6 +18,17 @@ [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")] +[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")] [assembly: InternalsVisibleTo("ReSharper.Nuke")] 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 d6058e85d..75b2cf2e3 100644 --- a/fallout.slnx +++ b/fallout.slnx @@ -30,6 +30,20 @@ + + + + + + + + + + + + + + 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 996a07f13..876045491 100644 --- a/src/Fallout.Cli/Fallout.Cli.csproj +++ b/src/Fallout.Cli/Fallout.Cli.csproj @@ -14,6 +14,10 @@ + + + + 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 7b70d2480..09b58e4b8 100644 --- a/src/Fallout.Components/Fallout.Components.csproj +++ b/src/Fallout.Components/Fallout.Components.csproj @@ -6,6 +6,11 @@ + + + + + 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/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/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/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/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.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/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/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.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/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 f554c9160..12ed70d79 100644 --- a/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj +++ b/tests/Fallout.Architecture.Specs/Fallout.Architecture.Specs.csproj @@ -49,6 +49,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs index 773d7529a..999e4bcad 100644 --- a/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs +++ b/tests/Fallout.Architecture.Specs/FalloutArchitecture.cs @@ -36,6 +36,24 @@ 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"; + 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"; + 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"; public const string NukeBuild = "Nuke.Build"; 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 9e1ccd4e8..ececf1b07 100644 --- a/tests/Fallout.Architecture.Specs/LayeringSpecs.cs +++ b/tests/Fallout.Architecture.Specs/LayeringSpecs.cs @@ -52,6 +52,34 @@ 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)] + [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)] + [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. + // 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.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] public void Tooling_does_not_depend_on_upper_layers() => Ratchet.Enforce( 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 0df502072..22e2a97e8 100644 --- a/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj +++ b/tests/Fallout.Common.Specs/Fallout.Common.Specs.csproj @@ -6,6 +6,13 @@ + + + + + + +