diff --git a/.fallout/build.schema.json b/.fallout/build.schema.json index 47c6a4f95..b91c1e655 100644 --- a/.fallout/build.schema.json +++ b/.fallout/build.schema.json @@ -148,6 +148,16 @@ "type": "string", "default": "Secrets must be entered via 'nuke :secrets [profile]'" }, + "NuGetSource": { + "type": "string" + }, + "PublishTo": { + "type": "array", + "description": "Publish only to these named targets (default: all configured PublishTargets)", + "items": { + "type": "string" + } + }, "Solution": { "type": "string", "description": "Path to a solution file that is automatically loaded" diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index c5e26e6d6..106705c2b 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -1,22 +1,27 @@ using System.Runtime.CompilerServices; -[assembly: InternalsVisibleTo("Fallout.Build")] +[assembly: InternalsVisibleTo("Fallout.Application")] [assembly: InternalsVisibleTo("Fallout.Build.Shared")] -[assembly: InternalsVisibleTo("Fallout.Build.Tests")] -[assembly: InternalsVisibleTo("Fallout.Common")] -[assembly: InternalsVisibleTo("Fallout.Common.Tests")] +[assembly: InternalsVisibleTo("Fallout.Application.Tests")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.CI")] +[assembly: InternalsVisibleTo("Fallout.Application.Tools.Tests")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.CI.Tests")] [assembly: InternalsVisibleTo("Fallout.Cli")] [assembly: InternalsVisibleTo("Fallout.Cli.Tests")] -[assembly: InternalsVisibleTo("Fallout.ProjectModel.Tests")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.ProjectModel.Tests")] [assembly: InternalsVisibleTo("Fallout.SourceGenerators")] -[assembly: InternalsVisibleTo("Fallout.Solution")] -[assembly: InternalsVisibleTo("Fallout.Solution.Tests")] +[assembly: InternalsVisibleTo("Fallout.Application.Solutions")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.Solutions")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.Solutions.Tests")] [assembly: InternalsVisibleTo("Fallout.Persistence.Solution")] [assembly: InternalsVisibleTo("Fallout.Persistence.Solution.Tests")] -[assembly: InternalsVisibleTo("Fallout.Tooling")] -[assembly: InternalsVisibleTo("Fallout.Tooling.Tests")] -[assembly: InternalsVisibleTo("Fallout.Utilities.IO.Globbing")] -[assembly: InternalsVisibleTo("Fallout.Utilities.Tests")] +[assembly: InternalsVisibleTo("Fallout.Application.Tooling")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.Tooling")] +[assembly: InternalsVisibleTo("Fallout.Application.Tooling.Tests")] +[assembly: InternalsVisibleTo("Fallout.Infrastructure.Tooling.Tests")] +[assembly: InternalsVisibleTo("Fallout.Kernel.IO.Globbing")] +[assembly: InternalsVisibleTo("Fallout.Kernel.Tests")] // External extensions — kept as Nuke.* until those projects rebrand independently. [assembly: InternalsVisibleTo("Nuke.VisualStudio")] diff --git a/CHANGELOG.md b/CHANGELOG.md index 49a482d1a..a5d80e327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Breaking changes +- **Onion layering — namespace realignment begun; `Fallout.Core` → `Fallout.Domain`** ([ADR-0006](docs/adr/0006-onion-layering-and-namespace-realignment.md)). First ring of a project-wide realignment to explicit onion layers (`Fallout.Domain` / `Fallout.Application` / `Fallout.Infrastructure`, `Fallout.Cli` composition root) with `namespace = project = layer`, dissolving the `Fallout.Common.*` catch-all. This entry covers **step 1 (the Domain ring)**; the Application/Infrastructure/tooling-port rings land on `experimental` as separate PRs (any that miss the 2026 cut roll to 2027). + - **Namespaces**: `Fallout.Core.Planning` → `Fallout.Domain.Planning`; `ITargetModel` and `ExecutionStatus` move out of `Fallout.Common.Execution` → `Fallout.Domain.Execution`. **Package/assembly**: `Fallout.Core` → `Fallout.Domain`. Replace the corresponding `using` directives and any `PackageReference`/`ProjectReference`. + - **Migration / shim**: the `Nuke.*` transition shims silently stop re-exporting the two moved types (the generator only mirrors the `Fallout.Common.*` prefix). A fresh migration/shim strategy is designed once the realignment completes (ADR-0006 defers it deliberately); native `Fallout.*` consumers rewrite the two `using`s above. + - **Step 2 (the Application ring)**: the core API `Fallout.Build` declared under `Fallout.Common.*` — `FalloutBuild`, `Target`, `[Parameter]` & attributes, `Host`, the execution engine, value injection, and the CI ports — moves to **`Fallout.Application.*`**. Native consumers rewrite `using Fallout.Common;` → `using Fallout.Application;` (and the `Fallout.Common.Execution`/`.CI`/`.ValueInjection` sub-namespaces likewise). Performed by a semantic rewriter (`tools/OnionRewriter`). The `Nuke.*` shim surface that mirrored these (`Nuke.Common.Target`, `…Parameter`, …) lapses for now — `Nuke.Consumer` and `Nuke.Common.Shim.Tests` are temporarily out of the solution until the migration phase. The `Fallout.Build` **assembly/project** is renamed to `Fallout.Application` in a later mechanical step (namespaces are already migrated). + - **Step 4a (Application ring — composition components)**: the build-composition interface family (`ICompile`, `IRestore`, `IPack`, `IPublish`, `ITest`, `IHas*`, `Configuration`, …), previously `Fallout.Components`, moves to **`Fallout.Application.Components`** — it composes the tool/CI vocabulary and so belongs in the Application ring. Native consumers rewrite `using Fallout.Components;` → `using Fallout.Application.Components;`. The `Nuke.Components` transition shim is unaffected for consumers: its public `Nuke.Components.*` face is unchanged (the shim generator's source prefix was repointed to the new namespace). The `Fallout.Components` **assembly/project** keeps its filename until the later mechanical rename step. + - **Step 4b (tool vocabulary → Application; executor → Infrastructure)**: the tool wrappers `Fallout.Common.Tools.*` (60+ wrappers) and the tool vocabulary they build on (`ToolTasks`, `ToolOptions`, `Output`, `Configure`, the `IProcess`/`IProcessRunner` ports, requirement/attribute types) move to **`Fallout.Application.Tools.*`** / **`Fallout.Application.Tooling`**. The impure executor that shared the `Fallout.Common.Tooling` namespace — `ProcessTasks`, `SystemProcessRunner`, `Process2`, `ProcessExtensions`, `ToolExecutor`, and the tool/package/version resolvers — moves to **`Fallout.Infrastructure.Tooling`**. Native consumers rewrite `using Fallout.Common.Tools.*;` → `using Fallout.Application.Tools.*;` and `using Fallout.Common.Tooling;` → `using Fallout.Application.Tooling;` (plus `using Fallout.Infrastructure.Tooling;` where they touch the executor directly). The `Nuke.Common.Tools`/`…Tooling` shim aliases lapse (the generator only mirrors the `Fallout.Common.*` prefix), pending the deferred migration/shim redesign. Assembly/project files (`Fallout.Common`, `Fallout.Tooling`) are unchanged; only namespaces moved. + - **Step 4b-follow-up (port inversion + Application-ring fitness gate)**: the impure tool-execution services now sit behind ports in `Fallout.Application.Tooling` — **`IProcessExecutor`**, **`IToolPathResolver`**, **`IToolVersionResolver`**, resolved via the new **`ToolingServices`** locator; Infrastructure registers thin adapters into it through a module initializer. The Application ring (tool wrappers, `ToolTasks`, `ToolResolver`, requirement/version attributes, build orchestration) no longer references `Fallout.Infrastructure.*`. `ProcessExtensions` (pure `IProcess`/`Output` helpers — `AssertWaitForExit`, `StdToJson`, …) was reclassified from Infrastructure back to `Fallout.Application.Tooling`. A NetArchTest fitness test (new `Fallout.Architecture.Tests`) asserts `Fallout.Application.*` ⊥ `Fallout.Infrastructure.*` and guards it. (Catch-all `Fallout.Common.*` code outside the Application ring — e.g. CI host adapters, single-file/path-check attributes — still reaches Infrastructure and is addressed when those namespaces get a ring in step 5.) + - **Step 5a (the `Fallout.Kernel` ring)**: the shared utility/IO layer — pure helpers (collections, string/text, reflection, `Assert`-adjacent guards, crypto, JSON/YAML), the `AbsolutePath`/`RelativePath` value types **and their fluent filesystem operations** (`.ReadAllText`/`.GlobFiles`/`.CreateDirectory`/…), plus HTTP/compression helpers — moves from `Fallout.Common.Utilities*` / `Fallout.Common.IO` to **`Fallout.Kernel`** / **`Fallout.Kernel.IO`** / **`Fallout.Kernel.Collections`** / **`Fallout.Kernel.Net`**, the innermost shared ring that the Domain/Application/Infrastructure rings build on. Native consumers rewrite `using Fallout.Common.Utilities;` → `using Fallout.Kernel;` (and `.Collections`/`.Net`) and `using Fallout.Common.IO;` → `using Fallout.Kernel.IO;`. **Filesystem is treated as a kernel-level capability** (like the BCL `File`/`Directory`): the fluent `AbsolutePath` API is used pervasively across the Application ring, so routing it through ports would be impractical and anti-ergonomic — it stays in Kernel rather than moving to Infrastructure. Pushing the genuinely-external adapters (HTTP/FTP, compression) further out to Infrastructure is deferred for the same reason (they need the same ports decision). The `Fallout.Utilities` assembly/project keeps its filename until the later mechanical rename to `Fallout.Kernel`; a few root-`Fallout.Common` guards (`Assert`, `NotNull`, `EnvironmentInfo`) remain in the dissolving catch-all for now and fold into Kernel later. + - **Step 5b (CI host providers → Infrastructure)**: the concrete CI provider classes (`AppVeyor`, `AzurePipelines`, `TeamCity`, `GitHubActions`, `GitLab`, `TravisCI`, …) and their config generators move from `Fallout.Common.CI.*` to **`Fallout.Infrastructure.CI.*`**. The Application ring reaches the provider-specific capabilities it needs (publish test results/coverage, push artifacts, set/update the build number, read the token, …) through new **ports in `Fallout.Application.CI`** — `IAppVeyor`/`IAzurePipelines`/`ITeamCity`/`IGitHubActions` plus a **`CiHost`** accessor that casts the detected `Host.Instance` to the port (no registration needed — `Host.Instance` is the existing detection seam). Components and version/coverage attributes rewrite `AzurePipelines.Instance?.X` → `CiHost.AzurePipelines?.X`, so the Application ring stays free of `Fallout.Infrastructure.*` (the fitness gate still passes). The two enums the ports expose (`AzurePipelinesTestResultsType`, `AzurePipelinesCodeCoverageToolType`) move to `Fallout.Application.CI` as vocabulary. The `Nuke.Common.CI.*` transition-shim host accessors are repointed to the new Infrastructure namespace. (The generic CI host abstraction — ADR-0005 `IBuildHost`/`IBuildReporter`, [#341] — remains a separate, additive effort.) + - **Step 5c (ProjectModel/Solution → rings)**: the solution model + `[Solution]` injection + `ReadSolution` move to **`Fallout.Application.Solutions`** (a Fallout-owned POCO model with an opaque handle, behind `ISolutionSerializer`/`IProjectEditor` ports + a `SolutionServices` locator); the `.sln`/`.slnx` serializer adapter → **`Fallout.Infrastructure.Solutions`**; the MSBuild project evaluator (`ProjectModelTasks`/`ProjectExtensions`) → **`Fallout.Infrastructure.ProjectModel`**. Also finished the partial straggler moves (Git/ChangeLog → `Fallout.Application.*`; `Assert`/`EnvironmentInfo`/`AsyncHelper`/`ArgumentParser` → `Fallout.Kernel`; Execution + Gitter → Application). + - **Project-file renames + splits + meta-package (the mechanical step the entries above forward-referenced)**: with namespaces settled, the **project files, assemblies, and NuGet package IDs** now match the rings. Pure renames: `Fallout.Build` → **`Fallout.Application`**, `Fallout.Components` → **`Fallout.Application.Components`**, `Fallout.ProjectModel` → **`Fallout.Infrastructure.ProjectModel`**, `Fallout.Utilities*` → **`Fallout.Kernel*`**. Mixed projects split into ring-pure assemblies: `Fallout.Tooling` → **`Fallout.Application.Tooling`** + **`Fallout.Infrastructure.Tooling`**; `Fallout.Solution` → **`Fallout.Application.Solutions`** + **`Fallout.Infrastructure.Solutions`**; the 249-file **`Fallout.Common` catch-all is dissolved** → `Fallout.Application.Tools` (tool wrappers), `Fallout.Infrastructure.CI` (CI adapters), `Fallout.Application`, and `Fallout.Kernel`. **Consumers now reference a new thin `Fallout` meta-package** (successor to `Fallout.Common` — references every ring + carries the MSBuild integration `Fallout.props`/`.targets`, the MSBuildTasks output, and the source-generator analyzer); `dotnet fallout :setup`/`:update` target `Fallout`. **Package-ID migration**: replace `Fallout.Common` → `Fallout`; `Fallout.Build`/`.Components`/`.ProjectModel`/`.Tooling`/`.Solution`/`.Utilities*` → their ring names above. **TFMs**: dropped `net472` from `Fallout.MSBuildTasks` (Fallout is `dotnet build`-only); `Fallout.Domain` → `net10.0`; netstandard2.0 retained only on the Roslyn generators and the ring halves they consume (`Fallout.Application.Tooling`/`.Solutions`, `Fallout.Kernel*`, `Fallout.Build.Shared`); `Fallout.Infrastructure.ProjectModel` keeps `net8.0;net9.0;net10.0` (per-TFM Microsoft.Build SDK matching). The fitness gate now operates on ring-pure assemblies. The build's own `[ModuleInitializer]` force-loader now runs each `Fallout.*` assembly's module constructor (`RuntimeHelpers.RunModuleConstructor`), so the split-out Infrastructure adapters register deterministically. + - **Shim + migration redesign (the deferred `Nuke.*` strategy, now landed)**: a single canonical `Nuke ↔ Fallout` namespace map (`src/Shared/NukeNamespaceMap.cs`) drives both the transition shims (Fallout→Nuke re-exports) and the `fallout-migrate` rewriters (Nuke→Fallout), which the realignment had desynchronised (the migration was emitting dead `Fallout.Common.*` namespaces). **Shim packages collapse from 3 to 2**: `Nuke.Common` (now references the `Fallout` meta-package and re-exports every `Nuke.Common.*` sub-namespace — Tooling/Tools/CI/ProjectModel/Git/IO/Execution/ValueInjection/ChangeLog/Utilities — wherever the source type now lives across the rings) and `Nuke.Components`. **`Nuke.Build` is removed** (it was never a real NUKE consumer package — `NukeBuild` lives in `Nuke.Common`); consumers who referenced it migrate to `Fallout`. **The migration's package rewrite** maps the `Nuke.Common` package → the `Fallout` meta and `Nuke.Components` → `Fallout.Application.Components` (not a dead `Fallout.Common`/`Fallout.Components`). **`dotnet fallout` Cake migration support (`:cakeconvert`/`:cakeclean`) is dropped** entirely. - **Adopted calendar versioning (`YYYY.MINOR.PATCH`) + dual-pace channel model; retired the v11 numbering** ([ADR-0004](docs/adr/0004-calendar-versioning-and-dual-pace-channels.md)). Fallout now ships on calendar versions (`2026.0.0`, `2026.1.0`, …) — mechanically valid SemVer with the major equal to the calendar year. **Breaking changes are batched to the yearly major cut**; mid-year stable releases (`release/YYYY`) are strictly non-breaking. `main` becomes the published **edge** channel (date-stamped prereleases to GitHub Packages); the slow/stable track lives on `release/YYYY`. Opt-in unstable APIs are marked `[Experimental("FALLOUT0xx")]`. - **Migration / impact**: the `11.0.x` packages never shipped a clean stable release (all unlisted), so this strands no stable consumers. The headline content previously slated for "v11" now ships as **`2026.0.0`**. Any tooling pinned to a `[11.0,12.0)`-style range should retarget the `2026.x` line. - **Legacy unaffected**: the `release/v10` line stays on semver `10.x` and continues to receive security/critical fixes — v10 consumers do nothing. diff --git a/build/Build.CI.GitHubActions.cs b/build/Build.CI.GitHubActions.cs index 6a272c419..b6160ba19 100644 --- a/build/Build.CI.GitHubActions.cs +++ b/build/Build.CI.GitHubActions.cs @@ -1,5 +1,5 @@ -using Fallout.Common.CI.GitHubActions; -using Fallout.Components; +using Fallout.Application.Components; +using Fallout.Infrastructure.CI.GitHubActions; // Cross-platform (macOS/Windows) full Test+Pack is gated to RELEASE INTENT // (#318/#326): it runs only on a PR into a production branch (release/YYYY, diff --git a/build/Build.CodeGeneration.cs b/build/Build.CodeGeneration.cs index f8ab28165..99b5e9126 100644 --- a/build/Build.CodeGeneration.cs +++ b/build/Build.CodeGeneration.cs @@ -1,11 +1,12 @@ -using System; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities.Collections; +using System; using static Fallout.CodeGeneration.CodeGenerator; using static Fallout.CodeGeneration.ReferenceUpdater; -using static Fallout.Common.Tools.Git.GitTasks; +using static Fallout.Application.Tools.Git.GitTasks; +using Fallout.Application; +using Fallout.Application.Tools.Git; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; partial class Build { diff --git a/build/Build.Contributors.cs b/build/Build.Contributors.cs index a3910c293..aad2ae16b 100644 --- a/build/Build.Contributors.cs +++ b/build/Build.Contributors.cs @@ -1,10 +1,11 @@ using System.Linq; using System.Text; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.Git.GitTasks; +using static Fallout.Application.Tools.Git.GitTasks; +using Fallout.Application; +using Fallout.Application.Tools.Git; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; partial class Build { diff --git a/build/Build.GlobalSolution.cs b/build/Build.GlobalSolution.cs index 7efdea75f..d59836861 100644 --- a/build/Build.GlobalSolution.cs +++ b/build/Build.GlobalSolution.cs @@ -2,15 +2,16 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; -using Fallout.Utilities.Text.Yaml; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.Git.GitTasks; +using Fallout.Kernel; +using static Fallout.Application.ControlFlow; +using static Fallout.Application.Tools.Git.GitTasks; +using Fallout.Application; +using Fallout.Application.Git; +using Fallout.Application.Tools.Git; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel.Text.Yaml; +using Fallout.Application.Solutions; partial class Build { @@ -20,7 +21,7 @@ partial class Build AbsolutePath ExternalRepositoriesDirectory => RootDirectory / "external"; AbsolutePath ExternalRepositoriesFile => ExternalRepositoriesDirectory / "repositories.yml"; - IEnumerable ExternalSolutions + IEnumerable ExternalSolutions => ExternalRepositories .Select(x => ExternalRepositoriesDirectory / x.GetGitHubName()) .Select(x => x.GlobFiles("*.sln").Single()) diff --git a/build/Build.Licenses.cs b/build/Build.Licenses.cs index 833e45b38..9c6ca2b7f 100644 --- a/build/Build.Licenses.cs +++ b/build/Build.Licenses.cs @@ -1,11 +1,12 @@ -using Fallout.Common; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.IO; -using Fallout.Components; using Serilog; -using static Fallout.Common.IO.HttpTasks; +using static Fallout.Application.IO.HttpTasks; +using Fallout.Application; +using Fallout.Application.Components; +using Fallout.Kernel.IO; +using Fallout.Application.IO; partial class Build { diff --git a/build/Build.PublicApi.cs b/build/Build.PublicApi.cs index c14305a40..6504ae02b 100644 --- a/build/Build.PublicApi.cs +++ b/build/Build.PublicApi.cs @@ -2,10 +2,10 @@ using System.Linq; using System.Reflection; using System.Text; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; partial class Build { diff --git a/build/Build.RunTargetInDockerTest.cs b/build/Build.RunTargetInDockerTest.cs index 2fc40032e..e99232e05 100644 --- a/build/Build.RunTargetInDockerTest.cs +++ b/build/Build.RunTargetInDockerTest.cs @@ -1,8 +1,8 @@ using System; -using Fallout.Common; -using Fallout.Common.Tools.Docker; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application; +using Fallout.Application.Tools.Docker; +using Fallout.Kernel; partial class Build { diff --git a/build/Build.Stargazers.cs b/build/Build.Stargazers.cs index 72d5449ba..bad3eee7c 100644 --- a/build/Build.Stargazers.cs +++ b/build/Build.Stargazers.cs @@ -1,9 +1,9 @@ -using System.Linq; +using System.Linq; using System.Threading.Tasks; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel; partial class Build { diff --git a/build/Build.Terminal.cs b/build/Build.Terminal.cs index 0a6f8e90c..589a7cf17 100644 --- a/build/Build.Terminal.cs +++ b/build/Build.Terminal.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Execution; +using Fallout.Application.Execution; +using Fallout.Application; [DisableDefaultOutput( DefaultOutput.Logo, diff --git a/build/Build.cs b/build/Build.cs index b1ecb3288..7d26211c4 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -2,20 +2,22 @@ using System.Collections.Generic; using System.Linq; using NuGet.Packaging; -using Fallout.Common; -using Fallout.Common.CI; -using Fallout.Common.CI.GitHubActions; -using Fallout.Common.Execution; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; -using Fallout.Components; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.ControlFlow; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Application.Git; +using Fallout.Application.Execution; +using Fallout.Application.Components; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Infrastructure.Tooling; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.GitHubActions; +using Fallout.Application.Solutions; +using Fallout.Infrastructure.ProjectModel; [DotNetVerbosityMapping] [ShutdownDotNetAfterServerBuild] @@ -39,7 +41,7 @@ partial class Build GitRepository GitRepository => From().GitRepository; [Solution(GenerateProjects = true)] readonly Solution Solution; - Fallout.Solutions.Solution IHasSolution.Solution => Solution; + Fallout.Application.Solutions.Solution IHasSolution.Solution => Solution; AbsolutePath OutputDirectory => RootDirectory / "output"; AbsolutePath SourceDirectory => RootDirectory / "source"; @@ -96,12 +98,12 @@ private static int ParseMajor(string informationalVersion) .When(!ScheduledTargets.Contains(((IPublish)this).Publish) && !ScheduledTargets.Contains(Install), _ => _ .ClearProperties()); - IEnumerable<(Fallout.Solutions.Project Project, string Framework)> ICompile.PublishConfigurations => + IEnumerable<(Fallout.Application.Solutions.Project Project, string Framework)> ICompile.PublishConfigurations => from project in new[] { Solution.Fallout_Cli, Solution.Fallout_MSBuildTasks } from framework in project.GetTargetFrameworks() select (project, framework); - IEnumerable ITest.TestProjects => Partition.GetCurrent(Solution.GetAllProjects("*.Tests")); + IEnumerable ITest.TestProjects => Partition.GetCurrent(Solution.GetAllProjects("*.Tests")); [Parameter] public int TestDegreeOfParallelism { get; } = 1; diff --git a/build/_build.csproj b/build/_build.csproj index cee68e3d4..f58cff136 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -1,6 +1,6 @@  - + Exe @@ -66,11 +66,26 @@ - + + + - + + + + + + + + + + + + + diff --git a/docs/adr/0006-onion-layering-and-namespace-realignment.md b/docs/adr/0006-onion-layering-and-namespace-realignment.md new file mode 100644 index 000000000..a5a1c4154 --- /dev/null +++ b/docs/adr/0006-onion-layering-and-namespace-realignment.md @@ -0,0 +1,113 @@ +# ADR-0006 — Onion layering + namespace realignment + +- **Status:** Proposed +- **Date:** 2026-05-31 +- **Deciders:** Fallout maintainers +- **Relates to:** ADR-[0004](0004-calendar-versioning-and-dual-pace-channels.md) (calendar versioning + channels — sets the breaking-change home), ADR-[0005](0005-ci-host-integration-ports-and-adapters.md) (the runtime-host ports the Application layer exposes), [docs/rebrand-plan.md](../rebrand-plan.md) (**amends** its deferral — see below) +- **Spike:** [docs/spikes/0002-onion-domain-ring.md](../spikes/0002-onion-domain-ring.md) + +## Context + +The project + namespace structure is inherited verbatim from NUKE: the rebrand ([#32](https://github.com/ChrisonSimtian/Fallout/issues/32)) did a **strict 1:1 prefix swap** (`Nuke.X` → `Fallout.X`) that deliberately preserved the existing shape. Two pathologies result: + +1. **Namespace ≠ project.** Most projects declare types under `Fallout.Common.*` rather than their own name. The core user-facing API (`FalloutBuild`, `Target`, `[Parameter]`, and the ADR-0005 ports) lives in namespace `Fallout.Common` inside project `Fallout.Build`. `Fallout.Core` declares both `Fallout.Core.Planning` and `Fallout.Common.Execution`. Every `Fallout.Utilities.*` sub-project (except `.Text.Yaml`) declares `Fallout.Common.*`. `Fallout.Tooling` → `Fallout.Common.Tooling`. `Fallout.Solution` (singular) → `Fallout.Solutions` (plural). `Fallout.Tooling.Generator` → `Fallout.CodeGeneration`. + +2. **`Fallout.Common.*` is a horizontal catch-all** contributed by **five** projects (`Build`, `Common`, `Core`, `Utilities`, `SourceGenerators`). It masks a layering that already exists *physically* — the `ProjectReference` graph is clean and acyclic (`Core`/`Utilities` at the bottom → `Build` → `Common` → `Cli` at the root) — but the namespaces lie about it. + +### Why now, and why this amends the rebrand plan + +`docs/rebrand-plan.md` explicitly **defers** "realigning project ↔ namespace" to "a future major version after the shim packages have sunset," citing the type-forwarding bridge as the blocker. This ADR **amends that deferral** on two grounds: + +- **The bridge is not a blocker.** The rebrand-plan deferred this work *because* it assumed a rigid `[TypeForwardedTo]` bridge. The actual machinery is the `TransitionShimGenerator` (`ShimAllPublicTypesUnder(from, to)`), a *prefix-remappable* subclass generator — so restructuring `Fallout.*` doesn't orphan the `Nuke.*` surface in principle. We nonetheless **defer the migration strategy wholesale** (see Decision §"Migration & shim strategy") rather than re-point ring-by-ring; the point here is only that the stated blocker doesn't bind. +- **ADR-0004 gives a clean home.** Namespace realignment is breaking → it lands on `experimental` and is **batched to the next yearly major cut**. The `2026` major has **not cut yet** (no calendar-version GA tag exists; CHANGELOG `[Unreleased] — 2026.0` is still accumulating breaking changes), so this work can ride the **2026** cut and ship this year. Rings that aren't done before `2026.0.0` cuts roll to `2027`. Either way native `Fallout.*` consumers are carried by the deferred migration phase; old `Fallout.*` namespaces are deleted at the cut, not dragged. + +(The rebrand-plan is a transient maintainer-owned doc; this is a deliberate, recorded reversal of one of its deferrals, not a silent contradiction.) + +## Decision + +**Realign the runtime codebase to explicit onion layers, with `namespace = project = layer`.** + +| Layer | Holds | Today (selected) → target | +|---|---|---| +| **`Fallout.Domain.*`** (innermost; zero Fallout deps) | Target graph, planning algorithms, execution status, the read-only build model | `Fallout.Core` (`Fallout.Core.Planning` + `Fallout.Common.Execution`'s `ITargetModel`/`ExecutionStatus`) → `Fallout.Domain` | +| **`Fallout.Application.*`** (orchestration + ports + vocabulary; depends only on Domain) | `FalloutBuild`, `Target`, `[Parameter]` & attributes, execution engine (`BuildManager`/`Executor`/`Planner`), middleware pipeline, value injection, `Host` base; the ports (`IBuildHost`, `IBuildReporter`, `IConfigurationGenerator`, `IBuildServer`, **and a process/tool-execution port**); the **typed tool vocabulary** (`Options`/`ToolOptions` model + the generated wrappers like `DotNetTasks` & settings — pure command builders); and the **`Fallout.Components` recipes** | `Fallout.Build` + the `Fallout.Common*` it declares; `Fallout.Common.Tools.*` (wrappers) + the pure part of `Fallout.Tooling`; `Fallout.Components` → `Fallout.Application.*` | +| **`Fallout.Infrastructure.*`** (I/O adapters behind the ports; depends on Application/Domain) | The adapters that actually touch the outside world: the **process/tool runner** (OS process spawn), filesystem, HTTP, tool-path/package resolvers, **CI host adapters**, config-file writers, project/solution readers | `Fallout.Common.CI.*` → `.Infrastructure.CI.*`; the executor part of `Fallout.Tooling` (`ProcessTasks`/`ToolExecutor`) + `Fallout.Utilities.IO`/`.Net`/`.Compression`/`.Globbing` → `.Infrastructure.*`; `Fallout.ProjectModel`/`Fallout.Solution(s)` → `.Infrastructure.ProjectModel`/`.Solutions` | + +**The tool layer splits along purity** (decided after reviewing `DotNetBuild`'s shape — see ADR-0005's ports pattern applied to the deepest I/O): the **command vocabulary** (`DotNetBuildSettings : ToolOptions` is pure data; `DotNetBuild` just constructs argv) is Application; the **one impure step** — `ProcessTasks.StartProcess` spawning a real OS process (today a *static* call) — becomes an injectable **process/tool-execution port** with the OS adapter in Infrastructure. This is what lets `Fallout.Components` (e.g. `ICompile` calling `DotNetBuild`) live in Application without the inner ring depending on a concrete — and it makes builds unit-testable by faking the runner. There is deliberately **no** generic "abstract build" port: `ICompile` is irreducibly DotNet-specific, so abstracting it would be anemic or a re-spelling of DotNet — the wrong abstraction. The seam is *execution*, not *build semantics*. +| **`Fallout.Cli`** (composition root) | Entry points, host integration | `Fallout.Cli`, `Fallout.MSBuildTasks`, `Fallout.Migrate` — unchanged | + +**Outside the runtime onion** (build-time tooling, kept as-is): `Fallout.SourceGenerators`, `Fallout.Tooling.Generator` (the `Fallout.CodeGeneration` codegen), `Fallout.Migrate.Analyzers`. The vendored `Fallout.Persistence.Solution` keeps its namespace (Microsoft code). + +**Rules:** +1. **`namespace == project == layer`.** No project declares a namespace rooted outside its layer. `Fallout.Common` is **dissolved**. +2. **Onion dependency rule, fitness-enforced.** Domain references no other Fallout assembly; Application references only Domain; Infrastructure references Application/Domain; only the Cli composition root references Infrastructure. One architecture-test per ring, added as each ring lands (extends the ADR-0005 boundary-test pattern). +3. **Breaking → `experimental` → the next yearly major** (ADR-0004). The `2026` major is still unreleased, so rings ride the **2026** cut (`target/2026`) until it closes; anything after rolls to `2027`. A breaking PR targets `experimental` only and carries `target/` + `breaking-change` + a `CHANGELOG.md` entry under that major. +4. **Ring-by-ring migration**, inner to outer — each ring is its own PR on `experimental`. The spike (0002) proves the mechanics on the Domain ring before the larger rings. +5. **Migration/shim strategy is deferred wholesale** — see below. + +### Migration & shim strategy: deferred by design + +The `Nuke.*` transition shims (and any native-`Fallout.*` migration aid) are **explicitly out of scope for the rearchitecture rings.** Rationale: there's no point re-pointing the existing `TransitionShimGenerator` ring-by-ring toward a target that's still moving. Instead — once the final layered shape has settled — we design a **fresh migration/shim strategy that fits whatever we ended up with**, as its own phase and its own ADR. The existing bridge is re-pointable (it's a prefix-remappable subclass generator, not raw `[TypeForwardedTo]`), so this deferral costs us no future optionality; it's a sequencing choice, not a capability loss. + +Consequence during the work: on `experimental`, `Nuke.*` shim parity is **not maintained** while the rings land. That's acceptable — `experimental` is the unstable lane, and the only deadline that matters is the major cut the rings target; the new migration story is built before that cut. `Fallout.Migrate` likewise gets revisited then, not incrementally. + +### Sequence (each step a PR on `experimental`, with its own ring fitness test) + +1. **Domain ring** — extract `Fallout.Domain` (spike [0002](../spikes/0002-onion-domain-ring.md)). Innermost, smallest; proves the move → reference-fixup → fitness loop. +2. **Application ring** — rename `Fallout.Build` → `Fallout.Application` and dissolve the `Fallout.Common` core API into it (the user-facing `FalloutBuild`/`Target`/`[Parameter]` rename — the big one). +3. **Tooling/execution-port spike** — extract the process/tool-execution port; split `Fallout.Tooling` into pure vocabulary (Application) + executor adapter (Infrastructure). Unlocks tool wrappers as Application vocabulary and is a standalone testability win. *(Can run in parallel with step 2; must precede step 4.)* +4. **Tool vocabulary + `Components` → Application** — move the wrappers and the `Fallout.Components` recipes in, now that execution is behind the port. +5. **Infrastructure ring** — CI host adapters, IO/Net/compression/globbing, path/package resolvers, project/solution readers → `Fallout.Infrastructure.*`. + +Migration/shim strategy is redesigned after step 5, before the cut (deferred, above). + +## Judgment calls (flagged for review — defaults chosen, easily changed) + +- **Public API under `.Infrastructure`.** Tool wrappers and CI attributes are consumer-facing yet land under `Fallout.Infrastructure.*` (the hexagonal reading: adapters are infrastructure even when public). Consequence: consumer `using` directives grow (`using Fallout.Infrastructure.Tools.DotNet;`). **Mitigation:** ship a curated set of global usings in the `dotnet fallout` project template so day-to-day build authoring isn't verbose. *Accepted by maintainer; recorded so the ergonomics cost is visible.* +- **`Fallout.Components` → Application (RESOLVED, not an open default).** The mixins call tool wrappers (`ICompile.Compile` → `DotNetBuild`). Rather than exile `Components` to an outer ring, we **invert the dependency**: the tool wrappers become Application *vocabulary* and the one impure step (process spawn) moves behind the process/tool-execution port (see the layer table). `Components` then depends only on Application vocabulary + that port and lives in `Application` cleanly. **Prerequisite:** the tooling/execution-port spike (step 3 of the Sequence) lands before the wrappers + `Components` move. +- **Utilities as Infrastructure vs shared kernel.** IO/Net/compression are genuinely infrastructure. Pure-algorithmic helpers (collections, reflection, string) are more a shared kernel; default is to keep a minimal shared-kernel that Domain may depend on, rather than forcing it through Infrastructure (which would violate the inner ring). To be pinned during the Application/Infrastructure rings. + +## Consequences + +### Positive +- The namespace finally tells the truth about the layer, and the onion dependency rule is enforced by construction (fitness tests), not convention. +- `Fallout.Common` — the catch-all — is gone; no more "five projects, one namespace." +- Sets the stage cleanly for the public plugin SDK (milestone #7): adapters live in a named Infrastructure layer behind the Application-owned ports. + +### Negative +- **Large, breaking, multi-PR.** Touches nearly every file's `namespace`/`using`. Mitigated by ring-by-ring sequencing, re-pointed shims, the migrate codefix, and batching to one yearly major. +- **Consumer churn** for native `Fallout.*` users, and a window on `experimental` where `Nuke.*` shim parity lapses. Both are carried by the deferred migration phase (a fresh strategy + CHANGELOG migration guide), built before the target major cut — not during the rings. + +## Alternatives considered + +- **Concern-aligned names** (`Fallout.Core`/`Build`/`Tooling`/`Tools`/`CI`/`IO`), namespace=project but not layer-labelled. Lower consumer surprise (keeps short names), fits the repo's by-concern convention. **Not chosen** — maintainer wants explicit onion layer names so the architecture is legible from the namespace alone. +- **Keep `Fallout.Common` as a thin facade** re-exporting the layered types. Less churn. **Not chosen** — keeps a name we want gone ("don't drag dead weight"). +- **Minimal — fix only the internal mismatches.** Smallest break. **Not chosen** — leaves the catch-all and doesn't achieve the onion goal. +- **Defer to "after shim sunset" (status quo per rebrand-plan).** **Not chosen** — see "Why now"; the work is wanted this year. + +## Amendments + +- **2026-06-01 — `Fallout.Kernel` + filesystem/external-IO is kernel-level (resolves the "Utilities as Infrastructure vs shared kernel" judgment call above, and amends the layer table's IO/Net/compression/globbing → Infrastructure entry).** During the Infrastructure ring (spike 0003 steps 5a/5d), the open default in *Judgment calls* — "IO/Net/compression are genuinely infrastructure" — was **reversed for the fluent vocabulary**. A new innermost shared ring **`Fallout.Kernel`** (Domain/Application/Infrastructure all depend on it; Domain stays zero-dep otherwise) holds the pure helpers **and** the fluent IO vocabulary: + - **Filesystem is a kernel-level capability** (like the BCL's `File`/`Directory`): `AbsolutePath` + all its fluent ops (`.ReadAllText`/`.GlobFiles`/`.CreateDirectory`/`.ZipTo`/…) stay in Kernel. Rationale: the fluent API is used pervasively across the Application ring; routing it through an `IFileSystem` port would be hundreds of call sites that kill the ergonomics, and placing it in Infrastructure would fail the Application-ring fitness gate. + - **The same reasoning extends to the rest of external-IO *vocabulary* (5d):** the fluent HTTP client (`HttpClient.CreateRequest(...).Send()` extensions over the BCL `HttpClient`), compression (`.ZipTo()`/`.UnZipTo()` — themselves `AbsolutePath` extensions), and glob all stay in Kernel. Every one is consumed by *gated* Application-ring code (tool wrappers, `Components`, version-resolver attributes), so a clean move would break the gate, and they are thin ergonomic layers over BCL capabilities — not genuine external adapters worth a port. `HttpTasks`/`FtpTasks` (download-URL-to-file) are the one coarse "network task" category; kept in Kernel for now, with an optional `IHttpDownload`-style port → Infrastructure left as deferred future work (not required for the gate). + - **What still goes to Infrastructure** is unchanged: process/tool execution (4b), CI host adapters (5b), tool-path/package resolvers (4b), and project/solution readers (5c, via ports). The seam is *genuine external side-effecting adapters behind Application-owned ports*, not "anything in a namespace called IO/Net." + +- **2026-06-01 — project-file renames + splits + the `Fallout` meta-package (the realignment's final mechanical step).** With every namespace settled, the project files / assemblies / NuGet package IDs were brought to `ring = project = namespace = assembly = package`. Ring-pure projects were renamed (`Fallout.Build`→`.Application`, `Fallout.Components`→`.Application.Components`, `Fallout.ProjectModel`→`.Infrastructure.ProjectModel`, `Fallout.Utilities*`→`Fallout.Kernel*`); the three mixed projects were split into ring-pure assemblies (`Fallout.Tooling`→`Application.Tooling`+`Infrastructure.Tooling`; `Fallout.Solution`→`Application.Solutions`+`Infrastructure.Solutions`; the `Fallout.Common` catch-all dissolved into `Application.Tools`+`Infrastructure.CI`+`Application`+`Kernel`). + - **Consumer anchor = a new thin `Fallout` meta-package** (resolves the open question of what replaces `Fallout.Common` as the "reference-one-package" entry point). It holds no code: it references every ring and carries the MSBuild integration (`Fallout.props`/`.targets`), the MSBuildTasks publish output, and the source-generator analyzer. `dotnet fallout :setup`/`:update` target it. + - **Splitting ports from adapters required a module-init fix.** Co-hosting ports + their `[ModuleInitializer]` adapter registrations in one assembly had masked a latent bug: `Assembly.Load` loads metadata but does **not** run a `[ModuleInitializer]` (it fires lazily on first *use* of a type in the assembly). Once adapters moved to assemblies nothing references by type, their registration never ran (null `ToolingServices`/`SolutionServices` → swallowed NRE at build runtime, invisible to unit tests). Fix: the build's force-loader (`BuildManager.Initialize`) now calls `RuntimeHelpers.RunModuleConstructor` on each `Fallout.*` assembly; the source generator reads solutions via a direct `SolutionReader` call (a Roslyn host can't use the locator); test hosts force-run the adapter module ctors. This is the general pattern for any future ring split. + - **Placement is dependency-driven, not namespace-driven.** Injection/extension attributes (`[Solution]`, `[Latest*]`, `[GitRepository]`, globbing attrs) and a few `ControlFlow`/`Configure`-coupled IO helpers (FtpTasks/HttpTasks) live in the `Fallout.Application` assembly despite their `Application.Solutions`/`Application.Tooling`/`Kernel.IO` namespaces — their base classes live there and the leaf ring projects are referenced *by* Application, so homing them in the leaves would cycle. Accepted residual: a handful of `Kernel.IO`-namespace files sit in the Application assembly (ring-safe — no Infra dependency; the gate stays green); a namespace-vs-assembly tidy-up is left for later. + - **TFMs:** `net472` dropped (Fallout is `dotnet build`-only); `Fallout.Domain`→`net10.0`; `netstandard2.0` retained only on the Roslyn generators and the ring halves they consume; `Fallout.Infrastructure.ProjectModel` keeps `net8.0;net9.0;net10.0` (per-TFM Microsoft.Build pinning matches the evaluator to the SDK — load-bearing, not incidental). + +- **2026-06-01 — `Nuke.*` shim + Migrate redesign (the deferred migration strategy, now resolved).** The realignment deliberately deferred the shim/migration rework "until the rings land" (above). Now landed: **one canonical `Nuke ↔ Fallout` namespace map** (`src/Shared/NukeNamespaceMap.cs`, linked into the generator + both migration projects) is the single source of truth for both directions — the transition-shim generator (Fallout→Nuke re-exports) and the `fallout-migrate` rewriters (Nuke→Fallout). This fixes the desync the onion caused (the migration's blind `Nuke.`→`Fallout.` swap had been producing dead `Fallout.Common.*` output). + - **The 1:1 shim-package↔Fallout-project mapping is abandoned** (it assumed `Nuke.Common`↔`Fallout.Common`, which dissolving `Fallout.Common` broke). Shim-package count now tracks **NUKE's real consumer packages**: `Nuke.Common` (references the `Fallout` meta and re-exports every `Nuke.Common.*` sub-namespace wherever the source type now lives across the rings) + `Nuke.Components`. **`Nuke.Build` is deleted** — never a real consumer package. + - **The generator is map-driven**: it emits the map rows whose `ShimPackage` equals the compiling assembly's name (replacing the per-assembly `[assembly: ShimAllPublicTypesUnder]` markers), with longest-Fallout-prefix-wins ownership so split namespaces (CI/ProjectModel/IO) don't double-emit. + - **Cake migration support is dropped** (low demand; the original author's feature). Nuke→Fallout is the supported migration; even that is kept deliberately lightweight given current demand. + - Validated by re-including the previously-excluded compat tests (`Nuke.Common.Shim.Tests`, `Nuke.Consumer`) — a pure NUKE consumer surface compiles through the 2 shims. **This closes the realignment**: the onion is structurally complete and NUKE-compat is restored. + +## References + +- Current-state map: see the structural survey summarized in the spike. +- Shim machinery: `src/Fallout.SourceGenerators/TransitionShimGenerator.cs`, `src/Shims/Nuke.*` +- Migrate codefix: `src/Fallout.Migrate`, `src/Fallout.Migrate.Analyzers` +- Deferral being amended: `docs/rebrand-plan.md` §"What's deliberately deferred" +- Spike: [docs/spikes/0002-onion-domain-ring.md](../spikes/0002-onion-domain-ring.md) diff --git a/docs/adr/README.md b/docs/adr/README.md index c38f1e8d8..42a79817d 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -38,3 +38,4 @@ If you change a decision, do NOT silently rewrite the old ADR — add a new one | [0002](0002-v11-off-nuget-by-default.md) | v11 publishes to GitHub Packages by default; nuget.org opt-in | Accepted | | [0003](0003-variables-and-substitution.md) | Variables and `${…}` substitution layer | Proposed | | [0004](0004-calendar-versioning-and-dual-pace-channels.md) | Calendar versioning + dual-pace channels (edge/stable) + experimental APIs | Accepted | +| [0006](0006-onion-layering-and-namespace-realignment.md) | Onion layering + namespace realignment | Proposed | diff --git a/docs/spikes/0002-onion-domain-ring.md b/docs/spikes/0002-onion-domain-ring.md new file mode 100644 index 000000000..336dde2dc --- /dev/null +++ b/docs/spikes/0002-onion-domain-ring.md @@ -0,0 +1,69 @@ +# Spike 0002 — Onion realignment: prove the Domain ring + +- **Status:** Done (2026-05-31) — see [Verdict](#verdict) +- **Date:** 2026-05-31 +- **Decision record:** [ADR-0006](../adr/0006-onion-layering-and-namespace-realignment.md) +- **Channel:** `experimental` (spike branch `spike/onion-structure`) +- **Time-box:** one focused session + +> The full realignment (ADR-0006) is a large, breaking, ring-by-ring program. This spike does **only the innermost ring** — extract `Fallout.Domain` — to prove the three mechanics every later ring depends on, before committing to the larger ones. Throwaway-by-default. + +## Hypothesis + +> The pure-domain types can be lifted into a `Fallout.Domain` layer (`namespace = project = layer`) such that: (1) the Domain assembly references **no other Fallout assembly**, enforced by a fitness test; (2) the solution still builds and all tests pass — confirming the move + reference-fixup + fitness loop that the Application and Infrastructure rings will reuse at larger scale. + +## Scope + +### In scope +1. **Create `Fallout.Domain`** (project + namespace). Move into it the pure-domain types: `Fallout.Core.Planning.*` (graph/topo-sort/cycle detection) and the domain types currently under `Fallout.Common.Execution` in the `Fallout.Core` project (`ITargetModel`, `ExecutionStatus`). Result: `Fallout.Core` is renamed/absorbed; no domain type remains under `Fallout.Common.*`. +2. **Fitness test.** Assert `Fallout.Domain` references no other `Fallout.*` assembly (the innermost-ring invariant). Demonstrate it fails on an injected violation, then revert. +3. **Update internal references.** `Fallout.Application`-to-be (currently `Fallout.Build`) and others that consumed the moved types via `Fallout.Common.Execution` now reference `Fallout.Domain`. + +### Out of scope +- ❌ The Application and Infrastructure rings (later PRs). +- ❌ Renaming `Fallout.Build` → `Fallout.Application`, dissolving `Fallout.Common`, moving tools/CI/utilities — none of it yet. +- ❌ **Shim / migration parity — deferred wholesale** (ADR-0006). We do *not* re-point the `TransitionShimGenerator` here; the `Nuke.*` surface is allowed to lapse on `experimental`. The migration strategy is redesigned as its own phase once the target shape settles. +- ❌ Consumer-template global usings (an Application/Infrastructure-ring concern). + +## Ordered steps + +1. Branch is `spike/onion-structure` off `experimental`. (Done.) +2. Read the current `Fallout.Core` contents and every reference to its types across the solution (esp. `Fallout.Common.Execution` consumers in `Fallout.Build`). +3. Create `Fallout.Domain` project; move the pure-domain files; set `namespace = Fallout.Domain[.Planning]`. +4. Fix references (project refs + `using`s) across the solution. The `Nuke.*` shim build may break here — that's expected and allowed (shim parity deferred); if it blocks the solution build, temporarily exclude the affected shim project rather than re-pointing it. +5. Add the Domain-ring fitness test; confirm green, then confirm it goes red on a deliberate `Fallout.*` reference, then revert. +6. Validate: `./build.sh Compile` + `./build.sh Test` (or the per-project equivalents) green; dogfood workflows unchanged. + +## Success criteria +- ✅ `Fallout.Domain` exists; no domain type remains under `Fallout.Common.*`. +- ✅ Fitness test passes and demonstrably fails on a violation. +- ✅ Solution (excluding deferred shim parity) builds; tests green. +- ✅ A written verdict: did the move + reference-fixup + fitness loop hold? What surprised us? Is it safe to scale to the Application ring (the big one — the user-facing API rename)? + +## Risks / watch +- **What's *really* domain.** `Fallout.Core` already mixes `Fallout.Core.Planning` and `Fallout.Common.Execution` — move only genuinely-pure types; anything touching execution *orchestration* (not the model) belongs in the Application ring, not Domain. +- **Hidden inward references.** A "domain" type that secretly reaches into utilities/IO would break the zero-deps invariant — the fitness test will catch it; treat any such case as a finding about what's really domain. This is now the spike's primary unknown (the shim question is deferred out). +- **Shim fallout is expected, not a failure.** If moving types breaks the `Nuke.*` shim build, that's the deferred concern surfacing — note it and move on; do not rabbit-hole on re-pointing. + +## Exit +Set **Status: Done**, append the verdict, and feed it back into ADR-0006 (confirm/adjust the layer mapping, then promote `Proposed` → `Accepted`) before starting the Application ring. + +## Verdict + +**Hypothesis confirmed.** The move → reference-fixup → fitness loop holds. `Fallout.Domain` exists, no domain type remains under `Fallout.Common.*`, the solution builds, and the **full test suite passes** (every project, including the `Nuke.*` shim tests). + +**What landed (commit `refactor(arch)!: extract Fallout.Domain ring`):** +- `Fallout.Core` → `Fallout.Domain` (project + test project, via `git mv`); refs in `Fallout.Build.csproj`, the test csproj, and `fallout.slnx` updated. +- The two mis-namespaced execution types (`ITargetModel`, `ExecutionStatus`) moved out of `Fallout.Common.Execution` → `Fallout.Domain.Execution`; `Fallout.Core.Planning` → `Fallout.Domain.Planning`. +- 8 consumers in `Fallout.Build`/tests gained `using Fallout.Domain.Execution;`; the intra-repo `ExecutionStatus` **type-forwarder re-pointed**. +- Fitness test **strengthened**: Domain must depend on no outer ring *including `Fallout.Common`* (the realignment goal). Passes; proven red on an injected dependency, then reverted. + +**Findings that shape the bigger rings:** +1. **Head start that won't repeat.** `Fallout.Core` was already pure with an existing fitness test (issue #88's seed). The Domain ring was therefore a *rename*, not a purity fight. The Application/Infrastructure rings start from the `Fallout.Common.*` tangle — expect real work, not just renames. +2. **Shim breakage is SILENT, not fatal — good news for the deferred strategy.** Moving types out of `Fallout.Common.*` doesn't fail the shim build; the `TransitionShimGenerator` simply stops mirroring them into `Nuke.*` (it only maps the `Fallout.Common` prefix). The solution built and the shim tests passed. So the rings won't be *blocked* by shim breakage — the `Nuke.*` surface just quietly shrinks, to be rebuilt by the deferred migration phase. **Caveat:** this was 2 types (one an enum the generator skips anyway). The **Application ring** moves the user-facing API *en masse* — the silent surface reduction there will be large; still expected to be build-clean. +3. **Blast radius beyond namespaces is real but mechanical.** Two non-obvious things needed updating: an **intra-repo type-forwarder** and a **Verify snapshot** (the solution-generator emits project names, so renaming projects churns it). The Application/Infrastructure rings will hit *many* more consumers and likely more snapshots — same loop, larger N. +4. **Splitting a shared namespace costs double-usings.** Because `Fallout.Common.Execution` keeps its orchestration types (staying → future `Fallout.Application.Execution`) while the model types left, consumers need *both* usings transiently. The Application ring (whole-namespace move) should be more uniform but far larger — **worth a bulk using-rewrite tool** (or lean on the `Fallout.Migrate` codefix machinery). + +**Safe to scale to the Application ring** — the mechanics are proven. That ring is the big one (the user-facing `FalloutBuild`/`Target`/`[Parameter]` rename); recommend it as its own PR, with a bulk using-rewriter prepared first. + +*Residual nit:* `src/Fallout.Domain/README.md` may still contain `Fallout.Core` prose — cosmetic, sweep during the Application ring. diff --git a/docs/spikes/0003-onion-infrastructure-ring.md b/docs/spikes/0003-onion-infrastructure-ring.md new file mode 100644 index 000000000..f849fc02c --- /dev/null +++ b/docs/spikes/0003-onion-infrastructure-ring.md @@ -0,0 +1,108 @@ +# Spike 0003 — Onion realignment: the Infrastructure ring (steps 3–5) + +- **Status:** ✅ STRUCTURALLY COMPLETE. step 3, 4a, 4b + inversion, 5a, 5b, 5c done; 5d resolved-by-decision; project-FILE renames + splits + meta-package done; namespace residuals cleaned; **`Nuke.*` shim + Migrate redesign DONE** (the last deferred item). The whole onion is `ring = project = namespace = assembly = package`, and the NUKE-compat story (shims + migration) is rebuilt on a single canonical map. Remaining: only shipping the stack. On branch `spike/shim-migration-redesign` (stacked on `spike/onion-kernel`). +- **Shim + Migration redesign DONE (2026-06-01, branch `spike/shim-migration-redesign`):** one canonical **`src/Shared/NukeNamespaceMap.cs`** (Nuke↔Fallout namespace rows + a package-ID map) now drives BOTH halves, which the onion had desynchronised: the `TransitionShimGenerator` (Fallout→Nuke re-exports, map-driven by the compiling assembly's name, longest-prefix-wins) and the migration rewriters (`CodeRewriter`/`CsprojRewriter`/`NukeMigrationCodeFix`, Nuke→Fallout — previously a blind `Nuke.`→`Fallout.` swap that produced dead `Fallout.Common.*`). **Shim packages 3→2**: `Nuke.Common` (references the `Fallout` meta, re-exports every `Nuke.Common.*` sub-namespace wherever the source now lives) + `Nuke.Components`; **`Nuke.Build` deleted** (never a real NUKE consumer package). **Cake migration support dropped entirely** (low demand). Compat tests (`Nuke.Common.Shim.Tests`, `Nuke.Components.Shim.Tests`, `Nuke.Consumer`) re-included as the validation — a pure NUKE consumer surface compiles through the 2 shims. Full suite + dogfood `./build.sh Test` green. +- **Project renames/splits DONE (6 phases, commits a5e85646 / df09f573 / 94d31883 / 01d4a670 / 3ed3a645 + this):** (1) pure renames `Fallout.Build`→`.Application`, `Components`→`.Application.Components`, `ProjectModel`→`.Infrastructure.ProjectModel`, `Utilities*`→`Kernel*`; (2) split `Tooling`→`Application.Tooling`+`Infrastructure.Tooling`; (3) split `Solution`→`Application.Solutions`+`Infrastructure.Solutions`; (4) dissolve `Fallout.Common`→`Application.Tools`+`Infrastructure.CI`+`Application`+`Kernel`, new thin **`Fallout` meta-package** as the consumer anchor (carries `Fallout.props`/`.targets`+MSBuildTasks+analyzer); (5) TFM cleanup (net472 dropped; Domain→net10.0; ProjectModel KEEPS net8/9/10 — per-TFM MSBuild SDK matching; ns2.0 only where Roslyn generators consume). **Linchpin fix:** `Assembly.Load` doesn't run `[ModuleInitializer]`s, so split-out adapter registration silently broke (null `ToolingServices`/`SolutionServices`, swallowed NRE — invisible to unit tests, caught by the dogfood build); `BuildManager.Initialize` now `RunModuleConstructor`s each Fallout.* assembly, the generator uses a `SolutionReader` direct-read, and test hosts force-run the adapter module ctors. Full suite (14 projects) + gate + dogfood `./build.sh Test` green throughout. +- **Namespace residuals CLEANED (2026-06-01, commits 2f205744 + 2b289e08):** (1) the `Kernel.IO`-namespace files in the Application assembly (FtpTasks/HttpTasks/globbing attrs) → `Fallout.Application.IO` (namespace now matches assembly; the 20 genuine Kernel.IO types in Fallout.Kernel untouched). (2) the last surviving `Fallout.Common` namespace (`Constants`/`LegacyEnvironment` in Build.Shared) → `Fallout.Build.Shared`; a vestigial `Fallout.Common.FalloutBuild` stub in SourceGenerators deleted first so the namespace fully evacuated (75 dead usings dropped) + the starter template's dead `using Fallout.Common;` removed. **`Fallout.Common` no longer exists anywhere in shipped code** (only as Nuke→Fallout migration test DATA in Migrate fixtures). The onion is now truly `ring = project = namespace = assembly = package`. Only remaining onion work: the `Nuke.*` shim / Migrate redesign. +- **Date:** 2026-05-31 (updated 2026-06-01) +- **Decision record:** [ADR-0006](../adr/0006-onion-layering-and-namespace-realignment.md) +- **Channel:** `experimental` (branch `spike/onion-infrastructure`) + +> Handoff doc for picking up the onion realignment next session. Captures the whole workstream's +> state, the decisions already made, the reusable tooling, and the precise next steps. + +## Where the whole realignment stands + +Onion layers, `namespace = project = layer`, **breaking, whole-onion in the 2026 major** (the 2026 +major hasn't cut; breaking work rides it — ADR-0006). Branch stack on `experimental`: + +``` +experimental + └─ spike/onion-structure Domain ring (step 1) → PR #343 (target/2026, breaking) + └─ spike/onion-application Application ring (step 2) → PR #349 (stacks on #343, breaking) + └─ spike/onion-infrastructure Infra ring (3–5) → (unpushed; step 3 committed) +``` + +(Also open, unrelated-ish: PR #341 = CI ports/adapters, additive; PR #342 = other maintainer's promote.) + +### Done +1. **Domain ring** — `Fallout.Core` → `Fallout.Domain`; `ITargetModel`/`ExecutionStatus`/`Planning` out of `Fallout.Common.*`. Fitness test: Domain depends on no outer ring. (PR #343) +2. **Application ring** — everything `Fallout.Build` declared under `Fallout.Common.*` (`FalloutBuild`, `Target`, `[Parameter]`, `Host`, engine, value injection, CI ports) → `Fallout.Application.*`. ~297 files, full suite green (~450 tests). (PR #349) +3. **Infra step 3 — execution port** — `IProcessRunner` + `SystemProcessRunner` + `ProcessTasks.Runner` seam; the impure `Process.Start` is now behind the port. Tooling vocabulary can now be pure. (committed on this branch; 64/64 Tooling tests) + +### Done (cont.) +4a. **Components → Application** — `Fallout.Components` (20 files, single namespace) → `Fallout.Application.Components`. Clean isolated move; full suite green. Shim repointed (see below). Confirmed the generalized rule-table rewriter on an easy target before the hard Tooling move. + +4b. **Tool vocabulary → Application; executor → Infrastructure** — the entangled one. `Fallout.Common.Tools.*` → `Fallout.Application.Tools.*`; the `Fallout.Common.Tooling` namespace (shared across `Fallout.Tooling` + `Fallout.Common`, mixing vocabulary and executor in one namespace) splits **per type**: vocabulary + ports + attributes + `ProcessException` → `Fallout.Application.Tooling`; the 13 impure executor types (`ProcessTasks`, `SystemProcessRunner`, `Process2`, `ProcessExtensions`, `ToolExecutor`, `ToolPathResolver`, `NuGet*`/`Npm*`/`Paket*` resolvers, `ToolingExtensions`) → `Fallout.Infrastructure.Tooling`. **Maintainer chose "true homes, defer port fix"**: types land where they belong, accepting `ToolTasks`(App)→`ProcessTasks`(Infra) + resolver I/O as a tracked Application→Infrastructure dependency to be inverted behind ports in a follow-up (no fitness test guards it yet — projects aren't split). 271 files, full suite green (7 cake-migration snapshots re-accepted — namespace-only churn). The prefix-only rewriter grew **per-type overrides** + **multi-assembly rules** + **lost-ancestor usings** + **cref rewriting** (lessons #8–#11). `AbsolutePath`/`Fallout.Common.IO` deferred to step 5 (still `Fallout.Common.IO` here, so no ring crossing yet — they'll need a shared kernel when IO moves). + +### Done (cont.) +**4b-follow-up — port inversion + Application-ring fitness gate.** Ports in `Fallout.Application.Tooling` (`IProcessExecutor`, `IToolPathResolver`, `IToolVersionResolver`) behind a `ToolingServices` locator; Infrastructure registers thin adapters via a `[ModuleInitializer]` (polyfilled for the `netstandard2.0` TFM). All ~18 Application-ring call sites (process exec, path/package/version resolution, the config-push from `BuildManager`/`ToolRequirementService`) routed through the ports. `ProcessExtensions` reclassified Infra→`Application.Tooling` (it's pure `IProcess`/`Output` vocabulary the App ring calls everywhere — a 4b mis-classification). New `tests/Fallout.Architecture.Tests` runs a NetArchTest gate: `Fallout.Application.*` ⊥ `Fallout.Infrastructure.*` (green). Lessons learned: the fitness test must live in its OWN project — loading every ring's assembly into a project that also has `AppDomain.GetAssemblies()`-scan tests (e.g. `SchemaUtilityTest` in `Fallout.Build.Tests`) perturbs those snapshots; and extension methods are silent cross-ring deps the grep misses — the gate (IL analysis) is the real oracle. + +Catch-all `Fallout.Common.*` code outside the Application ring (CI host adapters, `HandleSingleFileExecution`/`CheckPathEnvironmentVariable` attributes, `Fallout.Cli` composition root, `Fallout.MSBuildTasks`) still reaches Infrastructure — out of the gate's scope; folds in with step 5 as those namespaces get rings. + +### Done (cont.) — straggler cleanup (2026-06-01) +**Finished partial onion moves left by earlier steps** (surfaced while cleaning the Cli cake-migration + project template). Two OnionRewriter passes: +- **Git + ChangeLog → Application** (commit cc9acf84): `GitRepositoryAttribute` (`Fallout.Common.Git`) joined the `GitRepository` model already in `Fallout.Application.Git`; changelog helpers `Fallout.Common.ChangeLog` → `Fallout.Application.ChangeLog`. No shim-marker change — the Application ring's `Nuke.*` shim story is the deferred redesign, so this just aligns Git/ChangeLog with it. +- **5a Kernel stragglers → `Fallout.Kernel`** (commit 58100f66): `EnvironmentInfo` (5 files), `Assert`, `AsyncHelper`, `ArgumentParser` were still in `namespace Fallout.Common` inside the `Fallout.Utilities` (Kernel) project — 5a missed them (lesson #12). Moved via a **separate pass with source assembly = `Fallout.Utilities` only**, so the surviving-namespace scan keeps the Fallout.Common project's surviving root types and doesn't drop live `using Fallout.Common;`. ~180 files of ref churn. Two rewriter blind-spots hand-fixed: (a) `Fallout.ProjectModel` files carried a `using Fallout.Common;` that only resolved because Utilities *declared* those Common types — once moved, the using dangled (CS0234) since ProjectModel doesn't reference the Fallout.Common assembly; the rewriter can't see assembly-ref graphs. (b) `CITest.cs` gained `using Fallout.Kernel;` (for `.NotNull()`), colliding `Fallout.Kernel.Assert` with `Xunit.Assert` → aliased to Xunit's. Full suite + dogfood green. +- **Execution + Gitter tail → Application** (commit d38acb78): `Fallout.Common.Execution` (the `CheckPathEnvironmentVariable` + `HandleSingleFileExecution` build-extension attributes) → `Fallout.Application.Execution`; `Fallout.Common.Gitter` (`GitterTasks`) → `Fallout.Application.Tools.Gitter` (joins the sibling notification tools). **The fitness gate earned its keep here**: moving the two attributes into the Application namespace exposed a real Application→Infrastructure dependency that was previously invisible (they called `ProcessTasks` from `Fallout.Infrastructure.Tooling` directly — the spike had flagged they "still reach Infrastructure"). Rerouted through the `IProcessExecutor` port (`ToolingServices.Process`), the same 4b inversion the rest of the ring uses. After this, no `Fallout.Common.{Git,ChangeLog,Execution,Gitter}` references remain. (Still partial, not pursued: the `Fallout.Common` root retains a handful of catch-all types — `Constants`, `Configuration`, etc.) + +### Remaining (this ring) — step 5, now sub-divided +**Kernel decision (maintainer, 2026-06-01): a new `Fallout.Kernel`** — innermost shared ring below Application; Domain/Application/Infrastructure all depend on it. Pure shared value-types live here so the Application ring keeps compiling when IO moves outward (else the new fitness gate fails). Sub-steps: +- **5a — `Fallout.Kernel`** ✅ DONE (namespace move; 437 files, green; gate still passes). The foundational move. **Filesystem-line decision (maintainer, 2026-06-01): filesystem IS a kernel-level capability** (like the BCL's `File`/`Directory`) — Kernel keeps `AbsolutePath` *and* its fluent file ops (`.ReadAllText`/`.GlobFiles`/`.CreateDirectory`/…); only the genuinely-EXTERNAL adapters go to Infrastructure (HTTP/FTP = `Fallout.Utilities.Net` + `Common.IO` Http/Ftp tasks; compression = `Fallout.Utilities.IO.Compression`). Rationale: the fluent `AbsolutePath` API is used pervasively across the Application ring; routing it through an `IFileSystem` port would be hundreds of call sites and kill the ergonomics, and putting it in Infrastructure would fail the new Application-ring fitness gate. + - **Kernel contents** (~65+ files): all pure Utilities (`Collections`, `Text`/string, `Reflection`, `Assert`/`AsyncHelper`/`ArgumentParser`/`EncryptionUtility`/`ResourceUtility`/…); `AbsolutePath`/`RelativePath`/`PathConstruction` + ALL `AbsolutePath` extensions incl. filesystem; `EnvironmentInfo` (whole); `Globbing`; `GlobbingCaseSensitivity`. Namespaces `Fallout.Common.Utilities*`/`Fallout.Common.IO` → `Fallout.Kernel.*`. + - **To Infrastructure**: `Fallout.Utilities.Net` (HTTP), `Fallout.Utilities.IO.Compression`, and `Common.IO`'s `HttpTasks`/`FtpTasks`. The `Common.IO` namespace thus SPLITS per-type (filesystem→Kernel, Http/Ftp→Infra) — needs the rewriter's per-type overrides again. + - **Caveats**: `AbsolutePathExtensions` is one partial class across ~11 files — it must move WHOLE (can't span assemblies), so it goes entirely to Kernel (fine, since filesystem=Kernel). **This is the first step that creates a NEW PROJECT / relocates files** (vs. the namespace-only moves of 4a/4b) — likely realized by renaming the existing `Fallout.Utilities` project → `Fallout.Kernel` and consolidating the IO bits, which overlaps the "project-file renames" deferred work. `Fallout.Domain` will gain a dependency on `Fallout.Kernel` (Kernel is innermost-shared). No back-references found from Utilities/IO into Domain/App/Infra (clean to move). +- **5b — CI adapters**: `Fallout.Common.CI.` → `Fallout.Infrastructure.CI.*`. +- **5c — ProjectModel/Solution** ✅ DONE (full onion; commits 9548a948 phase A, c6a3cb5d phase B, fea66fa3 phase C–E). **Maintainer chose the most faithful realization: a Fallout-OWNED model + ports in the inner ring, concrete impls outside.** Reality differed from the original guess in two ways: (1) the earlier "~5 Application callers" of the MSBuild surface were almost all FALSE POSITIVES (Reflection/JSON `.GetProperty`); the only gated callers were `Telemetry.CheckAwareness` (dead code, telemetry disabled) and `Components/ITest.HasPackageReference`. (2) The vendored `Fallout.Persistence.Solution` `.Model` ↔ `.Serializer` are MUTUALLY entangled (bidirectional via `ISerializerModelExtension`), so the lib can't be split — the whole vendored tree is reached only through the Infrastructure adapter. + - **Shape**: `Solution`/`Project`/`SolutionFolder`/`SolutionItem`/`IProjectContainer`/`SolutionAttribute`/`ReadSolution`/ports → `Fallout.Application.Solutions`. The model is a Fallout-owned **POCO tree** (was a live wrapper over the vendored `SolutionModel`); it holds an **opaque `object Handle`** carrying the vendored model for `Save` round-trip fidelity without naming a vendored type (so the gate passes; `Solution.Save`/`GetModel` have zero consumers anyway). Two ports — `ISolutionSerializer` (open/save across .sln/.slnx) + `IProjectEditor` (MSBuild get/set property + HasPackageReference). Serializer adapter + vendored→Fallout translation walker → `Fallout.Infrastructure.Solutions`; MSBuild evaluator (`ProjectModelTasks`/`ProjectExtensions`/`ProjectEditorAdapter`) → `Fallout.Infrastructure.ProjectModel`. + - **Co-hosting (deviation from the written plan, deliberate)**: adapters co-hosted with the model in the existing project files (like `Fallout.Tooling`) rather than a new `Fallout.Infrastructure.Solutions` project — guarantees the `[ModuleInitializer]` registration runs (no separate-assembly load-ordering bug) AND makes the build-time source generator's compile-time `ReadSolution` work unchanged (the generator already bundles the model DLL). Physical project-file split stays deferred with the other renames. The gate enforces the ring boundary by NAMESPACE regardless of project. + - **Consumer cost** (per ADR-0006's accepted "public API under Infrastructure"): the MSBuild project-query extensions (`GetTargetFrameworks` etc.) no longer flow transitively — the Cli composition root + the dogfood build now reference `Fallout.ProjectModel` directly. + - **Pre-existing debt found, NOT fixed (out of 5c scope)**: `src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs`'s hard-coded `using` list + `src/Fallout.Cli/templates/Build.cs` still carry stale `Fallout.Common.*` namespaces from steps 4a/4b/5b (the semantic rewriter never touches string literals / embedded-resource templates). The cake-migration output + `dotnet fallout` template are therefore emitting dead namespaces — a separate cleanup. +- **5d — external IO** ✅ RESOLVED BY DECISION (maintainer, 2026-06-01): **kept in Kernel — no code moves.** Extends the 5a "filesystem is kernel-level" ruling to the rest of the external-IO *fluent vocabulary*. Investigation found every external-IO category the original plan earmarked for Infrastructure is consumed by **gated Application-ring** code, so none can move cleanly and all would otherwise need 5c-style ports: + - **HTTP fluent client** (`Fallout.Kernel.Net` — `HttpClient.CreateRequest(...).Send()` extensions over the BCL `HttpClient`) ← `Fallout.Application.Tools.*` (Slack/Discord/Teams/Mastodon/Gitter). A thin BCL-ergonomic layer, structurally identical to the filesystem-over-BCL case → **stays in Kernel.** + - **Compression** (`.ZipTo()`/`.UnZipTo()`, `Fallout.Kernel.IO`) ← `Fallout.Application.Components/ISignPackages`. These are **`AbsolutePath` extension methods** — part of the very fluent `AbsolutePath` API 5a already kept in Kernel; porting them kills the same ergonomics → **stays in Kernel.** + - **`HttpTasks`/`FtpTasks`** (download-URL-to-file, `Fallout.Kernel.IO`) ← `Fallout.Application.Tooling` (`LatestMaven`/`LatestMyGet` version-resolver attrs) + `Fallout.Common.Execution` (catch-all). The one genuinely-coarse "network task" category → **kept in Kernel for now**; a small `IHttpDownload`-style port → Infrastructure remains *optional* future work if we want strict external-IO purity, but it is not required for the gate and is deferred. + - **Glob** (`.GlobFiles`, `Fallout.Kernel.Globbing`) — already part of the fluent `AbsolutePath` API, kernel-level by 5a. No change. + - Net effect: 5d moves nothing; `Fallout.Utilities.Net`/`Fallout.Utilities.IO.Compression`/`Fallout.Utilities.Globbing` remain Kernel-ring assemblies (their project-FILE consolidation into the `Fallout.Kernel` project is the deferred rename work, not a ring crossing). Gate (`Application ⊥ Infrastructure`) stays green. +5. **I/O adapters → Infrastructure** (original framing; superseded in part) — CI host adapters (`Fallout.Common.CI.`) → `Fallout.Infrastructure.CI.*` ✅ (5b); the `ProcessTasks`/`ToolExecutor` executor side → `Fallout.Infrastructure` ✅ (4b); `Fallout.ProjectModel`/`Fallout.Solution` → `Fallout.Infrastructure.*` (5c, via ports). **NOT moving:** `Fallout.Common.IO` + `Fallout.Utilities.IO/.Net/.Compression/.Globbing` — these are the fluent external-IO vocabulary and stay in Kernel (5a + 5d decisions), *not* Infrastructure. + +### Design decisions already made (don't relitigate) +- **Layer names**: explicit onion (`Fallout.Domain`/`.Application`/`.Infrastructure`, `Fallout.Cli` root). Public tool/CI API lives under `.Infrastructure` (accepted; ease consumer ergonomics later with template global usings). +- **Tool wrappers = Application vocabulary** (not Infrastructure): they're pure command builders; execution is the port. `Components` folds into Application (it composes wrappers). +- **Utilities split**: pure helpers (collections, reflection, string) → a **shared kernel below Application** (a small `Fallout.Kernel`-style project that Application + Infrastructure depend on; Domain stays zero-dep). Genuine I/O → `Fallout.Infrastructure.*`. +- **Shipping**: breaking → `experimental` → 2026 major. Shim/migration redesigned at the END (deferred). + +## The reusable tool: `tools/OnionRewriter` + +Semantic namespace mover (MSBuildWorkspace + symbol resolution). Run: `dotnet run --project tools/OnionRewriter` (dry-run) / `-- --apply`. It rewrites namespace declarations in a source project, fixes references repo-wide by the symbol each binds to, and reconciles `using`s. + +**Generalized (done for step 4a)**: now driven by a `Rule[]` table — each rule is `(OldPrefix, NewPrefix, SourceAssembly)`, collected across *multiple* source assemblies. Edit the table per step (step 4a = the single Components rule). `IsMovable`/`MapNs`/`IsSourceFor` derive from the table; moved-type collection and the surviving-namespace scan iterate all source projects (source dirs derived from the loaded projects, not hard-coded). Steps 4b/5 just add rules — except `Fallout.Common.IO` is declared across **four** assemblies (Common + Utilities + Utilities.IO.Compression/Globbing), so that move needs one rule per declaring assembly (or generalize `SourceAssembly` to a set). + +**Companion (non-semantic) edits the rewriter does NOT do** — it operates on symbols, never string literals, so per step also update by hand: transition-shim **`ShimMarker.cs`** `fromNamespacePrefix` strings (the `ShimAllPublicTypesUnder` source prefix — load-bearing: the shim generator mirrors that prefix, so a stale value silently stops emitting the shims and the hand-written `IHaz*` aliases fail to compile); any Migrate rename-map strings; Verify snapshots that embed names. + +### Hard-won tool lessons (bake these into the generalized version) +These edge cases each cost a build cycle on the Application ring — the generalized tool must keep them: +1. **Classify moved types by assembly NAME + a moved-set membership** (not symbol identity — a referenced project's assembly symbol is a *different instance* per compilation, so identity comparison fails cross-project). Combine with skipping package-consumer projects to avoid the `Fallout.Build`-named NuGet package collision. +2. **Skip package consumers** (`Consumer.NuGet`, `Nuke.Consumer`) — they compile against the published package, not local source. +3. **Detect non-type references too**: attribute names bind to the **constructor** (`IMethodSymbol`), extension calls (`x.NotNull()`) bind to the **reduced method** — take the declaring type in both, else their `using`s are missed. +4. **Nested-type qualified refs** (`Ns.Outer.Nested`): only remap a qualified name's `Left` when it equals the type's namespace exactly; let the inner qualified-name visit handle nested cases (else you drop the outer-type qualifier). +5. **`using` drop rule**: drop a movable `using` when its namespace is **fully evacuated** (no residual declarations anywhere — would dangle) OR when a moved type was imported from it and no residual type still is. Don't touch pre-existing unused usings of surviving namespaces. +6. **Source files that change namespace** lose same-namespace access to **residual** siblings — add explicit `using`s for the residual movable namespaces they use (e.g. a file leaving `Fallout.Common` still using a `Fallout.Common`-residual helper). +7. **Snapshots churn**: the solution generator + cake-migration Verify snapshots embed namespaces/project names — accept the `.received` after applying. Excluding shim consumer/test projects from `fallout.slnx` also churns the solution-generator snapshot. (Step 4a churned none — project *names* were unchanged, only the namespace.) +8. **Classify moved types by their OUTERMOST enclosing type, not the symbol's own name** (found on 4a): a *nested* type's `ContainingNamespace` is the enclosing namespace, so a `{ns}.{Name}` lookup in the moved-set (top-level names only) misses it → it's misclassified as *residual*, which for a source file adds a `using` of the very namespace the move evacuates (dangling → CS0246). Fix: walk `ContainingType` to the top, key the moved-set check on that. Belt-and-suspenders: never add a residual `using` for a namespace not in `surviving`. +9. **Per-type overrides split one namespace across rings** (4b): `Fallout.Common.Tooling` holds both vocabulary (→Application) and executor (→Infrastructure). Prefix rules can't split a namespace, so the mapping became per-TYPE: `targetNs(type)` (override map beats prefix rule) replaced the per-namespace `mapNs`. Namespace *declarations* map by the moved types they declare (`MapDecl` — first moved type wins; blocks are single-ring since each type is its own file). +10. **Lost-ancestor usings** (4b — generalises #6 to non-movable parents): a file in `A.B.C` implicitly sees `A.B`/`A` with no `using`. Moving it to `X.Y.Z` severs that — e.g. `Fallout.Common.Tooling.*` files used `EnvironmentInfo`/`NotNull`/`Assert` from the **`Fallout.Common` root** with no import; after the move they need an explicit `using Fallout.Common;`. Fix: for a source file whose namespace changes, add a `using` for each strict ancestor of the old namespace that is (a) not an ancestor of the new namespace and (b) actually used. **This is the one that costs a whole build cycle if missed** (~160 CS0103/CS1061). +13. **Alias-qualified names (`global::Ns.Type`) aren't rewritten** (5b): `VisitQualifiedName` compares `node.Left.ToString()` to the symbol's plain namespace, but `global::Fallout.Common.CI.X.X` has Left = `global::Fallout.Common.CI.X` (with the `global::` alias), so the exact match fails and the ref is left stale. Hit in the Nuke.Common CI host shims (hand-written `global::Fallout.Common.CI.

.

` aliases). Fix: strip a leading `global::` before the comparison; for now mopped up by hand. (5b shape: provider classes → Infrastructure.CI, but the Application ring uses provider-SPECIFIC APIs — so per-provider ports `IAppVeyor`/… + a `CiHost` accessor casting `Host.Instance`, rather than one fat IBuildHost; no module-init needed since Host.Instance is the existing detection seam.) +12. **The rewriter can silently miss files when a project fails to fully load** (5a): MSBuildWorkspace didn't analyse a handful of files (Fallout.Tooling/Build.Shared edge cases), leaving ~28 stale refs to a fully-evacuated namespace. A blunt repo-wide `sed` to mop them up OVER-REACHED — it (a) rewrote package-consumer projects (`Consumer.NuGet`) that must keep the *published* namespaces, and (b) rewrote the **Migrate tool's** test-fixture expectations (the `Nuke.*`→`Fallout.Common.*` rebrand contract is separate from the onion moves and deferred), and (c) doesn't do the lost-ancestor `using` fix (§10), so a file whose own namespace changed lost access to `Fallout.Common`-root guards. Lesson: mop up residuals only in genuine source/consumer files, skip package consumers + Migrate fixtures, and re-add `using Fallout.Common;` where a moved file used root guards. Better: fix the workspace-load gap so the rewriter doesn't miss them. +11. **Rewrite crefs too** (4b): doc-comment `` names live in structured trivia — neither the prescan nor the rewriter descends there by default, so cref imports dangle and FQN crefs in the *generated* tool wrappers go stale (~7,600 CS1574/CS1580, non-fatal but review-blocking). Fix: prescan with `descendIntoTrivia: true` (so cref-only type refs still get their `using`), and give the `SyntaxFixer` `visitIntoStructuredTrivia: true` (so qualified cref names remap like any other qualified name). + +## Next-session checklist +1. (Optional) Merge the stack first: `#343` then `#349` onto `experimental`, then rebase `spike/onion-infrastructure`. +2. ✅ `OnionRewriter` generalized — `Rule[]` table + per-type overrides + multi-assembly + lost-ancestor usings + cref rewriting. ✅ 4a Components and ✅ 4b Tools/Tooling (vocab→Application, executor→Infrastructure) committed, green. +3. **Step 5** (CI/IO/ProjectModel/Solution → Infrastructure): add rules; decide where `AbsolutePath`/`Fallout.Common.IO` land (likely a shared `Fallout.Kernel` — Infrastructure would break the Application ring). `Fallout.Common.IO` spans 4 assemblies → one rule per declaring assembly. **Also** schedule the port-inversion follow-up for the 4b tracked violation. +4. Add a `Fallout.Kernel` (or chosen name) for pure helpers; split `Fallout.Utilities` (pure → kernel, I/O → Infrastructure). Note `Fallout.Common.IO` spans 4 assemblies — one rule each. +5. Apply (scope-then-apply); update each `ShimMarker.cs` `fromNamespacePrefix`; accept any Verify `.received`. +6. **Last**: project-FILE renames — `Fallout.Build`→`Fallout.Application` assembly, `Fallout.Tooling` split; then the shim/migration redesign. + +## Exit +Update **Status** as steps land; once steps 4–5 are applied and green, push `spike/onion-infrastructure` and open its PR (`target/2026` + `breaking-change`, base = `spike/onion-application` until the stack merges). diff --git a/fallout.slnx b/fallout.slnx index 0f6ae9699..55538988d 100644 --- a/fallout.slnx +++ b/fallout.slnx @@ -11,45 +11,55 @@ - - - - + + + + + + - - + - + + - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + + + - - + diff --git a/src/Fallout.Components/Configuration.cs b/src/Fallout.Application.Components/Configuration.cs similarity index 82% rename from src/Fallout.Components/Configuration.cs rename to src/Fallout.Application.Components/Configuration.cs index f55201c79..16495a695 100644 --- a/src/Fallout.Components/Configuration.cs +++ b/src/Fallout.Application.Components/Configuration.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.ComponentModel; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Components; +namespace Fallout.Application.Components; [TypeConverter(typeof(TypeConverter))] public class Configuration : Enumeration diff --git a/tests/Fallout.Components.Tests/Fallout.Components.Tests.csproj b/src/Fallout.Application.Components/Fallout.Application.Components.csproj similarity index 62% rename from tests/Fallout.Components.Tests/Fallout.Components.Tests.csproj rename to src/Fallout.Application.Components/Fallout.Application.Components.csproj index 35c626099..4a00acd03 100644 --- a/tests/Fallout.Components.Tests/Fallout.Components.Tests.csproj +++ b/src/Fallout.Application.Components/Fallout.Application.Components.csproj @@ -4,8 +4,9 @@ net10.0 + - + diff --git a/src/Fallout.Components/ICompile.cs b/src/Fallout.Application.Components/ICompile.cs similarity index 91% rename from src/Fallout.Components/ICompile.cs rename to src/Fallout.Application.Components/ICompile.cs index 6bec3c673..1f936ba74 100644 --- a/src/Fallout.Components/ICompile.cs +++ b/src/Fallout.Application.Components/ICompile.cs @@ -1,15 +1,15 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Application.Solutions; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface ICompile : IRestore, IHasConfiguration { diff --git a/src/Fallout.Components/ICreateGitHubRelease.cs b/src/Fallout.Application.Components/ICreateGitHubRelease.cs similarity index 89% rename from src/Fallout.Components/ICreateGitHubRelease.cs rename to src/Fallout.Application.Components/ICreateGitHubRelease.cs index 7c386bdd2..c4043199e 100644 --- a/src/Fallout.Components/ICreateGitHubRelease.cs +++ b/src/Fallout.Application.Components/ICreateGitHubRelease.cs @@ -1,24 +1,24 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading.Tasks; -using Fallout.Common; -using Fallout.Common.ChangeLog; -using Fallout.Common.CI.GitHubActions; -using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; using Octokit; +using Fallout.Application; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Components; +using Fallout.Application.CI; +using Fallout.Application.ChangeLog; +namespace Fallout.Application.Components; [ParameterPrefix(GitHubRelease)] public interface ICreateGitHubRelease : IHasGitRepository, IHasChangelog { public const string GitHubRelease = nameof(GitHubRelease); - [Parameter] [Secret] string GitHubToken => TryGetValue(() => GitHubToken) ?? GitHubActions.Instance?.Token; + [Parameter] [Secret] string GitHubToken => TryGetValue(() => GitHubToken) ?? CiHost.GitHubActions?.Token; string Name { get; } bool Prerelease => false; diff --git a/src/Fallout.Components/IGlobalTool.cs b/src/Fallout.Application.Components/IGlobalTool.cs similarity index 87% rename from src/Fallout.Components/IGlobalTool.cs rename to src/Fallout.Application.Components/IGlobalTool.cs index 69447ffbd..d6273ec41 100644 --- a/src/Fallout.Components/IGlobalTool.cs +++ b/src/Fallout.Application.Components/IGlobalTool.cs @@ -1,11 +1,11 @@ using System; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IGlobalTool : IFalloutBuild { diff --git a/src/Fallout.Components/IHasArtifacts.cs b/src/Fallout.Application.Components/IHasArtifacts.cs similarity index 56% rename from src/Fallout.Components/IHasArtifacts.cs rename to src/Fallout.Application.Components/IHasArtifacts.cs index 2e76d86d7..1900a11a5 100644 --- a/src/Fallout.Components/IHasArtifacts.cs +++ b/src/Fallout.Application.Components/IHasArtifacts.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; +using Fallout.Application; +using Fallout.Kernel.IO; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasArtifacts : IFalloutBuild { diff --git a/src/Fallout.Components/IHasChangelog.cs b/src/Fallout.Application.Components/IHasChangelog.cs similarity index 60% rename from src/Fallout.Components/IHasChangelog.cs rename to src/Fallout.Application.Components/IHasChangelog.cs index 1aeff4d5b..14f0f1177 100644 --- a/src/Fallout.Components/IHasChangelog.cs +++ b/src/Fallout.Application.Components/IHasChangelog.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using static Fallout.Common.ChangeLog.ChangelogTasks; +using static Fallout.Application.ChangeLog.ChangelogTasks; +using Fallout.Application; +using Fallout.Application.ChangeLog; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasChangelog : IFalloutBuild { diff --git a/src/Fallout.Components/IHasConfiguration.cs b/src/Fallout.Application.Components/IHasConfiguration.cs similarity index 76% rename from src/Fallout.Components/IHasConfiguration.cs rename to src/Fallout.Application.Components/IHasConfiguration.cs index c39fcd3cf..8ef5eef0c 100644 --- a/src/Fallout.Components/IHasConfiguration.cs +++ b/src/Fallout.Application.Components/IHasConfiguration.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common; +using Fallout.Application; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasConfiguration : IFalloutBuild { diff --git a/src/Fallout.Components/IHasGitRepository.cs b/src/Fallout.Application.Components/IHasGitRepository.cs similarity index 60% rename from src/Fallout.Components/IHasGitRepository.cs rename to src/Fallout.Application.Components/IHasGitRepository.cs index f88dc751f..4fb1ade8e 100644 --- a/src/Fallout.Components/IHasGitRepository.cs +++ b/src/Fallout.Application.Components/IHasGitRepository.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Git; +using Fallout.Application; +using Fallout.Application.Git; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasGitRepository : IFalloutBuild { diff --git a/src/Fallout.Components/IHasGitVersion.cs b/src/Fallout.Application.Components/IHasGitVersion.cs similarity index 61% rename from src/Fallout.Components/IHasGitVersion.cs rename to src/Fallout.Application.Components/IHasGitVersion.cs index 7ae0e2e9e..81aa42d1f 100644 --- a/src/Fallout.Components/IHasGitVersion.cs +++ b/src/Fallout.Application.Components/IHasGitVersion.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Tools.GitVersion; +using Fallout.Application; +using Fallout.Application.Tools.GitVersion; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasGitVersion : IFalloutBuild { diff --git a/src/Fallout.Components/IHasNerdbankGitVersioning.cs b/src/Fallout.Application.Components/IHasNerdbankGitVersioning.cs similarity index 57% rename from src/Fallout.Components/IHasNerdbankGitVersioning.cs rename to src/Fallout.Application.Components/IHasNerdbankGitVersioning.cs index d3edcebfc..bf86acad9 100644 --- a/src/Fallout.Components/IHasNerdbankGitVersioning.cs +++ b/src/Fallout.Application.Components/IHasNerdbankGitVersioning.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Tools.NerdbankGitVersioning; +using Fallout.Application; +using Fallout.Application.Tools.NerdbankGitVersioning; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasNerdbankGitVersioning : IFalloutBuild { diff --git a/src/Fallout.Components/IHasReports.cs b/src/Fallout.Application.Components/IHasReports.cs similarity index 63% rename from src/Fallout.Components/IHasReports.cs rename to src/Fallout.Application.Components/IHasReports.cs index fe27dffc9..c3411fdb4 100644 --- a/src/Fallout.Components/IHasReports.cs +++ b/src/Fallout.Application.Components/IHasReports.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; +using Fallout.Kernel.IO; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasReports : IHasArtifacts { diff --git a/src/Fallout.Components/IHasSolution.cs b/src/Fallout.Application.Components/IHasSolution.cs similarity index 55% rename from src/Fallout.Components/IHasSolution.cs rename to src/Fallout.Application.Components/IHasSolution.cs index 8d5637319..013158d79 100644 --- a/src/Fallout.Components/IHasSolution.cs +++ b/src/Fallout.Application.Components/IHasSolution.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Solutions; +using Fallout.Application; +using Fallout.Application.Solutions; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IHasSolution : IFalloutBuild { diff --git a/src/Fallout.Components/IHasTwitterCredentials.cs b/src/Fallout.Application.Components/IHasTwitterCredentials.cs similarity index 85% rename from src/Fallout.Components/IHasTwitterCredentials.cs rename to src/Fallout.Application.Components/IHasTwitterCredentials.cs index acf1314b7..109c704fd 100644 --- a/src/Fallout.Components/IHasTwitterCredentials.cs +++ b/src/Fallout.Application.Components/IHasTwitterCredentials.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common; +using Fallout.Application; -namespace Fallout.Components; +namespace Fallout.Application.Components; [ParameterPrefix(Twitter)] public interface IHasTwitterCredentials : IFalloutBuild diff --git a/src/Fallout.Components/IPack.cs b/src/Fallout.Application.Components/IPack.cs similarity index 81% rename from src/Fallout.Components/IPack.cs rename to src/Fallout.Application.Components/IPack.cs index 9b3a66a4b..415773ae1 100644 --- a/src/Fallout.Components/IPack.cs +++ b/src/Fallout.Application.Components/IPack.cs @@ -1,14 +1,14 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IPack : ICompile, IHasArtifacts { diff --git a/src/Fallout.Components/IPublish.cs b/src/Fallout.Application.Components/IPublish.cs similarity index 94% rename from src/Fallout.Components/IPublish.cs rename to src/Fallout.Application.Components/IPublish.cs index 38a97d626..2d5ce881b 100644 --- a/src/Fallout.Components/IPublish.cs +++ b/src/Fallout.Application.Components/IPublish.cs @@ -3,15 +3,14 @@ using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.DotNet.DotNetTasks; - -namespace Fallout.Components; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; + +namespace Fallout.Application.Components; public interface IPublish : IPack, ITest { diff --git a/src/Fallout.Components/IReportCoverage.cs b/src/Fallout.Application.Components/IReportCoverage.cs similarity index 81% rename from src/Fallout.Components/IReportCoverage.cs rename to src/Fallout.Application.Components/IReportCoverage.cs index 5023fc79c..eb476c470 100644 --- a/src/Fallout.Components/IReportCoverage.cs +++ b/src/Fallout.Application.Components/IReportCoverage.cs @@ -1,18 +1,18 @@ -using System; +using System; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.Codecov; -using Fallout.Common.Tools.ReportGenerator; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.Codecov.CodecovTasks; -using static Fallout.Common.Tools.ReportGenerator.ReportGeneratorTasks; +using static Fallout.Application.Tools.Codecov.CodecovTasks; +using static Fallout.Application.Tools.ReportGenerator.ReportGeneratorTasks; +using Fallout.Application; +using Fallout.Application.Tools.Codecov; +using Fallout.Application.Tools.ReportGenerator; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Components; +using Fallout.Application.CI; +namespace Fallout.Application.Components; public interface IReportCoverage : ITest, IHasReports, IHasGitRepository { @@ -72,7 +72,7 @@ public interface IReportCoverage : ITest, IHasReports, IHasGitRepository void UploadCoverageData() { TestResultDirectory.GlobFiles("*.xml").ForEach(x => - AzurePipelines.Instance?.PublishCodeCoverage( + CiHost.AzurePipelines?.PublishCodeCoverage( AzurePipelinesCodeCoverageToolType.Cobertura, x, CoverageReportDirectory)); diff --git a/src/Fallout.Components/IRestore.cs b/src/Fallout.Application.Components/IRestore.cs similarity index 77% rename from src/Fallout.Components/IRestore.cs rename to src/Fallout.Application.Components/IRestore.cs index 5819fe98a..41a93180a 100644 --- a/src/Fallout.Components/IRestore.cs +++ b/src/Fallout.Application.Components/IRestore.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; -namespace Fallout.Components; +namespace Fallout.Application.Components; public interface IRestore : IHasSolution, IFalloutBuild { diff --git a/src/Fallout.Components/ISignPackages.cs b/src/Fallout.Application.Components/ISignPackages.cs similarity index 93% rename from src/Fallout.Components/ISignPackages.cs rename to src/Fallout.Application.Components/ISignPackages.cs index 2a3f8f003..8a88fa97c 100644 --- a/src/Fallout.Components/ISignPackages.cs +++ b/src/Fallout.Application.Components/ISignPackages.cs @@ -2,13 +2,14 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.SignPath.SignPathTasks; +using static Fallout.Application.Tools.SignPath.SignPathTasks; +using Fallout.Application; +using Fallout.Application.Tools.SignPath; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; -namespace Fallout.Components; +using Fallout.Application.CI; +namespace Fallout.Application.Components; ///

/// This component allows to easily sign NuGet packages with @@ -62,7 +63,7 @@ public record SignPathSettings( IEnumerable SignPathPackages { get; } bool SignPathReplacePackages => true; - private AppVeyor AppVeyor => AppVeyor.Instance; + private IAppVeyor AppVeyor => CiHost.AppVeyor; Target SignPackages => _ => _ .TryDependsOn() diff --git a/src/Fallout.Components/ITest.cs b/src/Fallout.Application.Components/ITest.cs similarity index 82% rename from src/Fallout.Components/ITest.cs rename to src/Fallout.Application.Components/ITest.cs index 537beb206..2c5ada7da 100644 --- a/src/Fallout.Components/ITest.cs +++ b/src/Fallout.Application.Components/ITest.cs @@ -1,21 +1,19 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.GitHubActions; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.Coverlet; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Tools.DotNet.DotNetTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Application.Tools.Coverlet; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Components; +using Fallout.Application.CI; +using Fallout.Application.Solutions; +namespace Fallout.Application.Components; public interface ITest : ICompile, IHasArtifacts { @@ -50,9 +48,9 @@ public interface ITest : ICompile, IHasArtifacts void ReportTestResults() { TestResultDirectory.GlobFiles("*.trx").ForEach(x => - AzurePipelines.Instance?.PublishTestResults( + CiHost.AzurePipelines?.PublishTestResults( type: AzurePipelinesTestResultsType.VSTest, - title: $"{Path.GetFileNameWithoutExtension(x)} ({AzurePipelines.Instance.StageDisplayName})", + title: $"{Path.GetFileNameWithoutExtension(x)} ({CiHost.AzurePipelines.StageDisplayName})", files: new string[] { x })); } @@ -87,7 +85,7 @@ IEnumerable GetOutcomes(AbsolutePath file) .EnableCollectCoverage() .SetCoverletOutputFormat(CoverletOutputFormat.cobertura) .SetExcludeByFile("*.Generated.cs") - .When(TeamCity.Instance is not null, _ => _ + .When(CiHost.TeamCity is not null, _ => _ .SetCoverletOutputFormat($"\\\"{CoverletOutputFormat.cobertura},{CoverletOutputFormat.teamcity}\\\"")) .When(IsServerBuild, _ => _ .EnableUseSourceLink())); @@ -95,10 +93,10 @@ IEnumerable GetOutcomes(AbsolutePath file) sealed Configure TestProjectSettingsBase => (_, v) => _ .SetProjectFile(v) // https://github.com/Tyrrrz/GitHubActionsTestLogger - .When(GitHubActions.Instance is not null && v.HasPackageReference("GitHubActionsTestLogger"), _ => _ + .When(CiHost.GitHubActions is not null && v.HasPackageReference("GitHubActionsTestLogger"), _ => _ .AddLoggers("GitHubActions;report-warnings=false")) // https://github.com/JetBrains/TeamCity.VSTest.TestAdapter - .When(TeamCity.Instance is not null && v.HasPackageReference("TeamCity.VSTest.TestAdapter"), _ => _ + .When(CiHost.TeamCity is not null && v.HasPackageReference("TeamCity.VSTest.TestAdapter"), _ => _ .AddLoggers("TeamCity") // https://github.com/xunit/visualstudio.xunit/pull/108 .AddRunSetting("RunConfiguration.NoAutoReporters", bool.TrueString)) diff --git a/src/Fallout.Components/PublishTarget.cs b/src/Fallout.Application.Components/PublishTarget.cs similarity index 98% rename from src/Fallout.Components/PublishTarget.cs rename to src/Fallout.Application.Components/PublishTarget.cs index 94cacabd8..4e56d404d 100644 --- a/src/Fallout.Components/PublishTarget.cs +++ b/src/Fallout.Application.Components/PublishTarget.cs @@ -5,7 +5,7 @@ using System.Text; using System.Text.RegularExpressions; -namespace Fallout.Components; +namespace Fallout.Application.Components; /// /// A routable publish destination: a package feed plus the rules deciding which diff --git a/src/Fallout.Application.Solutions/Fallout.Application.Solutions.csproj b/src/Fallout.Application.Solutions/Fallout.Application.Solutions.csproj new file mode 100644 index 000000000..4e500af97 --- /dev/null +++ b/src/Fallout.Application.Solutions/Fallout.Application.Solutions.csproj @@ -0,0 +1,14 @@ + + + + + netstandard2.0;net10.0 + Fallout's public API (model + ports) for working with .NET solution files. + + + + + + + diff --git a/src/Fallout.Application.Solutions/Model.cs b/src/Fallout.Application.Solutions/Model.cs new file mode 100644 index 000000000..e1fa7231a --- /dev/null +++ b/src/Fallout.Application.Solutions/Model.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.RegularExpressions; +using Fallout.Kernel.IO; +using Fallout.Kernel; + +namespace Fallout.Application.Solutions; + +public interface IProjectContainer +{ + IProjectContainer Parent { get; } + IReadOnlyCollection Projects { get; } + IReadOnlyCollection SolutionFolders { get; } +} + +public static class ProjectContainerExtensions +{ + public static SolutionFolder GetSolutionFolder(this IProjectContainer container, string name) + { + return container.SolutionFolders.SingleOrDefault(x => name.Equals(x.Name, StringComparison.Ordinal)); + } + + /// + /// Gets a project by its name. + /// + public static Project GetProject(this IProjectContainer container, string name) + { + return container.Projects.SingleOrDefault(x => name.Equals(x.Name, StringComparison.Ordinal)); + } +} + +public class Solution : IProjectContainer, IAbsolutePathHolder +{ + private readonly List _allProjects = new(); + private readonly List _allSolutionFolders = new(); + + /// + /// Constructs an (empty) solution. The project/folder tree is populated by the + /// reader (); the + /// is an opaque carrier for the underlying serializer + /// model so the solution can be saved back without the inner ring naming the + /// concrete (vendored) model type. + /// + protected internal Solution(AbsolutePath path = null, object handle = null) + { + Path = path; + Handle = handle; + } + + /// The opaque serializer model this solution was read from (null if constructed in-memory). + internal object Handle { get; } + + internal void AddProject(Project project) => _allProjects.Add(project); + internal void AddSolutionFolder(SolutionFolder folder) => _allSolutionFolders.Add(folder); + + public AbsolutePath Path { get; set; } + public string Name => Path?.NameWithoutExtension; + public string FileName => Path?.Name; + public AbsolutePath Directory => Path?.Parent; + + public IReadOnlyCollection AllProjects => _allProjects; + public IReadOnlyCollection AllSolutionFolders => _allSolutionFolders; + + IProjectContainer IProjectContainer.Parent => null; + public IReadOnlyCollection Projects => AllProjects.Where(x => x.Parent == this).ToList(); + public IReadOnlyCollection SolutionFolders => AllSolutionFolders.Where(x => x.Parent == this).ToList(); + + public static implicit operator string(Solution solution) => solution.Path; + public static implicit operator AbsolutePath(Solution solution) => solution.Path; + + public IEnumerable GetAllProjects(string wildcardPattern) + { + wildcardPattern = $"^{wildcardPattern}$"; + var regex = new Regex(wildcardPattern + .Replace(".", "\\.") + .Replace("*", ".*")); + return AllProjects.Where(x => regex.IsMatch(x.Name)); + } + + public void Save(AbsolutePath path = null) + { + Path = (path ?? Path).NotNull(); + SolutionServices.Serializer.Save(this, Path); + } +} + +public class SolutionItem +{ + private protected SolutionItem(string name, Solution solution) + { + Name = name; + Solution = solution; + } + + public string Name { get; } + + public Solution Solution { get; } + public IProjectContainer Parent { get; internal set; } + + public override string ToString() => Name; +} + +public class SolutionFolder : SolutionItem, IProjectContainer +{ + internal SolutionFolder(string name, Solution solution) + : base(name, solution) + { + } + + // Vestigial: strongly-typed folder subclasses (generated, in consumer assemblies) are + // reached via Unsafe.As and never actually constructed, but their declarations still + // need an accessible (cross-assembly => protected) base ctor to compile. + protected SolutionFolder() + : base(name: null, solution: null) + { + } + + public IReadOnlyCollection Projects => Solution.AllProjects.Where(x => x.Parent == this).ToList(); + public IReadOnlyCollection SolutionFolders => Solution.AllSolutionFolders.Where(x => x.Parent == this).ToList(); +} + +public class Project : SolutionItem, IAbsolutePathHolder +{ + internal Project(string name, string relativePath, Solution solution) + : base(name, solution) + { + RelativePath = relativePath; + } + + public string RelativePath { get; } + public AbsolutePath Path => Solution.Directory.NotNull() / RelativePath; + public string FileName => System.IO.Path.GetFileName(RelativePath); + public AbsolutePath Directory => Path?.Parent; + + public static implicit operator string(Project project) => project.Path; + public static implicit operator AbsolutePath(Project project) => project.Path; +} diff --git a/src/Fallout.Application.Solutions/ProjectQueryExtensions.cs b/src/Fallout.Application.Solutions/ProjectQueryExtensions.cs new file mode 100644 index 000000000..f09b98be7 --- /dev/null +++ b/src/Fallout.Application.Solutions/ProjectQueryExtensions.cs @@ -0,0 +1,16 @@ +using Fallout.Kernel.IO; + +namespace Fallout.Application.Solutions; + +// Application-ring conveniences over a Project that need impure MSBuild evaluation. They route through the +// IProjectEditor port (implemented in Fallout.ProjectModel) so the inner ring stays free of Microsoft.Build. +// The richer query surface (GetTargetFrameworks/GetItems/GetProperty/...) lives on the Infrastructure-side +// ProjectExtensions and is for consumers/tests that can reference the outer ring directly. +public static class ProjectQueryExtensions +{ + /// Indicates whether the project references the given package ID (a PackageReference item). + public static bool HasPackageReference(this Project project, string packageId) + { + return SolutionServices.Projects.HasPackageReference(project.Path, packageId); + } +} diff --git a/src/Fallout.Application.Solutions/SolutionModelExtensions.cs b/src/Fallout.Application.Solutions/SolutionModelExtensions.cs new file mode 100644 index 000000000..b2a4a0dad --- /dev/null +++ b/src/Fallout.Application.Solutions/SolutionModelExtensions.cs @@ -0,0 +1,17 @@ +using Fallout.Kernel.IO; + +namespace Fallout.Application.Solutions; + +public static class SolutionModelExtensions +{ + public static Solution ReadSolution(this AbsolutePath path) + { + return SolutionServices.Serializer.Open(path); + } + + public static Solution ReadSolution(this AbsolutePath path) + where T : Solution + { + return SolutionServices.Serializer.Open(path); + } +} diff --git a/src/Fallout.Application.Solutions/SolutionServices.cs b/src/Fallout.Application.Solutions/SolutionServices.cs new file mode 100644 index 000000000..70729c204 --- /dev/null +++ b/src/Fallout.Application.Solutions/SolutionServices.cs @@ -0,0 +1,55 @@ +using Fallout.Kernel.IO; + +namespace Fallout.Application.Solutions; + +// Ports for the impure solution/project I/O (ADR-0006, onion realignment step 5c). The Application ring +// (the Solution/Project model, [Solution] injection, build orchestration) depends only on these +// abstractions; the concrete adapters — the vendored .sln/.slnx serializers and the MSBuild project +// evaluator — live behind them and register into SolutionServices via module initializers. This is the +// inversion that keeps the model free of any concrete persistence/MSBuild dependency (the format-specific +// implementations are the "outside" of the onion; the abstract concept is here, inside). + +/// +/// Reads/writes a across the supported file formats (legacy .sln and the +/// XML .slnx). The concrete, format-specific serializers live in the Infrastructure adapter. +/// +public interface ISolutionSerializer +{ + /// Reads a solution file into the Fallout model. + Solution Open(AbsolutePath path); + + /// Reads a solution file into a strongly-typed solution subclass. + T Open(AbsolutePath path) where T : Solution; + + /// Writes a previously-read solution back to . + void Save(Solution solution, AbsolutePath path); +} + +/// +/// Reads/edits MSBuild project files (property evaluation + mutation). The concrete implementation lives in +/// Fallout.ProjectModel (the Microsoft.Build evaluator) — the impure "outside" of the onion. +/// +public interface IProjectEditor +{ + /// Evaluated value of the first of that is set, or null. + string GetProperty(AbsolutePath projectFile, params string[] propertyNames); + + /// Sets to on the project and saves it. + void SetProperty(AbsolutePath projectFile, string name, string value); + + /// Indicates whether the project references the given package ID (a PackageReference item). + bool HasPackageReference(AbsolutePath projectFile, string packageId); +} + +/// +/// Service locator holding the registered Infrastructure adapters for the solution/project ports. The +/// solution serializer is registered by a module initializer co-hosted in this assembly (so it is always +/// set once the model assembly loads). The project editor is registered from Fallout.ProjectModel when +/// that assembly loads (the CLI composition root / MSBuild bootstrapping pulls it in). Tests may swap +/// implementations directly. +/// +public static class SolutionServices +{ + public static ISolutionSerializer Serializer { get; set; } + public static IProjectEditor Projects { get; set; } +} diff --git a/src/Fallout.Tooling/ArgumentStringHandler.cs b/src/Fallout.Application.Tooling/ArgumentStringHandler.cs similarity index 95% rename from src/Fallout.Tooling/ArgumentStringHandler.cs rename to src/Fallout.Application.Tooling/ArgumentStringHandler.cs index db3542d21..f4a91f1c5 100644 --- a/src/Fallout.Tooling/ArgumentStringHandler.cs +++ b/src/Fallout.Application.Tooling/ArgumentStringHandler.cs @@ -1,13 +1,13 @@ -#if NET6_0_OR_GREATER +#if NET6_0_OR_GREATER using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; [InterpolatedStringHandler] public ref struct ArgumentStringHandler diff --git a/src/Fallout.Tooling/Configure.cs b/src/Fallout.Application.Tooling/Configure.cs similarity index 95% rename from src/Fallout.Tooling/Configure.cs rename to src/Fallout.Application.Tooling/Configure.cs index 15014593d..38ec3febc 100644 --- a/src/Fallout.Tooling/Configure.cs +++ b/src/Fallout.Application.Tooling/Configure.cs @@ -2,9 +2,9 @@ using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public delegate T Configure(T options); @@ -90,7 +90,7 @@ private static IReadOnlyCollection Invoke( finally { invocations - .Where(x => x.Options.ProcessOutputLogging ?? ProcessTasks.DefaultLogOutput) + .Where(x => x.Options.ProcessOutputLogging ?? ToolingServices.Process.DefaultLogOutput) .SelectMany(x => { var (_, logger, result, exception) = x; diff --git a/src/Fallout.Tooling/DelegateHelper.cs b/src/Fallout.Application.Tooling/DelegateHelper.cs similarity index 97% rename from src/Fallout.Tooling/DelegateHelper.cs rename to src/Fallout.Application.Tooling/DelegateHelper.cs index 5325f38b7..7d1b6fa87 100644 --- a/src/Fallout.Tooling/DelegateHelper.cs +++ b/src/Fallout.Application.Tooling/DelegateHelper.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text.Json; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public static class DelegateHelper { diff --git a/src/Fallout.Tooling/Enumeration.cs b/src/Fallout.Application.Tooling/Enumeration.cs similarity index 97% rename from src/Fallout.Tooling/Enumeration.cs rename to src/Fallout.Application.Tooling/Enumeration.cs index 1bc9711bb..c4bd3847a 100644 --- a/src/Fallout.Tooling/Enumeration.cs +++ b/src/Fallout.Application.Tooling/Enumeration.cs @@ -4,9 +4,9 @@ using System.Globalization; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; [AttributeUsage(AttributeTargets.Field)] public class EnumValueAttribute : Attribute diff --git a/src/Fallout.Tooling/EnumerationJsonConverter.cs b/src/Fallout.Application.Tooling/EnumerationJsonConverter.cs similarity index 97% rename from src/Fallout.Tooling/EnumerationJsonConverter.cs rename to src/Fallout.Application.Tooling/EnumerationJsonConverter.cs index 01ec7301a..3ff322b59 100644 --- a/src/Fallout.Tooling/EnumerationJsonConverter.cs +++ b/src/Fallout.Application.Tooling/EnumerationJsonConverter.cs @@ -3,9 +3,9 @@ using System.Globalization; using System.Text.Json; using System.Text.Json.Serialization; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Bridges subclasses across the System.Text.Json boundary. diff --git a/src/Fallout.Application.Tooling/Fallout.Application.Tooling.csproj b/src/Fallout.Application.Tooling/Fallout.Application.Tooling.csproj new file mode 100644 index 000000000..1d172f446 --- /dev/null +++ b/src/Fallout.Application.Tooling/Fallout.Application.Tooling.csproj @@ -0,0 +1,19 @@ + + + + + netstandard2.0;net10.0 + + + + + + + + + + + + + diff --git a/src/Fallout.Tooling/IProcess.cs b/src/Fallout.Application.Tooling/IProcess.cs similarity index 96% rename from src/Fallout.Tooling/IProcess.cs rename to src/Fallout.Application.Tooling/IProcess.cs index 09e7230c6..71471a765 100644 --- a/src/Fallout.Tooling/IProcess.cs +++ b/src/Fallout.Application.Tooling/IProcess.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Abstraction for . diff --git a/src/Fallout.Application.Tooling/IProcessRunner.cs b/src/Fallout.Application.Tooling/IProcessRunner.cs new file mode 100644 index 000000000..458871d3b --- /dev/null +++ b/src/Fallout.Application.Tooling/IProcessRunner.cs @@ -0,0 +1,16 @@ +using System; +using System.Diagnostics; + +namespace Fallout.Application.Tooling; + +/// +/// The process-execution port (ADR-0006 step 3). Abstracts the single impure step of running a tool — +/// spawning an OS process — so the tooling vocabulary (, the generated +/// wrappers) stays pure and side-effect-free, and builds become unit-testable by swapping in a fake +/// runner via ProcessTasks.Runner. The default adapter is SystemProcessRunner (both in the +/// outer Fallout.Infrastructure.Tooling ring). +/// +public interface IProcessRunner +{ + IProcess Start(ProcessStartInfo startInfo, int? timeout, Action logger, Func outputFilter); +} diff --git a/src/Fallout.Tooling/ObjectFromFieldConverter.cs b/src/Fallout.Application.Tooling/ObjectFromFieldConverter.cs similarity index 96% rename from src/Fallout.Tooling/ObjectFromFieldConverter.cs rename to src/Fallout.Application.Tooling/ObjectFromFieldConverter.cs index bd34b33f7..351989ac1 100644 --- a/src/Fallout.Tooling/ObjectFromFieldConverter.cs +++ b/src/Fallout.Application.Tooling/ObjectFromFieldConverter.cs @@ -3,9 +3,9 @@ using System.Reflection; using System.Text.Json; using System.Text.Json.Serialization; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Redirects (de)serialization of a type through one of its non-public fields. diff --git a/src/Fallout.Tooling/Options.Apply.cs b/src/Fallout.Application.Tooling/Options.Apply.cs similarity index 95% rename from src/Fallout.Tooling/Options.Apply.cs rename to src/Fallout.Application.Tooling/Options.Apply.cs index a722484a7..9230fbec7 100644 --- a/src/Fallout.Tooling/Options.Apply.cs +++ b/src/Fallout.Application.Tooling/Options.Apply.cs @@ -1,6 +1,6 @@ using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class OptionsExtensions { diff --git a/src/Fallout.Tooling/Options.Combinatorial.cs b/src/Fallout.Application.Tooling/Options.Combinatorial.cs similarity index 98% rename from src/Fallout.Tooling/Options.Combinatorial.cs rename to src/Fallout.Application.Tooling/Options.Combinatorial.cs index c432334c9..a198aa16f 100644 --- a/src/Fallout.Tooling/Options.Combinatorial.cs +++ b/src/Fallout.Application.Tooling/Options.Combinatorial.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class OptionsExtensions { diff --git a/src/Fallout.Tooling/Options.Modify.cs b/src/Fallout.Application.Tooling/Options.Modify.cs similarity index 96% rename from src/Fallout.Tooling/Options.Modify.cs rename to src/Fallout.Application.Tooling/Options.Modify.cs index f07079db2..e17e4e85b 100644 --- a/src/Fallout.Tooling/Options.Modify.cs +++ b/src/Fallout.Application.Tooling/Options.Modify.cs @@ -1,7 +1,7 @@ using System; using System.Text.Json; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public static partial class OptionsExtensions { diff --git a/src/Fallout.Tooling/Options.When.cs b/src/Fallout.Application.Tooling/Options.When.cs similarity index 93% rename from src/Fallout.Tooling/Options.When.cs rename to src/Fallout.Application.Tooling/Options.When.cs index c5efce54a..d6891e878 100644 --- a/src/Fallout.Tooling/Options.When.cs +++ b/src/Fallout.Application.Tooling/Options.When.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class OptionsExtensions { diff --git a/src/Fallout.Tooling/Options.cs b/src/Fallout.Application.Tooling/Options.cs similarity index 98% rename from src/Fallout.Tooling/Options.cs rename to src/Fallout.Application.Tooling/Options.cs index 7976f1b65..116b1a035 100644 --- a/src/Fallout.Tooling/Options.cs +++ b/src/Fallout.Application.Tooling/Options.cs @@ -7,10 +7,10 @@ using System.Text.Json; using System.Text.Json.Nodes; using System.Text.Json.Serialization; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public interface IOptions { diff --git a/src/Fallout.Tooling/Output.cs b/src/Fallout.Application.Tooling/Output.cs similarity index 64% rename from src/Fallout.Tooling/Output.cs rename to src/Fallout.Application.Tooling/Output.cs index 08d165a05..92fd6ff2d 100644 --- a/src/Fallout.Tooling/Output.cs +++ b/src/Fallout.Application.Tooling/Output.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public struct Output { diff --git a/src/Fallout.Tooling/OutputType.cs b/src/Fallout.Application.Tooling/OutputType.cs similarity index 55% rename from src/Fallout.Tooling/OutputType.cs rename to src/Fallout.Application.Tooling/OutputType.cs index 034f48fde..a63a5fcb1 100644 --- a/src/Fallout.Tooling/OutputType.cs +++ b/src/Fallout.Application.Tooling/OutputType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public enum OutputType { diff --git a/src/Fallout.Tooling/ProcessException.cs b/src/Fallout.Application.Tooling/ProcessException.cs similarity index 93% rename from src/Fallout.Tooling/ProcessException.cs rename to src/Fallout.Application.Tooling/ProcessException.cs index aaa8a9c1f..96a33823f 100644 --- a/src/Fallout.Tooling/ProcessException.cs +++ b/src/Fallout.Application.Tooling/ProcessException.cs @@ -3,12 +3,12 @@ using System.Linq; using System.Runtime.Serialization; using System.Text; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; using Serilog.Events; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; [Serializable] public class ProcessException : Exception diff --git a/src/Fallout.Tooling/ProcessExtensions.cs b/src/Fallout.Application.Tooling/ProcessExtensions.cs similarity index 95% rename from src/Fallout.Tooling/ProcessExtensions.cs rename to src/Fallout.Application.Tooling/ProcessExtensions.cs index 40be83ec9..de9f5065d 100644 --- a/src/Fallout.Tooling/ProcessExtensions.cs +++ b/src/Fallout.Application.Tooling/ProcessExtensions.cs @@ -3,9 +3,9 @@ using System.Linq; using System.Text.Json; using System.Text.Json.Nodes; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; [DebuggerStepThrough] [DebuggerNonUserCode] diff --git a/src/Fallout.Tooling/Tool.cs b/src/Fallout.Application.Tooling/Tool.cs similarity index 95% rename from src/Fallout.Tooling/Tool.cs rename to src/Fallout.Application.Tooling/Tool.cs index 83d70f870..327f6e053 100644 --- a/src/Fallout.Tooling/Tool.cs +++ b/src/Fallout.Application.Tooling/Tool.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; #if NET6_0_OR_GREATER public delegate IReadOnlyCollection Tool( diff --git a/src/Fallout.Tooling/ToolOptions.Arguments.cs b/src/Fallout.Application.Tooling/ToolOptions.Arguments.cs similarity index 99% rename from src/Fallout.Tooling/ToolOptions.Arguments.cs rename to src/Fallout.Application.Tooling/ToolOptions.Arguments.cs index 570f05e91..302a60413 100644 --- a/src/Fallout.Tooling/ToolOptions.Arguments.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.Arguments.cs @@ -4,10 +4,10 @@ using System.Reflection; using System.Text.Json; using System.Text.Json.Nodes; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class CommandAttribute : Attribute { diff --git a/src/Fallout.Tooling/ToolOptions.ExitHandler.cs b/src/Fallout.Application.Tooling/ToolOptions.ExitHandler.cs similarity index 68% rename from src/Fallout.Tooling/ToolOptions.ExitHandler.cs rename to src/Fallout.Application.Tooling/ToolOptions.ExitHandler.cs index 9c74d30f6..a39102b00 100644 --- a/src/Fallout.Tooling/ToolOptions.ExitHandler.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.ExitHandler.cs @@ -1,6 +1,6 @@ -using System; +using System; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolOptions { diff --git a/src/Fallout.Tooling/ToolOptions.Logger.cs b/src/Fallout.Application.Tooling/ToolOptions.Logger.cs similarity index 83% rename from src/Fallout.Tooling/ToolOptions.Logger.cs rename to src/Fallout.Application.Tooling/ToolOptions.Logger.cs index cb4718525..5a9fb3e46 100644 --- a/src/Fallout.Tooling/ToolOptions.Logger.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.Logger.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolOptions { diff --git a/src/Fallout.Tooling/ToolOptions.Properties.Dropin.cs b/src/Fallout.Application.Tooling/ToolOptions.Properties.Dropin.cs similarity index 98% rename from src/Fallout.Tooling/ToolOptions.Properties.Dropin.cs rename to src/Fallout.Application.Tooling/ToolOptions.Properties.Dropin.cs index 20a0a7f69..6922926e3 100644 --- a/src/Fallout.Tooling/ToolOptions.Properties.Dropin.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.Properties.Dropin.cs @@ -1,8 +1,8 @@ -using System; +using System; // ReSharper disable ArrangeMethodOrOperatorBody -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolOptionsExtensions { diff --git a/src/Fallout.Tooling/ToolOptions.Properties.cs b/src/Fallout.Application.Tooling/ToolOptions.Properties.cs similarity index 99% rename from src/Fallout.Tooling/ToolOptions.Properties.cs rename to src/Fallout.Application.Tooling/ToolOptions.Properties.cs index f9e89f492..38a2b0669 100644 --- a/src/Fallout.Tooling/ToolOptions.Properties.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.Properties.cs @@ -4,7 +4,7 @@ using Serilog.Events; // ReSharper disable ArrangeMethodOrOperatorBody -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolOptions { diff --git a/src/Fallout.Tooling/ToolOptions.Secrets.cs b/src/Fallout.Application.Tooling/ToolOptions.Secrets.cs similarity index 91% rename from src/Fallout.Tooling/ToolOptions.Secrets.cs rename to src/Fallout.Application.Tooling/ToolOptions.Secrets.cs index 6ae4bea60..ad89f5f8e 100644 --- a/src/Fallout.Tooling/ToolOptions.Secrets.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.Secrets.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolOptions { diff --git a/src/Fallout.Tooling/ToolOptions.cs b/src/Fallout.Application.Tooling/ToolOptions.cs similarity index 90% rename from src/Fallout.Tooling/ToolOptions.cs rename to src/Fallout.Application.Tooling/ToolOptions.cs index 800baf838..02fabd151 100644 --- a/src/Fallout.Tooling/ToolOptions.cs +++ b/src/Fallout.Application.Tooling/ToolOptions.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; // TODO: rename to TaskOptions / CommandOptions ? public abstract partial class ToolOptions : Options diff --git a/src/Fallout.Tooling/ToolRequirement.cs b/src/Fallout.Application.Tooling/ToolRequirement.cs similarity index 73% rename from src/Fallout.Tooling/ToolRequirement.cs rename to src/Fallout.Application.Tooling/ToolRequirement.cs index 21e591c3e..4de4b8b04 100644 --- a/src/Fallout.Tooling/ToolRequirement.cs +++ b/src/Fallout.Application.Tooling/ToolRequirement.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public interface IRequireTool; public interface IRequireToolWithVersion; @@ -26,13 +26,13 @@ public class PathToolRequirement(string pathExecutable) : ToolRequirement public class NuGetPackageRequirement(string packageId, string version = null) : ToolRequirement { public string PackageId { get; init; } = packageId; - public string Version { get; init; } = version ?? NuGetVersionResolver.GetLatestVersion(packageId, includePrereleases: false).GetAwaiter().GetResult(); + public string Version { get; init; } = version ?? ToolingServices.Versions.GetLatestNuGetVersion(packageId, includePrereleases: false).GetAwaiter().GetResult(); } public class NpmPackageRequirement(string packageId, string version = null) : ToolRequirement { public string PackageId { get; init; } = packageId; - public string Version { get; init; } = version ?? NpmVersionResolver.GetLatestVersion(packageId).GetAwaiter().GetResult(); + public string Version { get; init; } = version ?? ToolingServices.Versions.GetLatestNpmVersion(packageId).GetAwaiter().GetResult(); } public class AptGetPackageRequirement(string packageId) : ToolRequirement diff --git a/src/Fallout.Tooling/ToolResolver.cs b/src/Fallout.Application.Tooling/ToolResolver.cs similarity index 62% rename from src/Fallout.Tooling/ToolResolver.cs rename to src/Fallout.Application.Tooling/ToolResolver.cs index c3b0c406f..833c64aca 100644 --- a/src/Fallout.Tooling/ToolResolver.cs +++ b/src/Fallout.Application.Tooling/ToolResolver.cs @@ -1,31 +1,32 @@ using System; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public static class ToolResolver { public static Tool GetTool(string toolPath) { Assert.FileExists(toolPath); - return new ToolExecutor(toolPath).Execute; + return ToolingServices.Process.GetTool(toolPath); } public static Tool GetNuGetTool(string packageId, string packageExecutable, string version = null, string framework = null) { - var toolPath = NuGetToolPathResolver.GetPackageExecutable(packageId, packageExecutable, version, framework); + var toolPath = ToolingServices.ToolPaths.GetPackageExecutable(packageId, packageExecutable, version, framework); return GetTool(toolPath); } public static Tool GetNpmTool(string npmExecutable) { - var toolPath = NpmToolPathResolver.GetNpmExecutable(npmExecutable); + var toolPath = ToolingServices.ToolPaths.GetNpmExecutable(npmExecutable); return GetTool(toolPath); } public static Tool TryGetEnvironmentTool(string name) { - var toolPath = ToolPathResolver.TryGetEnvironmentExecutable($"{name.ToUpperInvariant()}_EXE"); + var toolPath = ToolingServices.ToolPaths.TryGetEnvironmentExecutable($"{name.ToUpperInvariant()}_EXE"); if (toolPath == null) return null; @@ -34,7 +35,7 @@ public static Tool TryGetEnvironmentTool(string name) public static Tool GetPathTool(string name) { - var toolPath = ToolPathResolver.GetPathExecutable(name); + var toolPath = ToolingServices.ToolPaths.GetPathExecutable(name); return GetTool(toolPath); } diff --git a/src/Fallout.Tooling/ToolTasks.ExitHandler.cs b/src/Fallout.Application.Tooling/ToolTasks.ExitHandler.cs similarity index 93% rename from src/Fallout.Tooling/ToolTasks.ExitHandler.cs rename to src/Fallout.Application.Tooling/ToolTasks.ExitHandler.cs index f2dc6d02f..90bfa2ccf 100644 --- a/src/Fallout.Tooling/ToolTasks.ExitHandler.cs +++ b/src/Fallout.Application.Tooling/ToolTasks.ExitHandler.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public abstract partial class ToolTasks { diff --git a/src/Fallout.Tooling/ToolTasks.Logger.cs b/src/Fallout.Application.Tooling/ToolTasks.Logger.cs similarity index 95% rename from src/Fallout.Tooling/ToolTasks.Logger.cs rename to src/Fallout.Application.Tooling/ToolTasks.Logger.cs index c15691ae2..c55a5d372 100644 --- a/src/Fallout.Tooling/ToolTasks.Logger.cs +++ b/src/Fallout.Application.Tooling/ToolTasks.Logger.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Linq; using System.Reflection; using System.Text.RegularExpressions; -using Fallout.Common.Utilities; using Serilog; using Serilog.Events; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LogErrorAsStandard : Attribute; diff --git a/src/Fallout.Tooling/ToolTasks.Run.cs b/src/Fallout.Application.Tooling/ToolTasks.Run.cs similarity index 93% rename from src/Fallout.Tooling/ToolTasks.Run.cs rename to src/Fallout.Application.Tooling/ToolTasks.Run.cs index 1baad0f74..e04c06e00 100644 --- a/src/Fallout.Tooling/ToolTasks.Run.cs +++ b/src/Fallout.Application.Tooling/ToolTasks.Run.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; partial class ToolTasks { @@ -17,7 +17,7 @@ protected virtual partial IReadOnlyCollection Run(T options) string Filter(string text) => secrets.Aggregate(text, (str, s) => str.Replace(s, "[REDACTED]")); options = PreProcess(options); - using var process = ProcessTasks.StartProcess( + using var process = ToolingServices.Process.StartProcess( GetToolPathInternal(options), options.GetArguments().JoinSpace(), options.ProcessWorkingDirectory, @@ -89,7 +89,7 @@ protected virtual IProcess StartProcess( Action logger, Func outputFilter = null) { - return ProcessTasks.StartProcess( + return ToolingServices.Process.StartProcess( GetToolPathInternal(), arguments, workingDirectory, diff --git a/src/Fallout.Tooling/ToolTasks.ToolPath.cs b/src/Fallout.Application.Tooling/ToolTasks.ToolPath.cs similarity index 88% rename from src/Fallout.Tooling/ToolTasks.ToolPath.cs rename to src/Fallout.Application.Tooling/ToolTasks.ToolPath.cs index 26a71c2ad..8c6033d9a 100644 --- a/src/Fallout.Tooling/ToolTasks.ToolPath.cs +++ b/src/Fallout.Application.Tooling/ToolTasks.ToolPath.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// Marks a class as CLI tool wrapper. [AttributeUsage(AttributeTargets.Class)] @@ -19,7 +19,7 @@ protected internal string GetToolPathInternal(ToolOptions options = null) if (options?.ProcessToolPath != null) return options.ProcessToolPath; - if (ToolPathResolver.TryGetEnvironmentExecutable(ToolPathOverrideVariableName) is { } environmentExecutable) + if (ToolingServices.ToolPaths.TryGetEnvironmentExecutable(ToolPathOverrideVariableName) is { } environmentExecutable) return environmentExecutable; return GetToolPath(options); @@ -59,7 +59,7 @@ public class PathToolAttribute : ToolAttribute internal override string GetToolPath(ToolOptions options) { - return ToolPathResolver.GetPathExecutable(Executable); + return ToolingServices.ToolPaths.GetPathExecutable(Executable); } internal override ToolRequirement GetRequirement(string version = null) @@ -75,7 +75,7 @@ public class NpmToolAttribute : ToolAttribute internal override string GetToolPath(ToolOptions options) { - return NpmToolPathResolver.GetNpmExecutable(Executable); + return ToolingServices.ToolPaths.GetNpmExecutable(Executable); } internal override ToolRequirement GetRequirement(string version = null) @@ -108,7 +108,7 @@ internal override string GetToolPath(ToolOptions options) { // ReSharper disable once SuspiciousTypeConversion.Global var framework = (options as IToolOptionsWithFramework)?.Framework; - return NuGetToolPathResolver.GetPackageExecutable(Id, Executable, framework: framework); + return ToolingServices.ToolPaths.GetPackageExecutable(Id, Executable, framework: framework); } internal override ToolRequirement GetRequirement(string version = null) diff --git a/src/Fallout.Tooling/ToolTasks.cs b/src/Fallout.Application.Tooling/ToolTasks.cs similarity index 94% rename from src/Fallout.Tooling/ToolTasks.cs rename to src/Fallout.Application.Tooling/ToolTasks.cs index 3bd6fb0bc..226978b24 100644 --- a/src/Fallout.Tooling/ToolTasks.cs +++ b/src/Fallout.Application.Tooling/ToolTasks.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public abstract partial class ToolTasks { diff --git a/src/Fallout.Application.Tooling/ToolingServices.cs b/src/Fallout.Application.Tooling/ToolingServices.cs new file mode 100644 index 000000000..118fa3cc8 --- /dev/null +++ b/src/Fallout.Application.Tooling/ToolingServices.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Fallout.Kernel.IO; + +namespace Fallout.Application.Tooling; + +// Ports for the impure tool-execution services (ADR-0006, onion realignment). The Application ring (tool +// wrappers, ToolTasks, ToolResolver, requirement/version attributes, build orchestration) depends only on +// these abstractions; the concrete process/resolver implementations live in Fallout.Infrastructure.Tooling +// and register adapters into ToolingServices via a module initializer. This is the inversion that lets the +// Application ring stay free of any Fallout.Infrastructure.* dependency (guarded by a fitness test). + +/// Process-execution facade — runs tools/shells and turns a tool path into a . +public interface IProcessExecutor +{ + IProcess StartProcess( + string toolPath, + string arguments = null, + string workingDirectory = null, + IReadOnlyDictionary environmentVariables = null, + int? timeout = null, + bool? logOutput = null, + bool? logInvocation = null, + Action logger = null, + Func outputFilter = null); + + IProcess StartShell( + string command, + string workingDirectory = null, + IReadOnlyDictionary environmentVariables = null, + int? timeout = null, + bool? logOutput = null, + bool? logInvocation = null, + Action logger = null, + Func outputFilter = null); + + void CheckPathEnvironmentVariable(); + bool DefaultLogOutput { get; } + + /// Wraps a resolved tool path into an executable delegate. + Tool GetTool(string toolPath); +} + +/// Tool/package path resolution + the resolver configuration the build pushes in. +public interface IToolPathResolver +{ + string TryGetEnvironmentExecutable(string environmentExecutable); + string GetPathExecutable(string pathExecutable); + string GetPackageExecutable(string packageId, string packageExecutable, string version = null, string framework = null); + string GetNpmExecutable(string npmExecutable); + AbsolutePath GetNuGetPackagesDirectory(); + string GetPackagesConfigFile(string projectDirectory); + + // Configuration the build manager / requirement service push into the resolvers at build start. + string EmbeddedPackagesDirectory { set; } + string NuGetPackagesConfigFile { get; set; } + string NuGetAssetsConfigFile { set; } + AbsolutePath NpmPackageJsonFile { set; } +} + +/// Latest-version lookups (NuGet/npm registries). +public interface IToolVersionResolver +{ + Task GetLatestNuGetVersion(string packageId, bool includePrereleases, bool includeUnlisted = false); + Task GetLatestNpmVersion(string packageId); +} + +/// +/// Service locator holding the registered Infrastructure adapters for the tool-execution ports. Populated by +/// a module initializer in Fallout.Infrastructure.Tooling (same assembly), so it is set before any Application +/// code runs. Tests may swap implementations directly. +/// +public static class ToolingServices +{ + public static IProcessExecutor Process { get; set; } + public static IToolPathResolver ToolPaths { get; set; } + public static IToolVersionResolver Versions { get; set; } +} diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVault.cs similarity index 97% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVault.cs index 83f1e81ab..ba29de6a1 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVault.cs @@ -1,13 +1,13 @@ -using System; +using System; using System.Linq; using System.Threading.Tasks; using Azure.Identity; using Azure.Security.KeyVault.Certificates; using Azure.Security.KeyVault.Keys; using Azure.Security.KeyVault.Secrets; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { public partial class AzureKeyVaultConfiguration { diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttribute.cs similarity index 87% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttribute.cs index 13ad2ab0a..b71f70ebf 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttribute.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Reflection; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { /// Attribute to obtain the KeyVault defined by to retrieve multiple items. public class AzureKeyVaultAttribute : AzureKeyVaultAttributeBase diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs similarity index 92% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs index c77a8f02e..7147b0fd1 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs @@ -1,9 +1,11 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.ValueInjection; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { public abstract class AzureKeyVaultAttributeBase : ParameterAttribute { diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificate.cs similarity index 82% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificate.cs index 1e99a96ed..d6ca73888 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificate.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { public class AzureKeyVaultCertificate { diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs similarity index 94% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs index a0b5258f3..34d676c22 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Reflection; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { /// Attribute to obtain a certificates from from the Azure KeyVault defined by . public class AzureKeyVaultCertificateAttribute : AzureKeyVaultAttributeBase diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs similarity index 97% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs index 1736b355a..a1fe208f1 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.ValueInjection; using Serilog; +using Fallout.Application.ValueInjection; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { /// Defines where the KeyVault login details can be found. public class AzureKeyVaultConfigurationAttribute : ValueInjectionAttributeBase diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKey.cs similarity index 76% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKey.cs index d0da5e314..307ec5a4a 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKey.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using Azure.Security.KeyVault.Keys; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { public class AzureKeyVaultKey { diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs similarity index 91% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs index d9e2f3cd6..5322c05a3 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Reflection; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { /// Attribute to obtain a key from from the Azure KeyVault defined by . public class AzureKeyVaultKeyAttribute : AzureKeyVaultAttributeBase diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs similarity index 89% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs index 507c74639..f5fcfccc5 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; using System.Reflection; +using Fallout.Application; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { /// Attribute to obtain a secret from the Azure KeyVault defined by . public class AzureKeyVaultSecretAttribute : AzureKeyVaultAttributeBase diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultTasks.cs similarity index 95% rename from src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs rename to src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultTasks.cs index b4a6bfb35..d30f9a92f 100644 --- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs +++ b/src/Fallout.Application.Tools/AzureKeyVault/AzureKeyVaultTasks.cs @@ -1,7 +1,8 @@ -using System; +using System; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Tools.AzureKeyVault +namespace Fallout.Application.Tools.AzureKeyVault { public static class AzureKeyVaultTasks { diff --git a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs b/src/Fallout.Application.Tools/AzureSignTool/AzureSignTool.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs rename to src/Fallout.Application.Tools/AzureSignTool/AzureSignTool.Generated.cs index 12db5a322..7675ae299 100644 --- a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs +++ b/src/Fallout.Application.Tools/AzureSignTool/AzureSignTool.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.AzureSignTool; +namespace Fallout.Application.Tools.AzureSignTool; ///

Azure Sign Tool is similar to signtool in the Windows SDK, with the major difference being that it uses Azure Key Vault for performing the signing process. The usage is like signtool, except with a limited set of options for signing and options for authenticating to Azure Key Vault.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +25,13 @@ public partial class AzureSignToolTasks : ToolTasks, IRequireNuGetPackage ///

Azure Sign Tool is similar to signtool in the Windows SDK, with the major difference being that it uses Azure Key Vault for performing the signing process. The usage is like signtool, except with a limited set of options for signing and options for authenticating to Azure Key Vault.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <files> via
  • --additional-certificates via
  • --azure-key-vault-accesstoken via
  • --azure-key-vault-certificate via
  • --azure-key-vault-client-id via
  • --azure-key-vault-client-secret via
  • --azure-key-vault-managed-identity via
  • --azure-key-vault-tenant-id via
  • --azure-key-vault-url via
  • --continue-on-error via
  • --description via
  • --description-url via
  • --file-digest via
  • --input-file-list via
  • --max-degree-of-parallelism via
  • --no-page-hashing via
  • --page-hashing via
  • --quiet via
  • --skip-signed via
  • --timestamp-authenticode via
  • --timestamp-digest via
  • --timestamp-rfc3161 via
  • --verbose via
public static IReadOnlyCollection AzureSignTool(AzureSignToolSettings options = null) => new AzureSignToolTasks().Run(options); - /// + /// public static IReadOnlyCollection AzureSignTool(Configure configurator) => new AzureSignToolTasks().Run(configurator.Invoke(new AzureSignToolSettings())); - /// + /// public static IEnumerable<(AzureSignToolSettings Settings, IReadOnlyCollection Output)> AzureSignTool(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(AzureSignTool, degreeOfParallelism, completeOnFailure); } #region AzureSignToolSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(AzureSignToolTasks), Command = nameof(AzureSignToolTasks.AzureSignTool), Arguments = "sign")] public partial class AzureSignToolSettings : ToolOptions @@ -89,7 +85,7 @@ public partial class AzureSignToolSettings : ToolOptions } #endregion #region AzureSignToolSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class AzureSignToolSettingsExtensions { diff --git a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.json b/src/Fallout.Application.Tools/AzureSignTool/AzureSignTool.json similarity index 100% rename from src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.json rename to src/Fallout.Application.Tools/AzureSignTool/AzureSignTool.json diff --git a/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs b/src/Fallout.Application.Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs rename to src/Fallout.Application.Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs index d7bf92b63..e61714235 100644 --- a/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs +++ b/src/Fallout.Application.Tools/BenchmarkDotNet/BenchmarkDotNet.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.BenchmarkDotNet; +namespace Fallout.Application.Tools.BenchmarkDotNet; ///

Powerful .NET library for benchmarking

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class BenchmarkDotNetTasks : ToolTasks, IRequireNuGetPackage ///

Powerful .NET library for benchmarking

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <assemblyFile> via
  • --affinity via
  • --allCategories via
  • --allStats via
  • --anyCategories via
  • --artifacts via
  • --attribute via
  • --buildTimeout via
  • --cli via
  • --clrVersion via
  • --coreRtVersion via
  • --coreRun via
  • --counters via
  • --disableLogFile via
  • --disasm via
  • --disasmDepth via
  • --disasmDiff via
  • --exporters via
  • --filter via
  • --ilcPath via
  • --info via
  • --inProcess via
  • --invocationCount via
  • --iterationCount via
  • --iterationTime via
  • --job via
  • --join via
  • --keepFiles via
  • --launchCount via
  • --list via
  • --maxIterationCount via
  • --maxWarmupCount via
  • --maxWidth via
  • --memory via
  • --minIterationCount via
  • --minWarmupCount via
  • --monoPath via
  • --noOverwrite via
  • --outliers via
  • --packages via
  • --profiler via
  • --runOncePerIteration via
  • --runtimes via
  • --statisticalTest via
  • --stopOnFirstError via
  • --strategy via
  • --threading via
  • --unrollFactor via
  • --warmupCount via
public static IReadOnlyCollection BenchmarkDotNet(BenchmarkDotNetSettings options = null) => new BenchmarkDotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection BenchmarkDotNet(Configure configurator) => new BenchmarkDotNetTasks().Run(configurator.Invoke(new BenchmarkDotNetSettings())); - /// + /// public static IEnumerable<(BenchmarkDotNetSettings Settings, IReadOnlyCollection Output)> BenchmarkDotNet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(BenchmarkDotNet, degreeOfParallelism, completeOnFailure); } #region BenchmarkDotNetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(BenchmarkDotNetTasks), Command = nameof(BenchmarkDotNetTasks.BenchmarkDotNet))] public partial class BenchmarkDotNetSettings : ToolOptions @@ -141,7 +136,7 @@ public partial class BenchmarkDotNetSettings : ToolOptions } #endregion #region BenchmarkDotNetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class BenchmarkDotNetSettingsExtensions { diff --git a/src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.json b/src/Fallout.Application.Tools/BenchmarkDotNet/BenchmarkDotNet.json similarity index 100% rename from src/Fallout.Common/Tools/BenchmarkDotNet/BenchmarkDotNet.json rename to src/Fallout.Application.Tools/BenchmarkDotNet/BenchmarkDotNet.json diff --git a/src/Fallout.Common/Tools/Boots/Boots.Generated.cs b/src/Fallout.Application.Tools/Boots/Boots.Generated.cs similarity index 95% rename from src/Fallout.Common/Tools/Boots/Boots.Generated.cs rename to src/Fallout.Application.Tools/Boots/Boots.Generated.cs index 9895638dd..6c323c4b9 100644 --- a/src/Fallout.Common/Tools/Boots/Boots.Generated.cs +++ b/src/Fallout.Application.Tools/Boots/Boots.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Boots/Boots.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Boots; +namespace Fallout.Application.Tools.Boots; ///

boots is a .NET global tool for bootstrapping vsix and pkg files.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class BootsTasks : ToolTasks, IRequireNuGetPackage ///

boots is a .NET global tool for bootstrapping vsix and pkg files.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --file-type via
  • --preview via
  • --read-write-timeout via
  • --retries via
  • --stable via
  • --timeout via
  • --url via
  • --version via
public static IReadOnlyCollection Boots(BootsSettings options = null) => new BootsTasks().Run(options); - /// + /// public static IReadOnlyCollection Boots(Configure configurator) => new BootsTasks().Run(configurator.Invoke(new BootsSettings())); - /// + /// public static IEnumerable<(BootsSettings Settings, IReadOnlyCollection Output)> Boots(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Boots, degreeOfParallelism, completeOnFailure); } #region BootsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(BootsTasks), Command = nameof(BootsTasks.Boots))] public partial class BootsSettings : ToolOptions @@ -59,7 +54,7 @@ public partial class BootsSettings : ToolOptions } #endregion #region BootsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class BootsSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Boots/Boots.json b/src/Fallout.Application.Tools/Boots/Boots.json similarity index 100% rename from src/Fallout.Common/Tools/Boots/Boots.json rename to src/Fallout.Application.Tools/Boots/Boots.json diff --git a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs b/src/Fallout.Application.Tools/ChangeLogTasks.cs similarity index 98% rename from src/Fallout.Common/ChangeLog/ChangeLogTasks.cs rename to src/Fallout.Application.Tools/ChangeLogTasks.cs index 473da0562..e9041934a 100644 --- a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs +++ b/src/Fallout.Application.Tools/ChangeLogTasks.cs @@ -3,14 +3,15 @@ using System.Diagnostics; using System.Linq; using NuGet.Versioning; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application.Git; +using Fallout.Application; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel; +using Fallout.Kernel.IO; // ReSharper disable ArgumentsStyleLiteral -namespace Fallout.Common.ChangeLog; +namespace Fallout.Application.ChangeLog; public static class ChangelogTasks { diff --git a/src/Fallout.Common/Tools/Chocolatey/Chocolatey.Generated.cs b/src/Fallout.Application.Tools/Chocolatey/Chocolatey.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/Chocolatey/Chocolatey.Generated.cs rename to src/Fallout.Application.Tools/Chocolatey/Chocolatey.Generated.cs index a3d3d9ec7..8b5500e96 100644 --- a/src/Fallout.Common/Tools/Chocolatey/Chocolatey.Generated.cs +++ b/src/Fallout.Application.Tools/Chocolatey/Chocolatey.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Chocolatey/Chocolatey.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Chocolatey; +namespace Fallout.Application.Tools.Chocolatey; ///

Chocolatey has the largest online registry of Windows packages. Chocolatey packages encapsulate everything required to manage a particular piece of software into one deployment artifact by wrapping installers, executables, zips, and/or scripts into a compiled package file.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,55 +24,55 @@ public partial class ChocolateyTasks : ToolTasks, IRequirePathTool ///

Searches remote or local packages (alias for list).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <filter> via
  • --accept-license via
  • --all-versions via
  • --allow-unofficial-build via
  • --approved-only via
  • --by-id-only via
  • --by-tag-only via
  • --cache-location via
  • --cert via
  • --certpassword via
  • --confirm via
  • --debug via
  • --detailed via
  • --disable-package-repository-optimizations via
  • --download-cache-only via
  • --exact via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --id-only via
  • --id-starts-with via
  • --include-programs via
  • --limit-output via
  • --local-only via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --not-broken via
  • --order-by-popularity via
  • --page via
  • --page-size via
  • --password via
  • --prerelease via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --show-audit-info via
  • --source via
  • --trace via
  • --use-system-powershell via
  • --user via
  • --verbose via
  • --version via
public static IReadOnlyCollection ChocolateySearch(ChocolateySearchSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateySearch(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateySearchSettings())); - /// + /// public static IEnumerable<(ChocolateySearchSettings Settings, IReadOnlyCollection Output)> ChocolateySearch(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateySearch, degreeOfParallelism, completeOnFailure); ///

Lists remote or local packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <filter> via
  • --accept-license via
  • --all-versions via
  • --allow-unofficial-build via
  • --approved-only via
  • --by-id-only via
  • --by-tag-only via
  • --cache-location via
  • --cert via
  • --certpassword via
  • --confirm via
  • --debug via
  • --detailed via
  • --disable-package-repository-optimizations via
  • --download-cache-only via
  • --exact via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --id-only via
  • --id-starts-with via
  • --include-programs via
  • --limit-output via
  • --local-only via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --not-broken via
  • --order-by-popularity via
  • --page via
  • --page-size via
  • --password via
  • --prerelease via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --show-audit-info via
  • --source via
  • --trace via
  • --use-system-powershell via
  • --user via
  • --verbose via
  • --version via
public static IReadOnlyCollection ChocolateyList(ChocolateyListSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyList(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyListSettings())); - /// + /// public static IEnumerable<(ChocolateyListSettings Settings, IReadOnlyCollection Output)> ChocolateyList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyList, degreeOfParallelism, completeOnFailure); ///

Searches remote or local packages (alias for search).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <filter> via
  • --accept-license via
  • --all-versions via
  • --allow-unofficial-build via
  • --approved-only via
  • --by-id-only via
  • --by-tag-only via
  • --cache-location via
  • --cert via
  • --certpassword via
  • --confirm via
  • --debug via
  • --detailed via
  • --disable-package-repository-optimizations via
  • --download-cache-only via
  • --exact via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --id-only via
  • --id-starts-with via
  • --include-programs via
  • --limit-output via
  • --local-only via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --not-broken via
  • --order-by-popularity via
  • --page via
  • --page-size via
  • --password via
  • --prerelease via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --show-audit-info via
  • --source via
  • --trace via
  • --use-system-powershell via
  • --user via
  • --verbose via
  • --version via
public static IReadOnlyCollection ChocolateyFind(ChocolateyFindSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyFind(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyFindSettings())); - /// + /// public static IEnumerable<(ChocolateyFindSettings Settings, IReadOnlyCollection Output)> ChocolateyFind(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyFind, degreeOfParallelism, completeOnFailure); ///

Retrieves packages that are outdated. Similar to upgrade all --noop.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --accept-license via
  • --allow-unofficial-build via
  • --cache-location via
  • --cert via
  • --certpassword via
  • --confirm via
  • --debug via
  • --disable-package-repository-optimizations via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --ignore-pinned via
  • --ignore-unfound via
  • --limit-output via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --password via
  • --prerelease via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --source via
  • --trace via
  • --use-system-powershell via
  • --user via
  • --verbose via
public static IReadOnlyCollection ChocolateyOutdated(ChocolateyOutdatedSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyOutdated(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyOutdatedSettings())); - /// + /// public static IEnumerable<(ChocolateyOutdatedSettings Settings, IReadOnlyCollection Output)> ChocolateyOutdated(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyOutdated, degreeOfParallelism, completeOnFailure); ///

Packages up a nuspec to a compiled nupkg.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <pathToNuspec> via
  • -- via
  • --accept-license via
  • --allow-unofficial-build via
  • --cache-location via
  • --confirm via
  • --debug via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --limit-output via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --output-directory via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --trace via
  • --use-system-powershell via
  • --verbose via
  • --version via
public static IReadOnlyCollection ChocolateyPack(ChocolateyPackSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyPack(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyPackSettings())); - /// + /// public static IEnumerable<(ChocolateyPackSettings Settings, IReadOnlyCollection Output)> ChocolateyPack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyPack, degreeOfParallelism, completeOnFailure); ///

Pushes a compiled nupkg.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <pathToNuGetPackage> via
  • --accept-license via
  • --allow-unofficial-build via
  • --api-key via
  • --cache-location via
  • --confirm via
  • --debug via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --force via
  • --limit-output via
  • --log-file via
  • --no-color via
  • --no-progress via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --source via
  • --trace via
  • --use-system-powershell via
  • --verbose via
  • -t via
public static IReadOnlyCollection ChocolateyPush(ChocolateyPushSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyPush(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyPushSettings())); - /// + /// public static IEnumerable<(ChocolateyPushSettings Settings, IReadOnlyCollection Output)> ChocolateyPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyPush, degreeOfParallelism, completeOnFailure); ///

Generates files necessary for a chocolatey package from a template.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --accept-license via
  • --allow-unofficial-build via
  • --automaticpackage via
  • --build-package via
  • --cache-location via
  • --checksum via
  • --checksum-type via
  • --checksum-x64 via
  • --confirm via
  • --debug via
  • --execution-timeout via
  • --fail-on-standard-error via
  • --file via
  • --file64 via
  • --force via
  • --from-programs-and-features via
  • --generate-for-community via
  • --include-architecture-in-name via
  • --limit-output via
  • --log-file via
  • --maintainer via
  • --name via
  • --no-color via
  • --no-progress via
  • --output-directory via
  • --pause-on-error via
  • --proxy via
  • --proxy-bypass-list via
  • --proxy-bypass-on-local via
  • --proxy-password via
  • --proxy-user via
  • --remove-architecture-from-name via
  • --template-name via
  • --trace via
  • --use-built-in-template via
  • --use-original-files-location via
  • --use-system-powershell via
  • --verbose via
  • --version via
public static IReadOnlyCollection ChocolateyNew(ChocolateyNewSettings options = null) => new ChocolateyTasks().Run(options); - /// + /// public static IReadOnlyCollection ChocolateyNew(Configure configurator) => new ChocolateyTasks().Run(configurator.Invoke(new ChocolateyNewSettings())); - /// + /// public static IEnumerable<(ChocolateyNewSettings Settings, IReadOnlyCollection Output)> ChocolateyNew(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ChocolateyNew, degreeOfParallelism, completeOnFailure); } #region ChocolateySearchSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateySearch), Arguments = "search")] public partial class ChocolateySearchSettings : ToolOptions @@ -174,7 +170,7 @@ public partial class ChocolateySearchSettings : ToolOptions } #endregion #region ChocolateyListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyList), Arguments = "list")] public partial class ChocolateyListSettings : ToolOptions @@ -272,7 +268,7 @@ public partial class ChocolateyListSettings : ToolOptions } #endregion #region ChocolateyFindSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyFind), Arguments = "find")] public partial class ChocolateyFindSettings : ToolOptions @@ -370,7 +366,7 @@ public partial class ChocolateyFindSettings : ToolOptions } #endregion #region ChocolateyOutdatedSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyOutdated), Arguments = "outdated")] public partial class ChocolateyOutdatedSettings : ToolOptions @@ -436,7 +432,7 @@ public partial class ChocolateyOutdatedSettings : ToolOptions } #endregion #region ChocolateyPackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyPack), Arguments = "pack")] public partial class ChocolateyPackSettings : ToolOptions @@ -492,7 +488,7 @@ public partial class ChocolateyPackSettings : ToolOptions } #endregion #region ChocolateyPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyPush), Arguments = "push")] public partial class ChocolateyPushSettings : ToolOptions @@ -548,7 +544,7 @@ public partial class ChocolateyPushSettings : ToolOptions } #endregion #region ChocolateyNewSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ChocolateyTasks), Command = nameof(ChocolateyTasks.ChocolateyNew), Arguments = "new")] public partial class ChocolateyNewSettings : ToolOptions @@ -636,7 +632,7 @@ public partial class ChocolateyNewSettings : ToolOptions } #endregion #region ChocolateySearchSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateySearchSettingsExtensions { @@ -1279,7 +1275,7 @@ public static partial class ChocolateySearchSettingsExtensions } #endregion #region ChocolateyListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyListSettingsExtensions { @@ -1922,7 +1918,7 @@ public static partial class ChocolateyListSettingsExtensions } #endregion #region ChocolateyFindSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyFindSettingsExtensions { @@ -2565,7 +2561,7 @@ public static partial class ChocolateyFindSettingsExtensions } #endregion #region ChocolateyOutdatedSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyOutdatedSettingsExtensions { @@ -2972,7 +2968,7 @@ public static partial class ChocolateyOutdatedSettingsExtensions } #endregion #region ChocolateyPackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyPackSettingsExtensions { @@ -3312,7 +3308,7 @@ public static partial class ChocolateyPackSettingsExtensions } #endregion #region ChocolateyPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyPushSettingsExtensions { @@ -3643,7 +3639,7 @@ public static partial class ChocolateyPushSettingsExtensions } #endregion #region ChocolateyNewSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ChocolateyNewSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Chocolatey/Chocolatey.json b/src/Fallout.Application.Tools/Chocolatey/Chocolatey.json similarity index 100% rename from src/Fallout.Common/Tools/Chocolatey/Chocolatey.json rename to src/Fallout.Application.Tools/Chocolatey/Chocolatey.json diff --git a/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.Generated.cs b/src/Fallout.Application.Tools/CodeMetrics/CodeMetrics.Generated.cs similarity index 89% rename from src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.Generated.cs rename to src/Fallout.Application.Tools/CodeMetrics/CodeMetrics.Generated.cs index ab4a42a2e..2cfddf38f 100644 --- a/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.Generated.cs +++ b/src/Fallout.Application.Tools/CodeMetrics/CodeMetrics.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.CodeMetrics; +namespace Fallout.Application.Tools.CodeMetrics; ///

Code metrics is a set of software measures that provide developers better insight into the code they are developing. By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. Development teams can identify potential risks, understand the current state of a project, and track progress during software development.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class CodeMetricsTasks : ToolTasks, IRequireNuGetPackage ///

Code metrics is a set of software measures that provide developers better insight into the code they are developing. By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. Development teams can identify potential risks, understand the current state of a project, and track progress during software development.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /out via
  • /project via
  • /solution via
public static IReadOnlyCollection CodeMetrics(CodeMetricsSettings options = null) => new CodeMetricsTasks().Run(options); - /// + /// public static IReadOnlyCollection CodeMetrics(Configure configurator) => new CodeMetricsTasks().Run(configurator.Invoke(new CodeMetricsSettings())); - /// + /// public static IEnumerable<(CodeMetricsSettings Settings, IReadOnlyCollection Output)> CodeMetrics(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(CodeMetrics, degreeOfParallelism, completeOnFailure); } #region CodeMetricsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(CodeMetricsTasks), Command = nameof(CodeMetricsTasks.CodeMetrics))] public partial class CodeMetricsSettings : ToolOptions @@ -49,7 +44,7 @@ public partial class CodeMetricsSettings : ToolOptions } #endregion #region CodeMetricsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class CodeMetricsSettingsExtensions { diff --git a/src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.json b/src/Fallout.Application.Tools/CodeMetrics/CodeMetrics.json similarity index 100% rename from src/Fallout.Common/Tools/CodeMetrics/CodeMetrics.json rename to src/Fallout.Application.Tools/CodeMetrics/CodeMetrics.json diff --git a/src/Fallout.Common/Tools/Codecov/Codecov.Generated.cs b/src/Fallout.Application.Tools/Codecov/Codecov.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/Codecov/Codecov.Generated.cs rename to src/Fallout.Application.Tools/Codecov/Codecov.Generated.cs index 8a1969f03..957b11a53 100644 --- a/src/Fallout.Common/Tools/Codecov/Codecov.Generated.cs +++ b/src/Fallout.Application.Tools/Codecov/Codecov.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Codecov/Codecov.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Codecov; +namespace Fallout.Application.Tools.Codecov; ///

Code coverage is a measurement used to express which lines of code were executed by a test suite. We use three primary terms to describe each line executed.

  • hit - indicates that the source code was executed by the test suite.
  • partial - indicates that the source code was not fully executed by the test suite; there are remaining branches that were not executed.
  • miss - indicates that the source code was not executed by the test suite.
Coverage is the ratio of hits / (sum of hit + partial + miss). A code base that has 5 lines executed by tests out of 12 total lines will receive a coverage ratio of 41% (rounding down).Phrased simply, code coverage provides a visual measurement of what source code is being executed by a test suite. This information indicates to the software developer where they should write new tests in an effort to achieve higher coverage.Testing source code helps to prevent bugs and syntax errors by executing each line with a known variable and cross-checking it with an expected output.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +24,13 @@ public partial class CodecovTasks : ToolTasks, IRequireNuGetPackage ///

Code coverage is a measurement used to express which lines of code were executed by a test suite. We use three primary terms to describe each line executed.

  • hit - indicates that the source code was executed by the test suite.
  • partial - indicates that the source code was not fully executed by the test suite; there are remaining branches that were not executed.
  • miss - indicates that the source code was not executed by the test suite.
Coverage is the ratio of hits / (sum of hit + partial + miss). A code base that has 5 lines executed by tests out of 12 total lines will receive a coverage ratio of 41% (rounding down).Phrased simply, code coverage provides a visual measurement of what source code is being executed by a test suite. This information indicates to the software developer where they should write new tests in an effort to achieve higher coverage.Testing source code helps to prevent bugs and syntax errors by executing each line with a known variable and cross-checking it with an expected output.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --branch via
  • --build via
  • --disable-network via
  • --dump via
  • --env via
  • --feature via
  • --file via
  • --flag via
  • --name via
  • --no-color via
  • --pr via
  • --required via
  • --root via
  • --sha via
  • --slug via
  • --tag via
  • --token via
  • --url via
  • --verbose via
public static IReadOnlyCollection Codecov(CodecovSettings options = null) => new CodecovTasks().Run(options); - /// + /// public static IReadOnlyCollection Codecov(Configure configurator) => new CodecovTasks().Run(configurator.Invoke(new CodecovSettings())); - /// + /// public static IEnumerable<(CodecovSettings Settings, IReadOnlyCollection Output)> Codecov(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Codecov, degreeOfParallelism, completeOnFailure); } #region CodecovSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(CodecovTasks), Command = nameof(CodecovTasks.Codecov))] public partial class CodecovSettings : ToolOptions @@ -82,7 +78,7 @@ public partial class CodecovSettings : ToolOptions } #endregion #region CodecovSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class CodecovSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Codecov/Codecov.json b/src/Fallout.Application.Tools/Codecov/Codecov.json similarity index 100% rename from src/Fallout.Common/Tools/Codecov/Codecov.json rename to src/Fallout.Application.Tools/Codecov/Codecov.json diff --git a/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs b/src/Fallout.Application.Tools/Codecov/CodecovTasks.cs similarity index 72% rename from src/Fallout.Common/Tools/Codecov/CodecovTasks.cs rename to src/Fallout.Application.Tools/Codecov/CodecovTasks.cs index 8cbcccf33..51dece938 100644 --- a/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs +++ b/src/Fallout.Application.Tools/Codecov/CodecovTasks.cs @@ -1,13 +1,14 @@ -using System; -using Fallout.Common.Tooling; +using System; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Codecov; +namespace Fallout.Application.Tools.Codecov; partial class CodecovTasks { protected override string GetToolPath(ToolOptions options = null) { - return NuGetToolPathResolver.GetPackageExecutable( + return ToolingServices.ToolPaths.GetPackageExecutable( packageId: PackageId, packageExecutable: EnvironmentInfo.Platform switch { diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs b/src/Fallout.Application.Tools/CorFlags/CorFlags.Generated.cs similarity index 95% rename from src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs rename to src/Fallout.Application.Tools/CorFlags/CorFlags.Generated.cs index e640f3b08..3cd7078af 100644 --- a/src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs +++ b/src/Fallout.Application.Tools/CorFlags/CorFlags.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/CorFlags/CorFlags.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.CorFlags; +namespace Fallout.Application.Tools.CorFlags; ///

The CorFlags Conversion tool allows you to configure the CorFlags section of the header of a portable executable image.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +23,13 @@ public partial class CorFlagsTasks : ToolTasks, IRequirePathTool ///

The CorFlags Conversion tool allows you to configure the CorFlags section of the header of a portable executable image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <assembly> via
  • -32BIT via
  • -32BITPREF via
  • -Force via
  • -ILONLY via
  • -nologo via
  • -RevertCLRHeader via
  • -UpgradeCLRHeader via
public static IReadOnlyCollection CorFlags(CorFlagsSettings options = null) => new CorFlagsTasks().Run(options); - /// + /// public static IReadOnlyCollection CorFlags(Configure configurator) => new CorFlagsTasks().Run(configurator.Invoke(new CorFlagsSettings())); - /// + /// public static IEnumerable<(CorFlagsSettings Settings, IReadOnlyCollection Output)> CorFlags(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(CorFlags, degreeOfParallelism, completeOnFailure); } #region CorFlagsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(CorFlagsTasks), Command = nameof(CorFlagsTasks.CorFlags))] public partial class CorFlagsSettings : ToolOptions @@ -58,7 +53,7 @@ public partial class CorFlagsSettings : ToolOptions } #endregion #region CorFlagsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class CorFlagsSettingsExtensions { diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlags.json b/src/Fallout.Application.Tools/CorFlags/CorFlags.json similarity index 100% rename from src/Fallout.Common/Tools/CorFlags/CorFlags.json rename to src/Fallout.Application.Tools/CorFlags/CorFlags.json diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs b/src/Fallout.Application.Tools/CorFlags/CorFlagsSettings.cs similarity index 80% rename from src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs rename to src/Fallout.Application.Tools/CorFlags/CorFlagsSettings.cs index cbf870749..6ec2148f7 100644 --- a/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs +++ b/src/Fallout.Application.Tools/CorFlags/CorFlagsSettings.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Reflection; -namespace Fallout.Common.Tools.CorFlags; +namespace Fallout.Application.Tools.CorFlags; partial class CorFlagsSettings { diff --git a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs b/src/Fallout.Application.Tools/CoverallsNet/CoverallsNet.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs rename to src/Fallout.Application.Tools/CoverallsNet/CoverallsNet.Generated.cs index 51362c4a2..ccea9c0b7 100644 --- a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs +++ b/src/Fallout.Application.Tools/CoverallsNet/CoverallsNet.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.CoverallsNet; +namespace Fallout.Application.Tools.CoverallsNet; ///

Coveralls uploader for .Net Code coverage of your C# source code. Should work with any code files that get reported with the supported coverage tools, but the primary focus is CSharp.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +25,13 @@ public partial class CoverallsNetTasks : ToolTasks, IRequireNuGetPackage ///

Coveralls uploader for .Net Code coverage of your C# source code. Should work with any code files that get reported with the supported coverage tools, but the primary focus is CSharp.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --basePath via
  • --commitAuthor via
  • --commitBranch via
  • --commitEmail via
  • --commitId via
  • --commitMessage via
  • --dryrun via
  • --dynamiccodecoverage via
  • --exportcodecoverage via
  • --input via
  • --jobId via
  • --monocov via
  • --opencover via
  • --output via
  • --pullRequest via
  • --repoToken via
  • --repoTokenVariable via
  • --serviceName via
  • --useRelativePaths via
public static IReadOnlyCollection CoverallsNet(CoverallsNetSettings options = null) => new CoverallsNetTasks().Run(options); - /// + /// public static IReadOnlyCollection CoverallsNet(Configure configurator) => new CoverallsNetTasks().Run(configurator.Invoke(new CoverallsNetSettings())); - /// + /// public static IEnumerable<(CoverallsNetSettings Settings, IReadOnlyCollection Output)> CoverallsNet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(CoverallsNet, degreeOfParallelism, completeOnFailure); } #region CoverallsNetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(CoverallsNetTasks), Command = nameof(CoverallsNetTasks.CoverallsNet))] public partial class CoverallsNetSettings : ToolOptions @@ -81,7 +77,7 @@ public partial class CoverallsNetSettings : ToolOptions } #endregion #region CoverallsNetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class CoverallsNetSettingsExtensions { diff --git a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.json b/src/Fallout.Application.Tools/CoverallsNet/CoverallsNet.json similarity index 100% rename from src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.json rename to src/Fallout.Application.Tools/CoverallsNet/CoverallsNet.json diff --git a/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs b/src/Fallout.Application.Tools/Coverlet/Coverlet.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs rename to src/Fallout.Application.Tools/Coverlet/Coverlet.Generated.cs index 317aeca9e..5424670e1 100644 --- a/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs +++ b/src/Fallout.Application.Tools/Coverlet/Coverlet.Generated.cs @@ -1,10 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Coverlet/Coverlet.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -14,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; +using Fallout.Application.Tools.DotNet; -namespace Fallout.Common.Tools.Coverlet; +namespace Fallout.Application.Tools.Coverlet; ///

Coverlet is a cross platform code coverage library for .NET Core, with support for line, branch and method coverage.The dotnet test command is used to execute unit tests in a given project. Unit tests are console application projects that have dependencies on the unit test framework (for example, MSTest, NUnit, or xUnit) and the dotnet test runner for the unit testing framework. These are packaged as NuGet packages and are restored as ordinary dependencies for the project.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -30,13 +25,13 @@ public partial class CoverletTasks : ToolTasks, IRequireNuGetPackage ///

Coverlet is a cross platform code coverage library for .NET Core, with support for line, branch and method coverage.The dotnet test command is used to execute unit tests in a given project. Unit tests are console application projects that have dependencies on the unit test framework (for example, MSTest, NUnit, or xUnit) and the dotnet test runner for the unit testing framework. These are packaged as NuGet packages and are restored as ordinary dependencies for the project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <assembly> via
  • --exclude via
  • --exclude-by-file via
  • --format via
  • --include via
  • --merge-with via
  • --output via
  • --target via
  • --targetargs via
  • --threshold via
  • --threshold-type via
  • --version via
public static IReadOnlyCollection Coverlet(CoverletSettings options = null) => new CoverletTasks().Run(options); - /// + /// public static IReadOnlyCollection Coverlet(Configure configurator) => new CoverletTasks().Run(configurator.Invoke(new CoverletSettings())); - /// + /// public static IEnumerable<(CoverletSettings Settings, IReadOnlyCollection Output)> Coverlet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Coverlet, degreeOfParallelism, completeOnFailure); } #region CoverletSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(CoverletTasks), Command = nameof(CoverletTasks.Coverlet))] public partial class CoverletSettings : ToolOptions @@ -68,7 +63,7 @@ public partial class CoverletSettings : ToolOptions } #endregion #region CoverletSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class CoverletSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Coverlet/Coverlet.json b/src/Fallout.Application.Tools/Coverlet/Coverlet.json similarity index 100% rename from src/Fallout.Common/Tools/Coverlet/Coverlet.json rename to src/Fallout.Application.Tools/Coverlet/Coverlet.json diff --git a/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs b/src/Fallout.Application.Tools/Coverlet/CoverletSettingsExtensions.cs similarity index 90% rename from src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs rename to src/Fallout.Application.Tools/Coverlet/CoverletSettingsExtensions.cs index d37e3dfb3..0acd04d30 100644 --- a/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs +++ b/src/Fallout.Application.Tools/Coverlet/CoverletSettingsExtensions.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Coverlet; +namespace Fallout.Application.Tools.Coverlet; public static partial class CoverletSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Discord/Discord.Generated.cs b/src/Fallout.Application.Tools/Discord/Discord.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/Discord/Discord.Generated.cs rename to src/Fallout.Application.Tools/Discord/Discord.Generated.cs index cd09ab349..75481eba9 100644 --- a/src/Fallout.Common/Tools/Discord/Discord.Generated.cs +++ b/src/Fallout.Application.Tools/Discord/Discord.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Discord/Discord.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Discord; +namespace Fallout.Application.Tools.Discord; #region DiscordMessage /// Used within . diff --git a/src/Fallout.Common/Tools/Discord/Discord.json b/src/Fallout.Application.Tools/Discord/Discord.json similarity index 100% rename from src/Fallout.Common/Tools/Discord/Discord.json rename to src/Fallout.Application.Tools/Discord/Discord.json diff --git a/src/Fallout.Common/Tools/Discord/DiscordTasks.cs b/src/Fallout.Application.Tools/Discord/DiscordTasks.cs similarity index 86% rename from src/Fallout.Common/Tools/Discord/DiscordTasks.cs rename to src/Fallout.Application.Tools/Discord/DiscordTasks.cs index 398d2cc39..314126812 100644 --- a/src/Fallout.Common/Tools/Discord/DiscordTasks.cs +++ b/src/Fallout.Application.Tools/Discord/DiscordTasks.cs @@ -1,9 +1,9 @@ using System.Net.Http; using System.Threading.Tasks; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities.Net; +using Fallout.Application.Tooling; +using Fallout.Kernel.Net; -namespace Fallout.Common.Tools.Discord; +namespace Fallout.Application.Tools.Discord; public static class DiscordTasks { diff --git a/src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs b/src/Fallout.Application.Tools/DocFX/DocFX.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs rename to src/Fallout.Application.Tools/DocFX/DocFX.Generated.cs index 96ed4968c..6f132e3f7 100644 --- a/src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs +++ b/src/Fallout.Application.Tools/DocFX/DocFX.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/DocFX/DocFX.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DocFX; +namespace Fallout.Application.Tools.DocFX; ///

DocFX is an API documentation generator for .NET, and currently it supports C# and VB. It generates API reference documentation from triple-slash comments in your source code. It also allows you to use Markdown files to create additional topics such as tutorials and how-tos, and to customize the generated reference documentation. DocFX builds a static HTML website from your source code and Markdown files, which can be easily hosted on any web servers (for example, github.io). Also, DocFX provides you the flexibility to customize the layout and style of your website through templates. If you are interested in creating your own website with your own styles, you can follow how to create custom template to create custom templates.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,76 +24,76 @@ public partial class DocFXTasks : ToolTasks, IRequireNuGetPackage ///

Generate client-only website combining API in YAML files and conceptual files.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configFile> via
  • --changesFile via
  • --cleanupCacheHistory via
  • --content via
  • --correlationId via
  • --debug via
  • --debugOutput via
  • --disableGitFeatures via
  • --dryRun via
  • --exportRawModel via
  • --exportViewModel via
  • --falName via
  • --fileMetadataFile via
  • --fileMetadataFiles via
  • --force via
  • --forcePostProcess via
  • --globalMetadata via
  • --globalMetadataFile via
  • --globalMetadataFiles via
  • --help via
  • --hostname via
  • --intermediateFolder via
  • --keepFileLink via
  • --log via
  • --logLevel via
  • --lruSize via
  • --markdownEngineName via
  • --markdownEngineProperties via
  • --maxParallelism via
  • --noLangKeyword via
  • --output via
  • --overwrite via
  • --port via
  • --postProcessors via
  • --rawModelOutputFolder via
  • --repositoryRoot via
  • --resource via
  • --schemaLicense via
  • --serve via
  • --template via
  • --theme via
  • --viewModelOutputFolder via
  • --warningsAsErrors via
  • --xref via
public static IReadOnlyCollection DocFXBuild(DocFXBuildSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXBuild(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXBuildSettings())); - /// + /// public static IEnumerable<(DocFXBuildSettings Settings, IReadOnlyCollection Output)> DocFXBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXBuild, degreeOfParallelism, completeOnFailure); ///

Export dependency file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <dependencyFile> via
  • --help via
  • --intermediateFolder via
  • --version via
public static IReadOnlyCollection DocFXDependency(DocFXDependencySettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXDependency(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXDependencySettings())); - /// + /// public static IEnumerable<(DocFXDependencySettings Settings, IReadOnlyCollection Output)> DocFXDependency(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXDependency, degreeOfParallelism, completeOnFailure); ///

Download remote xref map file and create an xref archive in local.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <archiveFile> via
  • --help via
  • --xref via
public static IReadOnlyCollection DocFXDownload(DocFXDownloadSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXDownload(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXDownloadSettings())); - /// + /// public static IEnumerable<(DocFXDownloadSettings Settings, IReadOnlyCollection Output)> DocFXDownload(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXDownload, degreeOfParallelism, completeOnFailure); ///

Get an overall guide for the command and sub-commands.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
public static IReadOnlyCollection DocFXHelp(DocFXHelpSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXHelp(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXHelpSettings())); - /// + /// public static IEnumerable<(DocFXHelpSettings Settings, IReadOnlyCollection Output)> DocFXHelp(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXHelp, degreeOfParallelism, completeOnFailure); ///

Generate an initial docfx.json following the instructions.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --apiGlobPattern via
  • --apiSourceFolder via
  • --file via
  • --help via
  • --output via
  • --overwrite via
  • --quiet via
public static IReadOnlyCollection DocFXInit(DocFXInitSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXInit(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXInitSettings())); - /// + /// public static IEnumerable<(DocFXInitSettings Settings, IReadOnlyCollection Output)> DocFXInit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXInit, degreeOfParallelism, completeOnFailure); ///

Merge .net base API in YAML files and toc files.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configFile> via
  • --content via
  • --correlationId via
  • --fileMetadataFile via
  • --globalMetadata via
  • --globalMetadataFile via
  • --help via
  • --log via
  • --logLevel via
  • --repositoryRoot via
  • --tocMetadata via
  • --warningsAsErrors via
public static IReadOnlyCollection DocFXMerge(DocFXMergeSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXMerge(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXMergeSettings())); - /// + /// public static IEnumerable<(DocFXMergeSettings Settings, IReadOnlyCollection Output)> DocFXMerge(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXMerge, degreeOfParallelism, completeOnFailure); ///

Generate YAML files from source code.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projects> via
  • --correlationId via
  • --disableDefaultFilter via
  • --disableGitFeatures via
  • --filter via
  • --force via
  • --globalNamespaceId via
  • --help via
  • --log via
  • --logLevel via
  • --output via
  • --property via
  • --raw via
  • --repositoryRoot via
  • --shouldSkipMarkup via
  • --warningsAsErrors via
public static IReadOnlyCollection DocFXMetadata(DocFXMetadataSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXMetadata(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXMetadataSettings())); - /// + /// public static IEnumerable<(DocFXMetadataSettings Settings, IReadOnlyCollection Output)> DocFXMetadata(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXMetadata, degreeOfParallelism, completeOnFailure); ///

Generate pdf file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configFile> via
  • --basePath via
  • --changesFile via
  • --cleanupCacheHistory via
  • --content via
  • --correlationId via
  • --css via
  • --debug via
  • --debugOutput via
  • --disableGitFeatures via
  • --dryRun via
  • --errorHandling via
  • --excludedTocs via
  • --exportRawModel via
  • --exportViewModel via
  • --falName via
  • --fileMetadataFile via
  • --fileMetadataFiles via
  • --force via
  • --forcePostProcess via
  • --generatesAppendices via
  • --generatesExternalLink via
  • --globalMetadata via
  • --globalMetadataFile via
  • --globalMetadataFiles via
  • --help via
  • --host via
  • --hostname via
  • --intermediateFolder via
  • --keepFileLink via
  • --keepRawFiles via
  • --locale via
  • --log via
  • --logLevel via
  • --lruSize via
  • --markdownEngineName via
  • --markdownEngineProperties via
  • --maxParallelism via
  • --name via
  • --noLangKeyword via
  • --noStdin via
  • --output via
  • --overwrite via
  • --port via
  • --postProcessors via
  • --rawModelOutputFolder via
  • --rawOutputFolder via
  • --repositoryRoot via
  • --resource via
  • --schemaLicense via
  • --serve via
  • --template via
  • --theme via
  • --viewModelOutputFolder via
  • --warningsAsErrors via
  • --xref via
public static IReadOnlyCollection DocFXPdf(DocFXPdfSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXPdf(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXPdfSettings())); - /// + /// public static IEnumerable<(DocFXPdfSettings Settings, IReadOnlyCollection Output)> DocFXPdf(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXPdf, degreeOfParallelism, completeOnFailure); ///

Host a local static website.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <folder> via
  • --help via
  • --hostname via
  • --port via
public static IReadOnlyCollection DocFXServe(DocFXServeSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXServe(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXServeSettings())); - /// + /// public static IEnumerable<(DocFXServeSettings Settings, IReadOnlyCollection Output)> DocFXServe(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXServe, degreeOfParallelism, completeOnFailure); ///

List or export existing template.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
  • --all via
  • --help via
  • --output via
public static IReadOnlyCollection DocFXTemplate(DocFXTemplateSettings options = null) => new DocFXTasks().Run(options); - /// + /// public static IReadOnlyCollection DocFXTemplate(Configure configurator) => new DocFXTasks().Run(configurator.Invoke(new DocFXTemplateSettings())); - /// + /// public static IEnumerable<(DocFXTemplateSettings Settings, IReadOnlyCollection Output)> DocFXTemplate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DocFXTemplate, degreeOfParallelism, completeOnFailure); } #region DocFXBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXBuild), Arguments = "build")] public partial class DocFXBuildSettings : ToolOptions @@ -194,7 +189,7 @@ public partial class DocFXBuildSettings : ToolOptions } #endregion #region DocFXDependencySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXDependency), Arguments = "dependency")] public partial class DocFXDependencySettings : ToolOptions @@ -210,7 +205,7 @@ public partial class DocFXDependencySettings : ToolOptions } #endregion #region DocFXDownloadSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXDownload), Arguments = "download")] public partial class DocFXDownloadSettings : ToolOptions @@ -224,7 +219,7 @@ public partial class DocFXDownloadSettings : ToolOptions } #endregion #region DocFXHelpSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXHelp), Arguments = "help")] public partial class DocFXHelpSettings : ToolOptions @@ -234,7 +229,7 @@ public partial class DocFXHelpSettings : ToolOptions } #endregion #region DocFXInitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXInit), Arguments = "init")] public partial class DocFXInitSettings : ToolOptions @@ -256,7 +251,7 @@ public partial class DocFXInitSettings : ToolOptions } #endregion #region DocFXMergeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXMerge), Arguments = "merge")] public partial class DocFXMergeSettings : ToolOptions @@ -288,7 +283,7 @@ public partial class DocFXMergeSettings : ToolOptions } #endregion #region DocFXMetadataSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXMetadata), Arguments = "metadata")] public partial class DocFXMetadataSettings : ToolOptions @@ -328,7 +323,7 @@ public partial class DocFXMetadataSettings : ToolOptions } #endregion #region DocFXPdfSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXPdf), Arguments = "pdf")] public partial class DocFXPdfSettings : ToolOptions @@ -448,7 +443,7 @@ public partial class DocFXPdfSettings : ToolOptions } #endregion #region DocFXServeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXServe), Arguments = "serve")] public partial class DocFXServeSettings : ToolOptions @@ -464,7 +459,7 @@ public partial class DocFXServeSettings : ToolOptions } #endregion #region DocFXTemplateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DocFXTasks), Command = nameof(DocFXTasks.DocFXTemplate), Arguments = "template")] public partial class DocFXTemplateSettings : ToolOptions @@ -480,7 +475,7 @@ public partial class DocFXTemplateSettings : ToolOptions } #endregion #region DocFXBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXBuildSettingsExtensions { @@ -1091,7 +1086,7 @@ public static partial class DocFXBuildSettingsExtensions } #endregion #region DocFXDependencySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXDependencySettingsExtensions { @@ -1139,7 +1134,7 @@ public static partial class DocFXDependencySettingsExtensions } #endregion #region DocFXDownloadSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXDownloadSettingsExtensions { @@ -1179,7 +1174,7 @@ public static partial class DocFXDownloadSettingsExtensions } #endregion #region DocFXHelpSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXHelpSettingsExtensions { @@ -1194,7 +1189,7 @@ public static partial class DocFXHelpSettingsExtensions } #endregion #region DocFXInitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXInitSettingsExtensions { @@ -1293,7 +1288,7 @@ public static partial class DocFXInitSettingsExtensions } #endregion #region DocFXMergeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXMergeSettingsExtensions { @@ -1444,7 +1439,7 @@ public static partial class DocFXMergeSettingsExtensions } #endregion #region DocFXMetadataSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXMetadataSettingsExtensions { @@ -1666,7 +1661,7 @@ public static partial class DocFXMetadataSettingsExtensions } #endregion #region DocFXPdfSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXPdfSettingsExtensions { @@ -2424,7 +2419,7 @@ public static partial class DocFXPdfSettingsExtensions } #endregion #region DocFXServeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXServeSettingsExtensions { @@ -2472,7 +2467,7 @@ public static partial class DocFXServeSettingsExtensions } #endregion #region DocFXTemplateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DocFXTemplateSettingsExtensions { diff --git a/src/Fallout.Common/Tools/DocFX/DocFX.json b/src/Fallout.Application.Tools/DocFX/DocFX.json similarity index 100% rename from src/Fallout.Common/Tools/DocFX/DocFX.json rename to src/Fallout.Application.Tools/DocFX/DocFX.json diff --git a/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs b/src/Fallout.Application.Tools/DocFX/DocFXTasks.cs similarity index 83% rename from src/Fallout.Common/Tools/DocFX/DocFXTasks.cs rename to src/Fallout.Application.Tools/DocFX/DocFXTasks.cs index f47be9417..3869cafdc 100644 --- a/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs +++ b/src/Fallout.Application.Tools/DocFX/DocFXTasks.cs @@ -1,7 +1,7 @@ -using Fallout.Common.Tooling; using Serilog.Events; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DocFX; +namespace Fallout.Application.Tools.DocFX; [LogLevelPattern(LogEventLevel.Warning, $@"{TimestampPattern}Info\:\[ExtractMetadata\]No\ files\ are\ found")] [LogLevelPattern(LogEventLevel.Warning, $@"{TimestampPattern}Warning\:")] diff --git a/src/Fallout.Common/Tools/Docker/Docker.Generated.cs b/src/Fallout.Application.Tools/Docker/Docker.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/Docker/Docker.Generated.cs rename to src/Fallout.Application.Tools/Docker/Docker.Generated.cs index 1a7b39d91..41f800964 100644 --- a/src/Fallout.Common/Tools/Docker/Docker.Generated.cs +++ b/src/Fallout.Application.Tools/Docker/Docker.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Docker/Docker.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Docker; +namespace Fallout.Application.Tools.Docker; ///

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,1315 +24,1315 @@ public partial class DockerTasks : ToolTasks, IRequirePathTool ///

Remove one or more configs.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configs> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerConfigRm(DockerConfigRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerConfigRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerConfigRmSettings())); - /// + /// public static IEnumerable<(DockerConfigRmSettings Settings, IReadOnlyCollection Output)> DockerConfigRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerConfigRm, degreeOfParallelism, completeOnFailure); ///

Load an image from a tar archive or STDIN.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --input via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerLoad(DockerLoadSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerLoad(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerLoadSettings())); - /// + /// public static IEnumerable<(DockerLoadSettings Settings, IReadOnlyCollection Output)> DockerLoad(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerLoad, degreeOfParallelism, completeOnFailure); ///

Remove all stopped containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerPrune(DockerContainerPruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerPrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerPruneSettings())); - /// + /// public static IEnumerable<(DockerContainerPruneSettings Settings, IReadOnlyCollection Output)> DockerContainerPrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerPrune, degreeOfParallelism, completeOnFailure); ///

Manage trust on Docker images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrust(DockerTrustSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrust(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustSettings())); - /// + /// public static IEnumerable<(DockerTrustSettings Settings, IReadOnlyCollection Output)> DockerTrust(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrust, degreeOfParallelism, completeOnFailure); ///

Manage Docker stacks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --kubeconfig via
  • --log-level via
  • --orchestrator via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStack(DockerStackSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStack(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackSettings())); - /// + /// public static IEnumerable<(DockerStackSettings Settings, IReadOnlyCollection Output)> DockerStack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStack, degreeOfParallelism, completeOnFailure); ///

Pull an image or a repository from a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --all-tags via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --platform via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPull(DockerPullSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPull(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPullSettings())); - /// + /// public static IEnumerable<(DockerPullSettings Settings, IReadOnlyCollection Output)> DockerPull(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPull, degreeOfParallelism, completeOnFailure); ///

Sign an image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustSign(DockerTrustSignSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustSign(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustSignSettings())); - /// + /// public static IEnumerable<(DockerTrustSignSettings Settings, IReadOnlyCollection Output)> DockerTrustSign(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustSign, degreeOfParallelism, completeOnFailure); ///

Manage checkpoints.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerCheckpoint(DockerCheckpointSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCheckpoint(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCheckpointSettings())); - /// + /// public static IEnumerable<(DockerCheckpointSettings Settings, IReadOnlyCollection Output)> DockerCheckpoint(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCheckpoint, degreeOfParallelism, completeOnFailure); ///

Manage entities who can sign Docker images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustSigner(DockerTrustSignerSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustSigner(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustSignerSettings())); - /// + /// public static IEnumerable<(DockerTrustSignerSettings Settings, IReadOnlyCollection Output)> DockerTrustSigner(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustSigner, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more configs.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configs> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --pretty via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerConfigInspect(DockerConfigInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerConfigInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerConfigInspectSettings())); - /// + /// public static IEnumerable<(DockerConfigInspectSettings Settings, IReadOnlyCollection Output)> DockerConfigInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerConfigInspect, degreeOfParallelism, completeOnFailure); ///

Manage services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerService(DockerServiceSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerService(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceSettings())); - /// + /// public static IEnumerable<(DockerServiceSettings Settings, IReadOnlyCollection Output)> DockerService(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerService, degreeOfParallelism, completeOnFailure); ///

Generate and load a signing key-pair.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustKeyGenerate(DockerTrustKeyGenerateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustKeyGenerate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustKeyGenerateSettings())); - /// + /// public static IEnumerable<(DockerTrustKeyGenerateSettings Settings, IReadOnlyCollection Output)> DockerTrustKeyGenerate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustKeyGenerate, degreeOfParallelism, completeOnFailure); ///

Manage Docker.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSystem(DockerSystemSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSystem(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSystemSettings())); - /// + /// public static IEnumerable<(DockerSystemSettings Settings, IReadOnlyCollection Output)> DockerSystem(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSystem, degreeOfParallelism, completeOnFailure); ///

List configs.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerConfigLs(DockerConfigLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerConfigLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerConfigLsSettings())); - /// + /// public static IEnumerable<(DockerConfigLsSettings Settings, IReadOnlyCollection Output)> DockerConfigLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerConfigLs, degreeOfParallelism, completeOnFailure); ///

Update a context.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • --config via
  • --debug via
  • --default-stack-orchestrator via
  • --description via
  • --docker via
  • --kubernetes via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextUpdate(DockerContextUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextUpdateSettings())); - /// + /// public static IEnumerable<(DockerContextUpdateSettings Settings, IReadOnlyCollection Output)> DockerContextUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextUpdate, degreeOfParallelism, completeOnFailure); ///

List the services in the stack.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stack> via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --kubeconfig via
  • --log-level via
  • --namespace via
  • --orchestrator via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStackServices(DockerStackServicesSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStackServices(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackServicesSettings())); - /// + /// public static IEnumerable<(DockerStackServicesSettings Settings, IReadOnlyCollection Output)> DockerStackServices(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStackServices, degreeOfParallelism, completeOnFailure); ///

List port mappings or a specific mapping for the container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <privatePort> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerPort(DockerContainerPortSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerPort(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerPortSettings())); - /// + /// public static IEnumerable<(DockerContainerPortSettings Settings, IReadOnlyCollection Output)> DockerContainerPort(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerPort, degreeOfParallelism, completeOnFailure); ///

Rename a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <newName> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerRename(DockerRenameSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerRename(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerRenameSettings())); - /// + /// public static IEnumerable<(DockerRenameSettings Settings, IReadOnlyCollection Output)> DockerRename(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerRename, degreeOfParallelism, completeOnFailure); ///

Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <sourceImage> via
  • <targetImage> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTag(DockerTagSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTag(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTagSettings())); - /// + /// public static IEnumerable<(DockerTagSettings Settings, IReadOnlyCollection Output)> DockerTag(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTag, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more secrets.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <secrets> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --pretty via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSecretInspect(DockerSecretInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSecretInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSecretInspectSettings())); - /// + /// public static IEnumerable<(DockerSecretInspectSettings Settings, IReadOnlyCollection Output)> DockerSecretInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSecretInspect, degreeOfParallelism, completeOnFailure); ///

Manage Docker secrets.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSecret(DockerSecretSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSecret(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSecretSettings())); - /// + /// public static IEnumerable<(DockerSecretSettings Settings, IReadOnlyCollection Output)> DockerSecret(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSecret, degreeOfParallelism, completeOnFailure); ///

Export a container's filesystem as a tar archive.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --log-level via
  • --output via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerExport(DockerContainerExportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerExport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerExportSettings())); - /// + /// public static IEnumerable<(DockerContainerExportSettings Settings, IReadOnlyCollection Output)> DockerContainerExport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerExport, degreeOfParallelism, completeOnFailure); ///

Show the history of an image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <image> via
  • --config via
  • --debug via
  • --format via
  • --human via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerHistory(DockerHistorySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerHistory(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerHistorySettings())); - /// + /// public static IEnumerable<(DockerHistorySettings Settings, IReadOnlyCollection Output)> DockerHistory(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerHistory, degreeOfParallelism, completeOnFailure); ///

Create a new service.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <image> via
  • --config via
  • --config via
  • --constraint via
  • --container-label via
  • --credential-spec via
  • --debug via
  • --detach via
  • --dns via
  • --dns-option via
  • --dns-search via
  • --endpoint-mode via
  • --entrypoint via
  • --env via
  • --env-file via
  • --generic-resource via
  • --group via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --host via
  • --hostname via
  • --init via
  • --isolation via
  • --label via
  • --limit-cpu via
  • --limit-memory via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mode via
  • --mount via
  • --name via
  • --network via
  • --no-healthcheck via
  • --no-resolve-image via
  • --placement-pref via
  • --publish via
  • --quiet via
  • --read-only via
  • --replicas via
  • --replicas-max-per-node via
  • --reserve-cpu via
  • --reserve-memory via
  • --restart-condition via
  • --restart-delay via
  • --restart-max-attempts via
  • --restart-window via
  • --rollback-delay via
  • --rollback-failure-action via
  • --rollback-max-failure-ratio via
  • --rollback-monitor via
  • --rollback-order via
  • --rollback-parallelism via
  • --secret via
  • --stop-grace-period via
  • --stop-signal via
  • --sysctl via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tty via
  • --update-delay via
  • --update-failure-action via
  • --update-max-failure-ratio via
  • --update-monitor via
  • --update-order via
  • --update-parallelism via
  • --user via
  • --with-registry-auth via
  • --workdir via
public static IReadOnlyCollection DockerServiceCreate(DockerServiceCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceCreateSettings())); - /// + /// public static IEnumerable<(DockerServiceCreateSettings Settings, IReadOnlyCollection Output)> DockerServiceCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceCreate, degreeOfParallelism, completeOnFailure); ///

List the tasks of one or more services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <services> via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --no-resolve via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServicePs(DockerServicePsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServicePs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServicePsSettings())); - /// + /// public static IEnumerable<(DockerServicePsSettings Settings, IReadOnlyCollection Output)> DockerServicePs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServicePs, degreeOfParallelism, completeOnFailure); ///

Stop one or more running containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --time via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStop(DockerStopSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStop(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStopSettings())); - /// + /// public static IEnumerable<(DockerStopSettings Settings, IReadOnlyCollection Output)> DockerStop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStop, degreeOfParallelism, completeOnFailure); ///

Manage Swarm nodes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNode(DockerNodeSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNode(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeSettings())); - /// + /// public static IEnumerable<(DockerNodeSettings Settings, IReadOnlyCollection Output)> DockerNode(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNode, degreeOfParallelism, completeOnFailure); ///

Update configuration of one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --blkio-weight via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --kernel-memory via
  • --log-level via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --pids-limit via
  • --restart via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerUpdate(DockerUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerUpdateSettings())); - /// + /// public static IEnumerable<(DockerUpdateSettings Settings, IReadOnlyCollection Output)> DockerUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerUpdate, degreeOfParallelism, completeOnFailure); ///

Create a plugin from a rootfs and configuration. Plugin data directory must contain config.json and rootfs directory.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugin> via
  • <pluginDataDir> via
  • --compress via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginCreate(DockerPluginCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginCreateSettings())); - /// + /// public static IEnumerable<(DockerPluginCreateSettings Settings, IReadOnlyCollection Output)> DockerPluginCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginCreate, degreeOfParallelism, completeOnFailure); ///

Display system-wide information.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSystemInfo(DockerSystemInfoSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSystemInfo(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSystemInfoSettings())); - /// + /// public static IEnumerable<(DockerSystemInfoSettings Settings, IReadOnlyCollection Output)> DockerSystemInfo(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSystemInfo, degreeOfParallelism, completeOnFailure); ///

Remove all unused local volumes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolumePrune(DockerVolumePruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolumePrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumePruneSettings())); - /// + /// public static IEnumerable<(DockerVolumePruneSettings Settings, IReadOnlyCollection Output)> DockerVolumePrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolumePrune, degreeOfParallelism, completeOnFailure); ///

Upgrade an existing plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugin> via
  • <remote> via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --grant-all-permissions via
  • --log-level via
  • --skip-remote-check via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginUpgrade(DockerPluginUpgradeSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginUpgrade(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginUpgradeSettings())); - /// + /// public static IEnumerable<(DockerPluginUpgradeSettings Settings, IReadOnlyCollection Output)> DockerPluginUpgrade(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginUpgrade, degreeOfParallelism, completeOnFailure); ///

Remove build cache.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerBuilderPrune(DockerBuilderPruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuilderPrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuilderPruneSettings())); - /// + /// public static IEnumerable<(DockerBuilderPruneSettings Settings, IReadOnlyCollection Output)> DockerBuilderPrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuilderPrune, degreeOfParallelism, completeOnFailure); ///

Manage join tokens.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <worker> via
  • --config via
  • --debug via
  • --log-level via
  • --quiet via
  • --rotate via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmJoinToken(DockerSwarmJoinTokenSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmJoinToken(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmJoinTokenSettings())); - /// + /// public static IEnumerable<(DockerSwarmJoinTokenSettings Settings, IReadOnlyCollection Output)> DockerSwarmJoinToken(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmJoinToken, degreeOfParallelism, completeOnFailure); ///

Update a node.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <node> via
  • --availability via
  • --config via
  • --debug via
  • --label-add via
  • --label-rm via
  • --log-level via
  • --role via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodeUpdate(DockerNodeUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodeUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeUpdateSettings())); - /// + /// public static IEnumerable<(DockerNodeUpdateSettings Settings, IReadOnlyCollection Output)> DockerNodeUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodeUpdate, degreeOfParallelism, completeOnFailure); ///

Add a signer.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • <options> via
  • <repositories> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustSignerAdd(DockerTrustSignerAddSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustSignerAdd(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustSignerAddSettings())); - /// + /// public static IEnumerable<(DockerTrustSignerAddSettings Settings, IReadOnlyCollection Output)> DockerTrustSignerAdd(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustSignerAdd, degreeOfParallelism, completeOnFailure); ///

Update the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --autolock via
  • --cert-expiry via
  • --config via
  • --debug via
  • --dispatcher-heartbeat via
  • --external-ca via
  • --log-level via
  • --max-snapshots via
  • --snapshot-interval via
  • --task-history-limit via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmUpdate(DockerSwarmUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmUpdateSettings())); - /// + /// public static IEnumerable<(DockerSwarmUpdateSettings Settings, IReadOnlyCollection Output)> DockerSwarmUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmUpdate, degreeOfParallelism, completeOnFailure); ///

Fetch the logs of a service or task.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <service> via
  • --config via
  • --debug via
  • --details via
  • --follow via
  • --log-level via
  • --no-resolve via
  • --no-task-ids via
  • --no-trunc via
  • --raw via
  • --since via
  • --tail via
  • --timestamps via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceLogs(DockerServiceLogsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceLogs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceLogsSettings())); - /// + /// public static IEnumerable<(DockerServiceLogsSettings Settings, IReadOnlyCollection Output)> DockerServiceLogs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceLogs, degreeOfParallelism, completeOnFailure); ///

List services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceLs(DockerServiceLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceLsSettings())); - /// + /// public static IEnumerable<(DockerServiceLsSettings Settings, IReadOnlyCollection Output)> DockerServiceLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceLs, degreeOfParallelism, completeOnFailure); ///

Unlock swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmUnlock(DockerSwarmUnlockSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmUnlock(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmUnlockSettings())); - /// + /// public static IEnumerable<(DockerSwarmUnlockSettings Settings, IReadOnlyCollection Output)> DockerSwarmUnlock(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmUnlock, degreeOfParallelism, completeOnFailure); ///

List networks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkLs(DockerNetworkLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkLsSettings())); - /// + /// public static IEnumerable<(DockerNetworkLsSettings Settings, IReadOnlyCollection Output)> DockerNetworkLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkLs, degreeOfParallelism, completeOnFailure); ///

List plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginLs(DockerPluginLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginLsSettings())); - /// + /// public static IEnumerable<(DockerPluginLsSettings Settings, IReadOnlyCollection Output)> DockerPluginLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginLs, degreeOfParallelism, completeOnFailure); ///

Remove one or more plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugins> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginRm(DockerPluginRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginRmSettings())); - /// + /// public static IEnumerable<(DockerPluginRmSettings Settings, IReadOnlyCollection Output)> DockerPluginRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginRm, degreeOfParallelism, completeOnFailure); ///

Build an image from a Dockerfile.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --add-host via
  • --build-arg via
  • --cache-from via
  • --cgroup-parent via
  • --compress via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-shares via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --disable-content-trust via
  • --file via
  • --force-rm via
  • --iidfile via
  • --isolation via
  • --label via
  • --log-level via
  • --memory via
  • --memory-swap via
  • --network via
  • --no-cache via
  • --output via
  • --platform via
  • --progress via
  • --pull via
  • --quiet via
  • --rm via
  • --secret via
  • --security-opt via
  • --shm-size via
  • --squash via
  • --ssh via
  • --stream via
  • --tag via
  • --target via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --ulimit via
public static IReadOnlyCollection DockerImageBuild(DockerImageBuildSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageBuild(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageBuildSettings())); - /// + /// public static IEnumerable<(DockerImageBuildSettings Settings, IReadOnlyCollection Output)> DockerImageBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageBuild, degreeOfParallelism, completeOnFailure); ///

Remove trust for an image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <image> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --yes via
public static IReadOnlyCollection DockerTrustRevoke(DockerTrustRevokeSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustRevoke(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustRevokeSettings())); - /// + /// public static IEnumerable<(DockerTrustRevokeSettings Settings, IReadOnlyCollection Output)> DockerTrustRevoke(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustRevoke, degreeOfParallelism, completeOnFailure); ///

Remove one or more images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --no-prune via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerRmi(DockerRmiSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerRmi(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerRmiSettings())); - /// + /// public static IEnumerable<(DockerRmiSettings Settings, IReadOnlyCollection Output)> DockerRmi(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerRmi, degreeOfParallelism, completeOnFailure); ///

Remove one or more networks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <networks> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkRm(DockerNetworkRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkRmSettings())); - /// + /// public static IEnumerable<(DockerNetworkRmSettings Settings, IReadOnlyCollection Output)> DockerNetworkRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkRm, degreeOfParallelism, completeOnFailure); ///

Show the Docker version information.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --format via
  • --kubeconfig via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVersion(DockerVersionSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVersion(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVersionSettings())); - /// + /// public static IEnumerable<(DockerVersionSettings Settings, IReadOnlyCollection Output)> DockerVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVersion, degreeOfParallelism, completeOnFailure); ///

Create a secret from a file or STDIN as content.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <file> via
  • <secret> via
  • --config via
  • --debug via
  • --driver via
  • --label via
  • --log-level via
  • --template-driver via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSecretCreate(DockerSecretCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSecretCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSecretCreateSettings())); - /// + /// public static IEnumerable<(DockerSecretCreateSettings Settings, IReadOnlyCollection Output)> DockerSecretCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSecretCreate, degreeOfParallelism, completeOnFailure); ///

Remove one or more services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <services> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceRm(DockerServiceRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceRmSettings())); - /// + /// public static IEnumerable<(DockerServiceRmSettings Settings, IReadOnlyCollection Output)> DockerServiceRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceRm, degreeOfParallelism, completeOnFailure); ///

Load a private key file for signing.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <keyfile> via
  • --config via
  • --debug via
  • --log-level via
  • --name via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustKeyLoad(DockerTrustKeyLoadSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustKeyLoad(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustKeyLoadSettings())); - /// + /// public static IEnumerable<(DockerTrustKeyLoadSettings Settings, IReadOnlyCollection Output)> DockerTrustKeyLoad(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustKeyLoad, degreeOfParallelism, completeOnFailure); ///

Remove one or more secrets.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <secrets> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSecretRm(DockerSecretRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSecretRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSecretRmSettings())); - /// + /// public static IEnumerable<(DockerSecretRmSettings Settings, IReadOnlyCollection Output)> DockerSecretRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSecretRm, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageInspect(DockerImageInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageInspectSettings())); - /// + /// public static IEnumerable<(DockerImageInspectSettings Settings, IReadOnlyCollection Output)> DockerImageInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageInspect, degreeOfParallelism, completeOnFailure); ///

Save one or more images to a tar archive (streamed to STDOUT by default).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --log-level via
  • --output via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageSave(DockerImageSaveSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageSave(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageSaveSettings())); - /// + /// public static IEnumerable<(DockerImageSaveSettings Settings, IReadOnlyCollection Output)> DockerImageSave(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageSave, degreeOfParallelism, completeOnFailure); ///

Manage keys for signing Docker images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustKey(DockerTrustKeySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustKey(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustKeySettings())); - /// + /// public static IEnumerable<(DockerTrustKeySettings Settings, IReadOnlyCollection Output)> DockerTrustKey(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustKey, degreeOfParallelism, completeOnFailure); ///

Attach local standard input, output, and error streams to a running container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --detach-keys via
  • --log-level via
  • --no-stdin via
  • --sig-proxy via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerAttach(DockerContainerAttachSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerAttach(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerAttachSettings())); - /// + /// public static IEnumerable<(DockerContainerAttachSettings Settings, IReadOnlyCollection Output)> DockerContainerAttach(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerAttach, degreeOfParallelism, completeOnFailure); ///

Create a context.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • --config via
  • --debug via
  • --default-stack-orchestrator via
  • --description via
  • --docker via
  • --from via
  • --kubernetes via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextCreate(DockerContextCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextCreateSettings())); - /// + /// public static IEnumerable<(DockerContextCreateSettings Settings, IReadOnlyCollection Output)> DockerContextCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextCreate, degreeOfParallelism, completeOnFailure); ///

Create a config from a file or STDIN.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <config> via
  • <file> via
  • --config via
  • --debug via
  • --label via
  • --log-level via
  • --template-driver via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerConfigCreate(DockerConfigCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerConfigCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerConfigCreateSettings())); - /// + /// public static IEnumerable<(DockerConfigCreateSettings Settings, IReadOnlyCollection Output)> DockerConfigCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerConfigCreate, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more volumes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <volumes> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolumeInspect(DockerVolumeInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolumeInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumeInspectSettings())); - /// + /// public static IEnumerable<(DockerVolumeInspectSettings Settings, IReadOnlyCollection Output)> DockerVolumeInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolumeInspect, degreeOfParallelism, completeOnFailure); ///

Stop one or more running containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --time via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerStop(DockerContainerStopSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerStop(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerStopSettings())); - /// + /// public static IEnumerable<(DockerContainerStopSettings Settings, IReadOnlyCollection Output)> DockerContainerStop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerStop, degreeOfParallelism, completeOnFailure); ///

Remove all unused networks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkPrune(DockerNetworkPruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkPrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkPruneSettings())); - /// + /// public static IEnumerable<(DockerNetworkPruneSettings Settings, IReadOnlyCollection Output)> DockerNetworkPrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkPrune, degreeOfParallelism, completeOnFailure); ///

Display an image manifest, or manifest list.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <manifest> via
  • <manifestList> via
  • --config via
  • --debug via
  • --insecure via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --verbose via
public static IReadOnlyCollection DockerManifestInspect(DockerManifestInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerManifestInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerManifestInspectSettings())); - /// + /// public static IEnumerable<(DockerManifestInspectSettings Settings, IReadOnlyCollection Output)> DockerManifestInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerManifestInspect, degreeOfParallelism, completeOnFailure); ///

Display system-wide information.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerInfo(DockerInfoSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerInfo(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerInfoSettings())); - /// + /// public static IEnumerable<(DockerInfoSettings Settings, IReadOnlyCollection Output)> DockerInfo(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerInfo, degreeOfParallelism, completeOnFailure); ///

Create a new image from a container's changes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <repository> via
  • --author via
  • --change via
  • --config via
  • --debug via
  • --log-level via
  • --message via
  • --pause via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerCommit(DockerCommitSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCommit(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCommitSettings())); - /// + /// public static IEnumerable<(DockerCommitSettings Settings, IReadOnlyCollection Output)> DockerCommit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCommit, degreeOfParallelism, completeOnFailure); ///

Deploy a new stack or update an existing stack.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stack> via
  • --bundle-file via
  • --compose-file via
  • --config via
  • --debug via
  • --log-level via
  • --namespace via
  • --prune via
  • --resolve-image via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --with-registry-auth via
public static IReadOnlyCollection DockerStackDeploy(DockerStackDeploySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStackDeploy(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackDeploySettings())); - /// + /// public static IEnumerable<(DockerStackDeploySettings Settings, IReadOnlyCollection Output)> DockerStackDeploy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStackDeploy, degreeOfParallelism, completeOnFailure); ///

Scale one or multiple replicated services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <serviceReplicas> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceScale(DockerServiceScaleSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceScale(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceScaleSettings())); - /// + /// public static IEnumerable<(DockerServiceScaleSettings Settings, IReadOnlyCollection Output)> DockerServiceScale(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceScale, degreeOfParallelism, completeOnFailure); ///

Run a command in a new container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <image> via
  • --add-host via
  • --attach via
  • --blkio-weight via
  • --blkio-weight-device via
  • --cap-add via
  • --cap-drop via
  • --cgroup-parent via
  • --cidfile via
  • --config via
  • --cpu-count via
  • --cpu-percent via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --detach via
  • --detach-keys via
  • --device via
  • --device-cgroup-rule via
  • --device-read-bps via
  • --device-read-iops via
  • --device-write-bps via
  • --device-write-iops via
  • --disable-content-trust via
  • --dns via
  • --dns-opt via
  • --dns-option via
  • --dns-search via
  • --domainname via
  • --entrypoint via
  • --env via
  • --env-file via
  • --expose via
  • --gpus via
  • --group-add via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --help via
  • --hostname via
  • --init via
  • --interactive via
  • --io-maxbandwidth via
  • --io-maxiops via
  • --ip via
  • --ip6 via
  • --ipc via
  • --isolation via
  • --kernel-memory via
  • --label via
  • --label-file via
  • --link via
  • --link-local-ip via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mac-address via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --memory-swappiness via
  • --mount via
  • --name via
  • --net via
  • --net-alias via
  • --network via
  • --network-alias via
  • --no-healthcheck via
  • --oom-kill-disable via
  • --oom-score-adj via
  • --pid via
  • --pids-limit via
  • --platform via
  • --privileged via
  • --publish via
  • --publish-all via
  • --read-only via
  • --restart via
  • --rm via
  • --runtime via
  • --security-opt via
  • --shm-size via
  • --sig-proxy via
  • --stop-signal via
  • --stop-timeout via
  • --storage-opt via
  • --sysctl via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tmpfs via
  • --tty via
  • --ulimit via
  • --user via
  • --userns via
  • --uts via
  • --volume via
  • --volume-driver via
  • --volumes-from via
  • --workdir via
public static IReadOnlyCollection DockerRun(DockerRunSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerRun(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerRunSettings())); - /// + /// public static IEnumerable<(DockerRunSettings Settings, IReadOnlyCollection Output)> DockerRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerRun, degreeOfParallelism, completeOnFailure); ///

Create a new container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <image> via
  • --add-host via
  • --attach via
  • --blkio-weight via
  • --blkio-weight-device via
  • --cap-add via
  • --cap-drop via
  • --cgroup-parent via
  • --cidfile via
  • --config via
  • --cpu-count via
  • --cpu-percent via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --device via
  • --device-cgroup-rule via
  • --device-read-bps via
  • --device-read-iops via
  • --device-write-bps via
  • --device-write-iops via
  • --disable-content-trust via
  • --dns via
  • --dns-opt via
  • --dns-option via
  • --dns-search via
  • --domainname via
  • --entrypoint via
  • --env via
  • --env-file via
  • --expose via
  • --gpus via
  • --group-add via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --help via
  • --hostname via
  • --init via
  • --interactive via
  • --io-maxbandwidth via
  • --io-maxiops via
  • --ip via
  • --ip6 via
  • --ipc via
  • --isolation via
  • --kernel-memory via
  • --label via
  • --label-file via
  • --link via
  • --link-local-ip via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mac-address via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --memory-swappiness via
  • --mount via
  • --name via
  • --net via
  • --net-alias via
  • --network via
  • --network-alias via
  • --no-healthcheck via
  • --oom-kill-disable via
  • --oom-score-adj via
  • --pid via
  • --pids-limit via
  • --platform via
  • --privileged via
  • --publish via
  • --publish-all via
  • --read-only via
  • --restart via
  • --rm via
  • --runtime via
  • --security-opt via
  • --shm-size via
  • --stop-signal via
  • --stop-timeout via
  • --storage-opt via
  • --sysctl via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tmpfs via
  • --tty via
  • --ulimit via
  • --user via
  • --userns via
  • --uts via
  • --volume via
  • --volume-driver via
  • --volumes-from via
  • --workdir via
public static IReadOnlyCollection DockerCreate(DockerCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCreateSettings())); - /// + /// public static IEnumerable<(DockerCreateSettings Settings, IReadOnlyCollection Output)> DockerCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCreate, degreeOfParallelism, completeOnFailure); ///

Update a service.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <service> via
  • --args via
  • --config via
  • --config-add via
  • --config-rm via
  • --constraint-add via
  • --constraint-rm via
  • --container-label-add via
  • --container-label-rm via
  • --credential-spec via
  • --debug via
  • --detach via
  • --dns-add via
  • --dns-option-add via
  • --dns-option-rm via
  • --dns-rm via
  • --dns-search-add via
  • --dns-search-rm via
  • --endpoint-mode via
  • --entrypoint via
  • --env-add via
  • --env-rm via
  • --force via
  • --generic-resource-add via
  • --generic-resource-rm via
  • --group-add via
  • --group-rm via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --host-add via
  • --host-rm via
  • --hostname via
  • --image via
  • --init via
  • --isolation via
  • --label-add via
  • --label-rm via
  • --limit-cpu via
  • --limit-memory via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mount-add via
  • --mount-rm via
  • --network-add via
  • --network-rm via
  • --no-healthcheck via
  • --no-resolve-image via
  • --placement-pref-add via
  • --placement-pref-rm via
  • --publish-add via
  • --publish-rm via
  • --quiet via
  • --read-only via
  • --replicas via
  • --replicas-max-per-node via
  • --reserve-cpu via
  • --reserve-memory via
  • --restart-condition via
  • --restart-delay via
  • --restart-max-attempts via
  • --restart-window via
  • --rollback via
  • --rollback-delay via
  • --rollback-failure-action via
  • --rollback-max-failure-ratio via
  • --rollback-monitor via
  • --rollback-order via
  • --rollback-parallelism via
  • --secret-add via
  • --secret-rm via
  • --stop-grace-period via
  • --stop-signal via
  • --sysctl-add via
  • --sysctl-rm via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tty via
  • --update-delay via
  • --update-failure-action via
  • --update-max-failure-ratio via
  • --update-monitor via
  • --update-order via
  • --update-parallelism via
  • --user via
  • --with-registry-auth via
  • --workdir via
public static IReadOnlyCollection DockerServiceUpdate(DockerServiceUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceUpdateSettings())); - /// + /// public static IEnumerable<(DockerServiceUpdateSettings Settings, IReadOnlyCollection Output)> DockerServiceUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceUpdate, degreeOfParallelism, completeOnFailure); ///

List port mappings or a specific mapping for the container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <privatePort> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPort(DockerPortSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPort(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPortSettings())); - /// + /// public static IEnumerable<(DockerPortSettings Settings, IReadOnlyCollection Output)> DockerPort(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPort, degreeOfParallelism, completeOnFailure); ///

Manage containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainer(DockerContainerSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainer(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerSettings())); - /// + /// public static IEnumerable<(DockerContainerSettings Settings, IReadOnlyCollection Output)> DockerContainer(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainer, degreeOfParallelism, completeOnFailure); ///

Push an image or a repository to a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --all-tags via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImagePush(DockerImagePushSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImagePush(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImagePushSettings())); - /// + /// public static IEnumerable<(DockerImagePushSettings Settings, IReadOnlyCollection Output)> DockerImagePush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImagePush, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more services.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <services> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --pretty via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceInspect(DockerServiceInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceInspectSettings())); - /// + /// public static IEnumerable<(DockerServiceInspectSettings Settings, IReadOnlyCollection Output)> DockerServiceInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceInspect, degreeOfParallelism, completeOnFailure); ///

Connect a container to a network.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <network> via
  • --alias via
  • --config via
  • --debug via
  • --driver-opt via
  • --ip via
  • --ip6 via
  • --link via
  • --link-local-ip via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkConnect(DockerNetworkConnectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkConnect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkConnectSettings())); - /// + /// public static IEnumerable<(DockerNetworkConnectSettings Settings, IReadOnlyCollection Output)> DockerNetworkConnect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkConnect, degreeOfParallelism, completeOnFailure); ///

List secrets.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSecretLs(DockerSecretLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSecretLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSecretLsSettings())); - /// + /// public static IEnumerable<(DockerSecretLsSettings Settings, IReadOnlyCollection Output)> DockerSecretLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSecretLs, degreeOfParallelism, completeOnFailure); ///

Leave the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmLeave(DockerSwarmLeaveSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmLeave(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmLeaveSettings())); - /// + /// public static IEnumerable<(DockerSwarmLeaveSettings Settings, IReadOnlyCollection Output)> DockerSwarmLeave(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmLeave, degreeOfParallelism, completeOnFailure); ///

List images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <repository> via
  • --all via
  • --config via
  • --debug via
  • --digests via
  • --filter via
  • --format via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImages(DockerImagesSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImages(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImagesSettings())); - /// + /// public static IEnumerable<(DockerImagesSettings Settings, IReadOnlyCollection Output)> DockerImages(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImages, degreeOfParallelism, completeOnFailure); ///

Update a local engine.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --containerd via
  • --debug via
  • --engine-image via
  • --log-level via
  • --registry-prefix via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --version via
public static IReadOnlyCollection DockerEngineUpdate(DockerEngineUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerEngineUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerEngineUpdateSettings())); - /// + /// public static IEnumerable<(DockerEngineUpdateSettings Settings, IReadOnlyCollection Output)> DockerEngineUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerEngineUpdate, degreeOfParallelism, completeOnFailure); ///

Get real time events from the server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --since via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --until via
public static IReadOnlyCollection DockerSystemEvents(DockerSystemEventsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSystemEvents(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSystemEventsSettings())); - /// + /// public static IEnumerable<(DockerSystemEventsSettings Settings, IReadOnlyCollection Output)> DockerSystemEvents(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSystemEvents, degreeOfParallelism, completeOnFailure); ///

Return low-level information on Docker objects.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <names> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --size via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --type via
public static IReadOnlyCollection DockerInspect(DockerInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerInspectSettings())); - /// + /// public static IEnumerable<(DockerInspectSettings Settings, IReadOnlyCollection Output)> DockerInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerInspect, degreeOfParallelism, completeOnFailure); ///

Check for available engine updates.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --containerd via
  • --debug via
  • --downgrades via
  • --engine-image via
  • --format via
  • --log-level via
  • --pre-releases via
  • --quiet via
  • --registry-prefix via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --upgrades via
public static IReadOnlyCollection DockerEngineCheck(DockerEngineCheckSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerEngineCheck(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerEngineCheckSettings())); - /// + /// public static IEnumerable<(DockerEngineCheckSettings Settings, IReadOnlyCollection Output)> DockerEngineCheck(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerEngineCheck, degreeOfParallelism, completeOnFailure); ///

Attach local standard input, output, and error streams to a running container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --detach-keys via
  • --log-level via
  • --no-stdin via
  • --sig-proxy via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerAttach(DockerAttachSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerAttach(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerAttachSettings())); - /// + /// public static IEnumerable<(DockerAttachSettings Settings, IReadOnlyCollection Output)> DockerAttach(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerAttach, degreeOfParallelism, completeOnFailure); ///

Block until one or more containers stop, then print their exit codes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerWait(DockerContainerWaitSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerWait(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerWaitSettings())); - /// + /// public static IEnumerable<(DockerContainerWaitSettings Settings, IReadOnlyCollection Output)> DockerContainerWait(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerWait, degreeOfParallelism, completeOnFailure); ///

Display and rotate the root CA.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --ca-cert via
  • --ca-key via
  • --cert-expiry via
  • --config via
  • --debug via
  • --detach via
  • --external-ca via
  • --log-level via
  • --quiet via
  • --rotate via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmCa(DockerSwarmCaSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmCa(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmCaSettings())); - /// + /// public static IEnumerable<(DockerSwarmCaSettings Settings, IReadOnlyCollection Output)> DockerSwarmCa(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmCa, degreeOfParallelism, completeOnFailure); ///

Manage the docker engine.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerEngine(DockerEngineSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerEngine(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerEngineSettings())); - /// + /// public static IEnumerable<(DockerEngineSettings Settings, IReadOnlyCollection Output)> DockerEngine(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerEngine, degreeOfParallelism, completeOnFailure); ///

Remove unused data.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --config via
  • --debug via
  • --filter via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --volumes via
public static IReadOnlyCollection DockerSystemPrune(DockerSystemPruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSystemPrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSystemPruneSettings())); - /// + /// public static IEnumerable<(DockerSystemPruneSettings Settings, IReadOnlyCollection Output)> DockerSystemPrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSystemPrune, degreeOfParallelism, completeOnFailure); ///

Manage builds.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerBuilder(DockerBuilderSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuilder(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuilderSettings())); - /// + /// public static IEnumerable<(DockerBuilderSettings Settings, IReadOnlyCollection Output)> DockerBuilder(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuilder, degreeOfParallelism, completeOnFailure); ///

Pause all processes within one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerPause(DockerContainerPauseSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerPause(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerPauseSettings())); - /// + /// public static IEnumerable<(DockerContainerPauseSettings Settings, IReadOnlyCollection Output)> DockerContainerPause(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerPause, degreeOfParallelism, completeOnFailure); ///

Create a new image from a container's changes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <repository> via
  • --author via
  • --change via
  • --config via
  • --debug via
  • --log-level via
  • --message via
  • --pause via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerCommit(DockerContainerCommitSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerCommit(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerCommitSettings())); - /// + /// public static IEnumerable<(DockerContainerCommitSettings Settings, IReadOnlyCollection Output)> DockerContainerCommit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerCommit, degreeOfParallelism, completeOnFailure); ///

List contexts.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextLs(DockerContextLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextLsSettings())); - /// + /// public static IEnumerable<(DockerContextLsSettings Settings, IReadOnlyCollection Output)> DockerContextLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextLs, degreeOfParallelism, completeOnFailure); ///

Remove one or more contexts.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <contexts> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextRm(DockerContextRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextRmSettings())); - /// + /// public static IEnumerable<(DockerContextRmSettings Settings, IReadOnlyCollection Output)> DockerContextRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextRm, degreeOfParallelism, completeOnFailure); ///

List the tasks in the stack.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stack> via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --kubeconfig via
  • --log-level via
  • --namespace via
  • --no-resolve via
  • --no-trunc via
  • --orchestrator via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStackPs(DockerStackPsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStackPs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackPsSettings())); - /// + /// public static IEnumerable<(DockerStackPsSettings Settings, IReadOnlyCollection Output)> DockerStackPs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStackPs, degreeOfParallelism, completeOnFailure); ///

Create a new container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <image> via
  • --add-host via
  • --attach via
  • --blkio-weight via
  • --blkio-weight-device via
  • --cap-add via
  • --cap-drop via
  • --cgroup-parent via
  • --cidfile via
  • --config via
  • --cpu-count via
  • --cpu-percent via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --device via
  • --device-cgroup-rule via
  • --device-read-bps via
  • --device-read-iops via
  • --device-write-bps via
  • --device-write-iops via
  • --disable-content-trust via
  • --dns via
  • --dns-opt via
  • --dns-option via
  • --dns-search via
  • --domainname via
  • --entrypoint via
  • --env via
  • --env-file via
  • --expose via
  • --gpus via
  • --group-add via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --help via
  • --hostname via
  • --init via
  • --interactive via
  • --io-maxbandwidth via
  • --io-maxiops via
  • --ip via
  • --ip6 via
  • --ipc via
  • --isolation via
  • --kernel-memory via
  • --label via
  • --label-file via
  • --link via
  • --link-local-ip via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mac-address via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --memory-swappiness via
  • --mount via
  • --name via
  • --net via
  • --net-alias via
  • --network via
  • --network-alias via
  • --no-healthcheck via
  • --oom-kill-disable via
  • --oom-score-adj via
  • --pid via
  • --pids-limit via
  • --platform via
  • --privileged via
  • --publish via
  • --publish-all via
  • --read-only via
  • --restart via
  • --rm via
  • --runtime via
  • --security-opt via
  • --shm-size via
  • --stop-signal via
  • --stop-timeout via
  • --storage-opt via
  • --sysctl via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tmpfs via
  • --tty via
  • --ulimit via
  • --user via
  • --userns via
  • --uts via
  • --volume via
  • --volume-driver via
  • --volumes-from via
  • --workdir via
public static IReadOnlyCollection DockerContainerCreate(DockerContainerCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerCreateSettings())); - /// + /// public static IEnumerable<(DockerContainerCreateSettings Settings, IReadOnlyCollection Output)> DockerContainerCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerCreate, degreeOfParallelism, completeOnFailure); ///

Create a volume.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <volume> via
  • --config via
  • --debug via
  • --driver via
  • --label via
  • --log-level via
  • --name via
  • --opt via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolumeCreate(DockerVolumeCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolumeCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumeCreateSettings())); - /// + /// public static IEnumerable<(DockerVolumeCreateSettings Settings, IReadOnlyCollection Output)> DockerVolumeCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolumeCreate, degreeOfParallelism, completeOnFailure); ///

Manage plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPlugin(DockerPluginSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPlugin(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginSettings())); - /// + /// public static IEnumerable<(DockerPluginSettings Settings, IReadOnlyCollection Output)> DockerPlugin(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPlugin, degreeOfParallelism, completeOnFailure); ///

Log in to a Docker registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <server> via
  • --config via
  • --debug via
  • --log-level via
  • --password via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --username via
public static IReadOnlyCollection DockerLogin(DockerLoginSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerLogin(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerLoginSettings())); - /// + /// public static IEnumerable<(DockerLoginSettings Settings, IReadOnlyCollection Output)> DockerLogin(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerLogin, degreeOfParallelism, completeOnFailure); ///

Manage the unlock key.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --quiet via
  • --rotate via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmUnlockKey(DockerSwarmUnlockKeySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmUnlockKey(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmUnlockKeySettings())); - /// + /// public static IEnumerable<(DockerSwarmUnlockKeySettings Settings, IReadOnlyCollection Output)> DockerSwarmUnlockKey(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmUnlockKey, degreeOfParallelism, completeOnFailure); ///

Start one or more stopped containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --attach via
  • --checkpoint via
  • --checkpoint-dir via
  • --config via
  • --debug via
  • --detach-keys via
  • --interactive via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStart(DockerStartSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStart(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStartSettings())); - /// + /// public static IEnumerable<(DockerStartSettings Settings, IReadOnlyCollection Output)> DockerStart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStart, degreeOfParallelism, completeOnFailure); ///

Initialize a swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --advertise-addr via
  • --autolock via
  • --availability via
  • --cert-expiry via
  • --config via
  • --data-path-addr via
  • --data-path-port via
  • --debug via
  • --default-addr-pool via
  • --default-addr-pool-mask-length via
  • --dispatcher-heartbeat via
  • --external-ca via
  • --force-new-cluster via
  • --listen-addr via
  • --log-level via
  • --max-snapshots via
  • --snapshot-interval via
  • --task-history-limit via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarmInit(DockerSwarmInitSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmInit(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmInitSettings())); - /// + /// public static IEnumerable<(DockerSwarmInitSettings Settings, IReadOnlyCollection Output)> DockerSwarmInit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmInit, degreeOfParallelism, completeOnFailure); ///

Inspect changes to files or directories on a container's filesystem.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerDiff(DockerContainerDiffSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerDiff(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerDiffSettings())); - /// + /// public static IEnumerable<(DockerContainerDiffSettings Settings, IReadOnlyCollection Output)> DockerContainerDiff(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerDiff, degreeOfParallelism, completeOnFailure); ///

Restart one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --time via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerRestart(DockerContainerRestartSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerRestart(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerRestartSettings())); - /// + /// public static IEnumerable<(DockerContainerRestartSettings Settings, IReadOnlyCollection Output)> DockerContainerRestart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerRestart, degreeOfParallelism, completeOnFailure); ///

Manage Docker configs.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerConfig(DockerConfigSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerConfig(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerConfigSettings())); - /// + /// public static IEnumerable<(DockerConfigSettings Settings, IReadOnlyCollection Output)> DockerConfig(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerConfig, degreeOfParallelism, completeOnFailure); ///

Disable a plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugin> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginDisable(DockerPluginDisableSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginDisable(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginDisableSettings())); - /// + /// public static IEnumerable<(DockerPluginDisableSettings Settings, IReadOnlyCollection Output)> DockerPluginDisable(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginDisable, degreeOfParallelism, completeOnFailure); ///

Unpause all processes within one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerUnpause(DockerContainerUnpauseSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerUnpause(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerUnpauseSettings())); - /// + /// public static IEnumerable<(DockerContainerUnpauseSettings Settings, IReadOnlyCollection Output)> DockerContainerUnpause(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerUnpause, degreeOfParallelism, completeOnFailure); ///

Import a context from a tar or zip file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • <file> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextImport(DockerContextImportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextImport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextImportSettings())); - /// + /// public static IEnumerable<(DockerContextImportSettings Settings, IReadOnlyCollection Output)> DockerContextImport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextImport, degreeOfParallelism, completeOnFailure); ///

Remove one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --force via
  • --link via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --volumes via
public static IReadOnlyCollection DockerRm(DockerRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerRmSettings())); - /// + /// public static IEnumerable<(DockerRmSettings Settings, IReadOnlyCollection Output)> DockerRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerRm, degreeOfParallelism, completeOnFailure); ///

Deploy a new stack or update an existing stack.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stack> via
  • --bundle-file via
  • --compose-file via
  • --config via
  • --debug via
  • --log-level via
  • --namespace via
  • --prune via
  • --resolve-image via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --with-registry-auth via
public static IReadOnlyCollection DockerDeploy(DockerDeploySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerDeploy(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerDeploySettings())); - /// + /// public static IEnumerable<(DockerDeploySettings Settings, IReadOnlyCollection Output)> DockerDeploy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerDeploy, degreeOfParallelism, completeOnFailure); ///

Remove one or more nodes from the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <nodes> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodeRm(DockerNodeRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodeRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeRmSettings())); - /// + /// public static IEnumerable<(DockerNodeRmSettings Settings, IReadOnlyCollection Output)> DockerNodeRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodeRm, degreeOfParallelism, completeOnFailure); ///

Remove a checkpoint.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <checkpoint> via
  • <container> via
  • --checkpoint-dir via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerCheckpointRm(DockerCheckpointRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCheckpointRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCheckpointRmSettings())); - /// + /// public static IEnumerable<(DockerCheckpointRmSettings Settings, IReadOnlyCollection Output)> DockerCheckpointRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCheckpointRm, degreeOfParallelism, completeOnFailure); ///

Push an image or a repository to a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --all-tags via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPush(DockerPushSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPush(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPushSettings())); - /// + /// public static IEnumerable<(DockerPushSettings Settings, IReadOnlyCollection Output)> DockerPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPush, degreeOfParallelism, completeOnFailure); ///

Create a network.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <network> via
  • --attachable via
  • --aux-address via
  • --config via
  • --config-from via
  • --config-only via
  • --debug via
  • --driver via
  • --gateway via
  • --ingress via
  • --internal via
  • --ip-range via
  • --ipam-driver via
  • --ipam-opt via
  • --ipv6 via
  • --label via
  • --log-level via
  • --opt via
  • --scope via
  • --subnet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkCreate(DockerNetworkCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkCreateSettings())); - /// + /// public static IEnumerable<(DockerNetworkCreateSettings Settings, IReadOnlyCollection Output)> DockerNetworkCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkCreate, degreeOfParallelism, completeOnFailure); ///

List volumes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolumeLs(DockerVolumeLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolumeLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumeLsSettings())); - /// + /// public static IEnumerable<(DockerVolumeLsSettings Settings, IReadOnlyCollection Output)> DockerVolumeLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolumeLs, degreeOfParallelism, completeOnFailure); ///

Return low-level information about keys and signatures.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustInspect(DockerTrustInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustInspectSettings())); - /// + /// public static IEnumerable<(DockerTrustInspectSettings Settings, IReadOnlyCollection Output)> DockerTrustInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustInspect, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more networks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <networks> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --verbose via
public static IReadOnlyCollection DockerNetworkInspect(DockerNetworkInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkInspectSettings())); - /// + /// public static IEnumerable<(DockerNetworkInspectSettings Settings, IReadOnlyCollection Output)> DockerNetworkInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkInspect, degreeOfParallelism, completeOnFailure); ///

Activate Enterprise Edition.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --containerd via
  • --debug via
  • --display-only via
  • --engine-image via
  • --format via
  • --license via
  • --log-level via
  • --quiet via
  • --registry-prefix via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --version via
public static IReadOnlyCollection DockerEngineActivate(DockerEngineActivateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerEngineActivate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerEngineActivateSettings())); - /// + /// public static IEnumerable<(DockerEngineActivateSettings Settings, IReadOnlyCollection Output)> DockerEngineActivate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerEngineActivate, degreeOfParallelism, completeOnFailure); ///

Set the current docker context.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextUse(DockerContextUseSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextUse(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextUseSettings())); - /// + /// public static IEnumerable<(DockerContextUseSettings Settings, IReadOnlyCollection Output)> DockerContextUse(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextUse, degreeOfParallelism, completeOnFailure); ///

Remove one or more volumes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <volumes> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolumeRm(DockerVolumeRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolumeRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumeRmSettings())); - /// + /// public static IEnumerable<(DockerVolumeRmSettings Settings, IReadOnlyCollection Output)> DockerVolumeRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolumeRm, degreeOfParallelism, completeOnFailure); ///

Create a local manifest list for annotating and pushing to a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <manifestList> via
  • <manifests> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerManifestCreate(DockerManifestCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerManifestCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerManifestCreateSettings())); - /// + /// public static IEnumerable<(DockerManifestCreateSettings Settings, IReadOnlyCollection Output)> DockerManifestCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerManifestCreate, degreeOfParallelism, completeOnFailure); ///

Push a manifest list to a repository.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <manifestList> via
  • --config via
  • --debug via
  • --insecure via
  • --log-level via
  • --purge via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerManifestPush(DockerManifestPushSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerManifestPush(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerManifestPushSettings())); - /// + /// public static IEnumerable<(DockerManifestPushSettings Settings, IReadOnlyCollection Output)> DockerManifestPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerManifestPush, degreeOfParallelism, completeOnFailure); ///

Enable a plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugin> via
  • --config via
  • --debug via
  • --log-level via
  • --timeout via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginEnable(DockerPluginEnableSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginEnable(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginEnableSettings())); - /// + /// public static IEnumerable<(DockerPluginEnableSettings Settings, IReadOnlyCollection Output)> DockerPluginEnable(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginEnable, degreeOfParallelism, completeOnFailure); ///

Import the contents from a tarball to create a filesystem image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <file> via
  • <repository> via
  • --change via
  • --config via
  • --debug via
  • --log-level via
  • --message via
  • --platform via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImport(DockerImportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImportSettings())); - /// + /// public static IEnumerable<(DockerImportSettings Settings, IReadOnlyCollection Output)> DockerImport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImport, degreeOfParallelism, completeOnFailure); ///

Run a command in a new container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <image> via
  • --add-host via
  • --attach via
  • --blkio-weight via
  • --blkio-weight-device via
  • --cap-add via
  • --cap-drop via
  • --cgroup-parent via
  • --cidfile via
  • --config via
  • --cpu-count via
  • --cpu-percent via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --detach via
  • --detach-keys via
  • --device via
  • --device-cgroup-rule via
  • --device-read-bps via
  • --device-read-iops via
  • --device-write-bps via
  • --device-write-iops via
  • --disable-content-trust via
  • --dns via
  • --dns-opt via
  • --dns-option via
  • --dns-search via
  • --domainname via
  • --entrypoint via
  • --env via
  • --env-file via
  • --expose via
  • --gpus via
  • --group-add via
  • --health-cmd via
  • --health-interval via
  • --health-retries via
  • --health-start-period via
  • --health-timeout via
  • --help via
  • --hostname via
  • --init via
  • --interactive via
  • --io-maxbandwidth via
  • --io-maxiops via
  • --ip via
  • --ip6 via
  • --ipc via
  • --isolation via
  • --kernel-memory via
  • --label via
  • --label-file via
  • --link via
  • --link-local-ip via
  • --log-driver via
  • --log-level via
  • --log-opt via
  • --mac-address via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --memory-swappiness via
  • --mount via
  • --name via
  • --net via
  • --net-alias via
  • --network via
  • --network-alias via
  • --no-healthcheck via
  • --oom-kill-disable via
  • --oom-score-adj via
  • --pid via
  • --pids-limit via
  • --platform via
  • --privileged via
  • --publish via
  • --publish-all via
  • --read-only via
  • --restart via
  • --rm via
  • --runtime via
  • --security-opt via
  • --shm-size via
  • --sig-proxy via
  • --stop-signal via
  • --stop-timeout via
  • --storage-opt via
  • --sysctl via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tmpfs via
  • --tty via
  • --ulimit via
  • --user via
  • --userns via
  • --uts via
  • --volume via
  • --volume-driver via
  • --volumes-from via
  • --workdir via
public static IReadOnlyCollection DockerContainerRun(DockerContainerRunSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerRun(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerRunSettings())); - /// + /// public static IEnumerable<(DockerContainerRunSettings Settings, IReadOnlyCollection Output)> DockerContainerRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerRun, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more nodes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <selves> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --pretty via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodeInspect(DockerNodeInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodeInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeInspectSettings())); - /// + /// public static IEnumerable<(DockerNodeInspectSettings Settings, IReadOnlyCollection Output)> DockerNodeInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodeInspect, degreeOfParallelism, completeOnFailure); ///

Save one or more images to a tar archive (streamed to STDOUT by default).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --log-level via
  • --output via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSave(DockerSaveSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSave(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSaveSettings())); - /// + /// public static IEnumerable<(DockerSaveSettings Settings, IReadOnlyCollection Output)> DockerSave(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSave, degreeOfParallelism, completeOnFailure); ///

Display a live stream of container(s) resource usage statistics.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --all via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --no-stream via
  • --no-trunc via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerStats(DockerContainerStatsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerStats(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerStatsSettings())); - /// + /// public static IEnumerable<(DockerContainerStatsSettings Settings, IReadOnlyCollection Output)> DockerContainerStats(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerStats, degreeOfParallelism, completeOnFailure); ///

Run a command in a running container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <container> via
  • --config via
  • --debug via
  • --detach via
  • --detach-keys via
  • --env via
  • --interactive via
  • --log-level via
  • --privileged via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tty via
  • --user via
  • --workdir via
public static IReadOnlyCollection DockerContainerExec(DockerContainerExecSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerExec(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerExecSettings())); - /// + /// public static IEnumerable<(DockerContainerExecSettings Settings, IReadOnlyCollection Output)> DockerContainerExec(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerExec, degreeOfParallelism, completeOnFailure); ///

List nodes in the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodeLs(DockerNodeLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodeLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeLsSettings())); - /// + /// public static IEnumerable<(DockerNodeLsSettings Settings, IReadOnlyCollection Output)> DockerNodeLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodeLs, degreeOfParallelism, completeOnFailure); ///

Join a swarm as a node and/or manager.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --advertise-addr via
  • --availability via
  • --config via
  • --data-path-addr via
  • --debug via
  • --listen-addr via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --token via
public static IReadOnlyCollection DockerSwarmJoin(DockerSwarmJoinSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarmJoin(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmJoinSettings())); - /// + /// public static IEnumerable<(DockerSwarmJoinSettings Settings, IReadOnlyCollection Output)> DockerSwarmJoin(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarmJoin, degreeOfParallelism, completeOnFailure); ///

Fetch the logs of a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --details via
  • --follow via
  • --log-level via
  • --since via
  • --tail via
  • --timestamps via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --until via
public static IReadOnlyCollection DockerContainerLogs(DockerContainerLogsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerLogs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerLogsSettings())); - /// + /// public static IEnumerable<(DockerContainerLogsSettings Settings, IReadOnlyCollection Output)> DockerContainerLogs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerLogs, degreeOfParallelism, completeOnFailure); ///

List checkpoints for a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --checkpoint-dir via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerCheckpointLs(DockerCheckpointLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCheckpointLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCheckpointLsSettings())); - /// + /// public static IEnumerable<(DockerCheckpointLsSettings Settings, IReadOnlyCollection Output)> DockerCheckpointLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCheckpointLs, degreeOfParallelism, completeOnFailure); ///

Kill one or more running containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --signal via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerKill(DockerContainerKillSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerKill(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerKillSettings())); - /// + /// public static IEnumerable<(DockerContainerKillSettings Settings, IReadOnlyCollection Output)> DockerContainerKill(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerKill, degreeOfParallelism, completeOnFailure); ///

Install a plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <keyValues> via
  • <plugin> via
  • --alias via
  • --config via
  • --debug via
  • --disable via
  • --disable-content-trust via
  • --grant-all-permissions via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginInstall(DockerPluginInstallSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginInstall(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginInstallSettings())); - /// + /// public static IEnumerable<(DockerPluginInstallSettings Settings, IReadOnlyCollection Output)> DockerPluginInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginInstall, degreeOfParallelism, completeOnFailure); ///

Remove unused images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --config via
  • --debug via
  • --filter via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImagePrune(DockerImagePruneSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImagePrune(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImagePruneSettings())); - /// + /// public static IEnumerable<(DockerImagePruneSettings Settings, IReadOnlyCollection Output)> DockerImagePrune(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImagePrune, degreeOfParallelism, completeOnFailure); ///

Import the contents from a tarball to create a filesystem image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <file> via
  • <repository> via
  • --change via
  • --config via
  • --debug via
  • --log-level via
  • --message via
  • --platform via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageImport(DockerImageImportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageImport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageImportSettings())); - /// + /// public static IEnumerable<(DockerImageImportSettings Settings, IReadOnlyCollection Output)> DockerImageImport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageImport, degreeOfParallelism, completeOnFailure); ///

Inspect changes to files or directories on a container's filesystem.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerDiff(DockerDiffSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerDiff(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerDiffSettings())); - /// + /// public static IEnumerable<(DockerDiffSettings Settings, IReadOnlyCollection Output)> DockerDiff(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerDiff, degreeOfParallelism, completeOnFailure); ///

Unpause all processes within one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerUnpause(DockerUnpauseSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerUnpause(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerUnpauseSettings())); - /// + /// public static IEnumerable<(DockerUnpauseSettings Settings, IReadOnlyCollection Output)> DockerUnpause(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerUnpause, degreeOfParallelism, completeOnFailure); ///

List containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --last via
  • --latest via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --size via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerLs(DockerContainerLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerLsSettings())); - /// + /// public static IEnumerable<(DockerContainerLsSettings Settings, IReadOnlyCollection Output)> DockerContainerLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerLs, degreeOfParallelism, completeOnFailure); ///

List tasks running on one or more nodes, defaults to current node.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <nodes> via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --no-resolve via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodePs(DockerNodePsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodePs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodePsSettings())); - /// + /// public static IEnumerable<(DockerNodePsSettings Settings, IReadOnlyCollection Output)> DockerNodePs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodePs, degreeOfParallelism, completeOnFailure); ///

Display the running processes of a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <options> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerTop(DockerContainerTopSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerTop(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerTopSettings())); - /// + /// public static IEnumerable<(DockerContainerTopSettings Settings, IReadOnlyCollection Output)> DockerContainerTop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerTop, degreeOfParallelism, completeOnFailure); ///

Rename a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <newName> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerRename(DockerContainerRenameSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerRename(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerRenameSettings())); - /// + /// public static IEnumerable<(DockerContainerRenameSettings Settings, IReadOnlyCollection Output)> DockerContainerRename(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerRename, degreeOfParallelism, completeOnFailure); ///

Show the history of an image.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <image> via
  • --config via
  • --debug via
  • --format via
  • --human via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageHistory(DockerImageHistorySettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageHistory(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageHistorySettings())); - /// + /// public static IEnumerable<(DockerImageHistorySettings Settings, IReadOnlyCollection Output)> DockerImageHistory(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageHistory, degreeOfParallelism, completeOnFailure); ///

List containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --last via
  • --latest via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --size via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPs(DockerPsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPsSettings())); - /// + /// public static IEnumerable<(DockerPsSettings Settings, IReadOnlyCollection Output)> DockerPs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPs, degreeOfParallelism, completeOnFailure); ///

Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <sourceImage> via
  • <targetImage> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageTag(DockerImageTagSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageTag(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageTagSettings())); - /// + /// public static IEnumerable<(DockerImageTagSettings Settings, IReadOnlyCollection Output)> DockerImageTag(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageTag, degreeOfParallelism, completeOnFailure); ///

Export a container's filesystem as a tar archive.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --log-level via
  • --output via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerExport(DockerExportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerExport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerExportSettings())); - /// + /// public static IEnumerable<(DockerExportSettings Settings, IReadOnlyCollection Output)> DockerExport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerExport, degreeOfParallelism, completeOnFailure); ///

Disconnect a container from a network.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • <network> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetworkDisconnect(DockerNetworkDisconnectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetworkDisconnect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkDisconnectSettings())); - /// + /// public static IEnumerable<(DockerNetworkDisconnectSettings Settings, IReadOnlyCollection Output)> DockerNetworkDisconnect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetworkDisconnect, degreeOfParallelism, completeOnFailure); ///

Build an image from a Dockerfile.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --add-host via
  • --build-arg via
  • --cache-from via
  • --cgroup-parent via
  • --compress via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-shares via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --disable-content-trust via
  • --file via
  • --force-rm via
  • --iidfile via
  • --isolation via
  • --label via
  • --log-level via
  • --memory via
  • --memory-swap via
  • --network via
  • --no-cache via
  • --output via
  • --platform via
  • --progress via
  • --pull via
  • --quiet via
  • --rm via
  • --secret via
  • --security-opt via
  • --shm-size via
  • --squash via
  • --ssh via
  • --stream via
  • --tag via
  • --target via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --ulimit via
public static IReadOnlyCollection DockerBuilderBuild(DockerBuilderBuildSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuilderBuild(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuilderBuildSettings())); - /// + /// public static IEnumerable<(DockerBuilderBuildSettings Settings, IReadOnlyCollection Output)> DockerBuilderBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuilderBuild, degreeOfParallelism, completeOnFailure); ///

Build an image from a Dockerfile using Docker Buildx plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --add-host via
  • --allow via
  • --build-arg via
  • --builder via
  • --cache-from via
  • --cache-to via
  • --cgroup-parent via
  • --compress via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-shares via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --file via
  • --iidfile via
  • --isolation via
  • --label via
  • --load via
  • --log-level via
  • --memory via
  • --memory-swap via
  • --network via
  • --no-cache via
  • --output via
  • --platform via
  • --progress via
  • --pull via
  • --push via
  • --quiet via
  • --rm via
  • --secret via
  • --security-opt via
  • --shm-size via
  • --ssh via
  • --tag via
  • --target via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --ulimit via
public static IReadOnlyCollection DockerBuildxBuild(DockerBuildxBuildSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuildxBuild(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuildxBuildSettings())); - /// + /// public static IEnumerable<(DockerBuildxBuildSettings Settings, IReadOnlyCollection Output)> DockerBuildxBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuildxBuild, degreeOfParallelism, completeOnFailure); ///

Create a new builder instance using Docker Buildx plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --append via
  • --bootstrap via
  • --buildkitd-flags via
  • --buildkitd-flags via
  • --config via
  • --config via
  • --debug via
  • --driver via
  • --driver-opt via
  • --leave via
  • --log-level via
  • --name via
  • --node via
  • --platform via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --use via
public static IReadOnlyCollection DockerBuildxCreate(DockerBuildxCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuildxCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuildxCreateSettings())); - /// + /// public static IEnumerable<(DockerBuildxCreateSettings Settings, IReadOnlyCollection Output)> DockerBuildxCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuildxCreate, degreeOfParallelism, completeOnFailure); ///

Display a live stream of container(s) resource usage statistics.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --all via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --no-stream via
  • --no-trunc via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStats(DockerStatsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStats(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStatsSettings())); - /// + /// public static IEnumerable<(DockerStatsSettings Settings, IReadOnlyCollection Output)> DockerStats(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStats, degreeOfParallelism, completeOnFailure); ///

Search the Docker Hub for images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <term> via
  • --automated via
  • --config via
  • --debug via
  • --filter via
  • --format via
  • --limit via
  • --log-level via
  • --no-trunc via
  • --stars via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSearch(DockerSearchSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSearch(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSearchSettings())); - /// + /// public static IEnumerable<(DockerSearchSettings Settings, IReadOnlyCollection Output)> DockerSearch(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSearch, degreeOfParallelism, completeOnFailure); ///

Manage Docker image manifests and manifest lists.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerManifest(DockerManifestSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerManifest(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerManifestSettings())); - /// + /// public static IEnumerable<(DockerManifestSettings Settings, IReadOnlyCollection Output)> DockerManifest(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerManifest, degreeOfParallelism, completeOnFailure); ///

Push a plugin to a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugin> via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginPush(DockerPluginPushSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginPush(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginPushSettings())); - /// + /// public static IEnumerable<(DockerPluginPushSettings Settings, IReadOnlyCollection Output)> DockerPluginPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginPush, degreeOfParallelism, completeOnFailure); ///

Load an image from a tar archive or STDIN.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --input via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageLoad(DockerImageLoadSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageLoad(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageLoadSettings())); - /// + /// public static IEnumerable<(DockerImageLoadSettings Settings, IReadOnlyCollection Output)> DockerImageLoad(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageLoad, degreeOfParallelism, completeOnFailure); ///

Manage Swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerSwarm(DockerSwarmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSwarm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSwarmSettings())); - /// + /// public static IEnumerable<(DockerSwarmSettings Settings, IReadOnlyCollection Output)> DockerSwarm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSwarm, degreeOfParallelism, completeOnFailure); ///

Remove one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --force via
  • --link via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --volumes via
public static IReadOnlyCollection DockerContainerRm(DockerContainerRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerRmSettings())); - /// + /// public static IEnumerable<(DockerContainerRmSettings Settings, IReadOnlyCollection Output)> DockerContainerRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerRm, degreeOfParallelism, completeOnFailure); ///

Update configuration of one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --blkio-weight via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-rt-period via
  • --cpu-rt-runtime via
  • --cpu-shares via
  • --cpus via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --kernel-memory via
  • --log-level via
  • --memory via
  • --memory-reservation via
  • --memory-swap via
  • --pids-limit via
  • --restart via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerUpdate(DockerContainerUpdateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerUpdate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerUpdateSettings())); - /// + /// public static IEnumerable<(DockerContainerUpdateSettings Settings, IReadOnlyCollection Output)> DockerContainerUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerUpdate, degreeOfParallelism, completeOnFailure); ///

Change settings for a plugin.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <keyValues> via
  • <plugin> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginSet(DockerPluginSetSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginSet(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginSetSettings())); - /// + /// public static IEnumerable<(DockerPluginSetSettings Settings, IReadOnlyCollection Output)> DockerPluginSet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginSet, degreeOfParallelism, completeOnFailure); ///

Block until one or more containers stop, then print their exit codes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerWait(DockerWaitSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerWait(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerWaitSettings())); - /// + /// public static IEnumerable<(DockerWaitSettings Settings, IReadOnlyCollection Output)> DockerWait(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerWait, degreeOfParallelism, completeOnFailure); ///

Export a context to a tar or kubeconfig file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • <file> via
  • --config via
  • --debug via
  • --kubeconfig via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextExport(DockerContextExportSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextExport(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextExportSettings())); - /// + /// public static IEnumerable<(DockerContextExportSettings Settings, IReadOnlyCollection Output)> DockerContextExport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextExport, degreeOfParallelism, completeOnFailure); ///

Add additional information to a local image manifest.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <manifest> via
  • <manifestList> via
  • --arch via
  • --config via
  • --debug via
  • --log-level via
  • --os via
  • --os-features via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --variant via
public static IReadOnlyCollection DockerManifestAnnotate(DockerManifestAnnotateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerManifestAnnotate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerManifestAnnotateSettings())); - /// + /// public static IEnumerable<(DockerManifestAnnotateSettings Settings, IReadOnlyCollection Output)> DockerManifestAnnotate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerManifestAnnotate, degreeOfParallelism, completeOnFailure); ///

Pull an image or a repository from a registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --all-tags via
  • --config via
  • --debug via
  • --disable-content-trust via
  • --log-level via
  • --platform via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImagePull(DockerImagePullSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImagePull(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImagePullSettings())); - /// + /// public static IEnumerable<(DockerImagePullSettings Settings, IReadOnlyCollection Output)> DockerImagePull(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImagePull, degreeOfParallelism, completeOnFailure); ///

Get real time events from the server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --filter via
  • --format via
  • --log-level via
  • --since via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --until via
public static IReadOnlyCollection DockerEvents(DockerEventsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerEvents(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerEventsSettings())); - /// + /// public static IEnumerable<(DockerEventsSettings Settings, IReadOnlyCollection Output)> DockerEvents(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerEvents, degreeOfParallelism, completeOnFailure); ///

List stacks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all-namespaces via
  • --config via
  • --debug via
  • --format via
  • --kubeconfig via
  • --log-level via
  • --namespace via
  • --orchestrator via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStackLs(DockerStackLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStackLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackLsSettings())); - /// + /// public static IEnumerable<(DockerStackLsSettings Settings, IReadOnlyCollection Output)> DockerStackLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStackLs, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --size via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerInspect(DockerContainerInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerInspectSettings())); - /// + /// public static IEnumerable<(DockerContainerInspectSettings Settings, IReadOnlyCollection Output)> DockerContainerInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerInspect, degreeOfParallelism, completeOnFailure); ///

Kill one or more running containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --signal via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerKill(DockerKillSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerKill(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerKillSettings())); - /// + /// public static IEnumerable<(DockerKillSettings Settings, IReadOnlyCollection Output)> DockerKill(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerKill, degreeOfParallelism, completeOnFailure); ///

Create a checkpoint from a running container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <checkpoint> via
  • <container> via
  • --checkpoint-dir via
  • --config via
  • --debug via
  • --leave-running via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerCheckpointCreate(DockerCheckpointCreateSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerCheckpointCreate(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerCheckpointCreateSettings())); - /// + /// public static IEnumerable<(DockerCheckpointCreateSettings Settings, IReadOnlyCollection Output)> DockerCheckpointCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerCheckpointCreate, degreeOfParallelism, completeOnFailure); ///

Pause all processes within one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPause(DockerPauseSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPause(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPauseSettings())); - /// + /// public static IEnumerable<(DockerPauseSettings Settings, IReadOnlyCollection Output)> DockerPause(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPause, degreeOfParallelism, completeOnFailure); ///

Fetch the logs of a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <container> via
  • --config via
  • --debug via
  • --details via
  • --follow via
  • --log-level via
  • --since via
  • --tail via
  • --timestamps via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --until via
public static IReadOnlyCollection DockerLogs(DockerLogsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerLogs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerLogsSettings())); - /// + /// public static IEnumerable<(DockerLogsSettings Settings, IReadOnlyCollection Output)> DockerLogs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerLogs, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more contexts.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <context> via
  • <contexts> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContextInspect(DockerContextInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContextInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextInspectSettings())); - /// + /// public static IEnumerable<(DockerContextInspectSettings Settings, IReadOnlyCollection Output)> DockerContextInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContextInspect, degreeOfParallelism, completeOnFailure); ///

Promote one or more nodes to manager in the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <nodes> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodePromote(DockerNodePromoteSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodePromote(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodePromoteSettings())); - /// + /// public static IEnumerable<(DockerNodePromoteSettings Settings, IReadOnlyCollection Output)> DockerNodePromote(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodePromote, degreeOfParallelism, completeOnFailure); ///

Demote one or more nodes from manager in the swarm.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <nodes> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNodeDemote(DockerNodeDemoteSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNodeDemote(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNodeDemoteSettings())); - /// + /// public static IEnumerable<(DockerNodeDemoteSettings Settings, IReadOnlyCollection Output)> DockerNodeDemote(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNodeDemote, degreeOfParallelism, completeOnFailure); ///

Run a command in a running container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <args> via
  • <command> via
  • <container> via
  • --config via
  • --debug via
  • --detach via
  • --detach-keys via
  • --env via
  • --interactive via
  • --log-level via
  • --privileged via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --tty via
  • --user via
  • --workdir via
public static IReadOnlyCollection DockerExec(DockerExecSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerExec(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerExecSettings())); - /// + /// public static IEnumerable<(DockerExecSettings Settings, IReadOnlyCollection Output)> DockerExec(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerExec, degreeOfParallelism, completeOnFailure); ///

Remove one or more images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <images> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --no-prune via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageRm(DockerImageRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageRmSettings())); - /// + /// public static IEnumerable<(DockerImageRmSettings Settings, IReadOnlyCollection Output)> DockerImageRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageRm, degreeOfParallelism, completeOnFailure); ///

Manage images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImage(DockerImageSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImage(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageSettings())); - /// + /// public static IEnumerable<(DockerImageSettings Settings, IReadOnlyCollection Output)> DockerImage(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImage, degreeOfParallelism, completeOnFailure); ///

Manage contexts.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContext(DockerContextSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContext(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContextSettings())); - /// + /// public static IEnumerable<(DockerContextSettings Settings, IReadOnlyCollection Output)> DockerContext(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContext, degreeOfParallelism, completeOnFailure); ///

Manage volumes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerVolume(DockerVolumeSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerVolume(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerVolumeSettings())); - /// + /// public static IEnumerable<(DockerVolumeSettings Settings, IReadOnlyCollection Output)> DockerVolume(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerVolume, degreeOfParallelism, completeOnFailure); ///

Start one or more stopped containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --attach via
  • --checkpoint via
  • --checkpoint-dir via
  • --config via
  • --debug via
  • --detach-keys via
  • --interactive via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerContainerStart(DockerContainerStartSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerContainerStart(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerContainerStartSettings())); - /// + /// public static IEnumerable<(DockerContainerStartSettings Settings, IReadOnlyCollection Output)> DockerContainerStart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerContainerStart, degreeOfParallelism, completeOnFailure); ///

Display detailed information on one or more plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugins> via
  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerPluginInspect(DockerPluginInspectSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerPluginInspect(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerPluginInspectSettings())); - /// + /// public static IEnumerable<(DockerPluginInspectSettings Settings, IReadOnlyCollection Output)> DockerPluginInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerPluginInspect, degreeOfParallelism, completeOnFailure); ///

Log out from a Docker registry.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <server> via
  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerLogout(DockerLogoutSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerLogout(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerLogoutSettings())); - /// + /// public static IEnumerable<(DockerLogoutSettings Settings, IReadOnlyCollection Output)> DockerLogout(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerLogout, degreeOfParallelism, completeOnFailure); ///

Manage networks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerNetwork(DockerNetworkSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerNetwork(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerNetworkSettings())); - /// + /// public static IEnumerable<(DockerNetworkSettings Settings, IReadOnlyCollection Output)> DockerNetwork(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerNetwork, degreeOfParallelism, completeOnFailure); ///

List images.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <repository> via
  • --all via
  • --config via
  • --debug via
  • --digests via
  • --filter via
  • --format via
  • --log-level via
  • --no-trunc via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerImageLs(DockerImageLsSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerImageLs(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerImageLsSettings())); - /// + /// public static IEnumerable<(DockerImageLsSettings Settings, IReadOnlyCollection Output)> DockerImageLs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerImageLs, degreeOfParallelism, completeOnFailure); ///

Show docker disk usage.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --config via
  • --debug via
  • --format via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --verbose via
public static IReadOnlyCollection DockerSystemDf(DockerSystemDfSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerSystemDf(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerSystemDfSettings())); - /// + /// public static IEnumerable<(DockerSystemDfSettings Settings, IReadOnlyCollection Output)> DockerSystemDf(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerSystemDf, degreeOfParallelism, completeOnFailure); ///

Revert changes to a service's configuration.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <service> via
  • --config via
  • --debug via
  • --detach via
  • --log-level via
  • --quiet via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerServiceRollback(DockerServiceRollbackSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerServiceRollback(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerServiceRollbackSettings())); - /// + /// public static IEnumerable<(DockerServiceRollbackSettings Settings, IReadOnlyCollection Output)> DockerServiceRollback(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerServiceRollback, degreeOfParallelism, completeOnFailure); ///

Restart one or more containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <containers> via
  • --config via
  • --debug via
  • --log-level via
  • --time via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerRestart(DockerRestartSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerRestart(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerRestartSettings())); - /// + /// public static IEnumerable<(DockerRestartSettings Settings, IReadOnlyCollection Output)> DockerRestart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerRestart, degreeOfParallelism, completeOnFailure); ///

Remove a signer.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • <repositories> via
  • --config via
  • --debug via
  • --force via
  • --log-level via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerTrustSignerRemove(DockerTrustSignerRemoveSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerTrustSignerRemove(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerTrustSignerRemoveSettings())); - /// + /// public static IEnumerable<(DockerTrustSignerRemoveSettings Settings, IReadOnlyCollection Output)> DockerTrustSignerRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerTrustSignerRemove, degreeOfParallelism, completeOnFailure); ///

Remove one or more stacks.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stacks> via
  • --config via
  • --debug via
  • --kubeconfig via
  • --log-level via
  • --namespace via
  • --orchestrator via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
public static IReadOnlyCollection DockerStackRm(DockerStackRmSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerStackRm(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerStackRmSettings())); - /// + /// public static IEnumerable<(DockerStackRmSettings Settings, IReadOnlyCollection Output)> DockerStackRm(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerStackRm, degreeOfParallelism, completeOnFailure); ///

Build an image from a Dockerfile.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --add-host via
  • --build-arg via
  • --cache-from via
  • --cgroup-parent via
  • --compress via
  • --config via
  • --cpu-period via
  • --cpu-quota via
  • --cpu-shares via
  • --cpuset-cpus via
  • --cpuset-mems via
  • --debug via
  • --disable-content-trust via
  • --file via
  • --force-rm via
  • --iidfile via
  • --isolation via
  • --label via
  • --log-level via
  • --memory via
  • --memory-swap via
  • --network via
  • --no-cache via
  • --output via
  • --platform via
  • --progress via
  • --pull via
  • --quiet via
  • --rm via
  • --secret via
  • --security-opt via
  • --shm-size via
  • --squash via
  • --ssh via
  • --stream via
  • --tag via
  • --target via
  • --tls via
  • --tlscacert via
  • --tlscert via
  • --tlskey via
  • --tlsverify via
  • --ulimit via
public static IReadOnlyCollection DockerBuild(DockerBuildSettings options = null) => new DockerTasks().Run(options); - /// + /// public static IReadOnlyCollection DockerBuild(Configure configurator) => new DockerTasks().Run(configurator.Invoke(new DockerBuildSettings())); - /// + /// public static IEnumerable<(DockerBuildSettings Settings, IReadOnlyCollection Output)> DockerBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DockerBuild, degreeOfParallelism, completeOnFailure); } #region DockerConfigRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerConfigRm), Arguments = "config rm")] public partial class DockerConfigRmSettings : DockerOptionsBase @@ -1346,7 +1342,7 @@ public partial class DockerConfigRmSettings : DockerOptionsBase } #endregion #region DockerLoadSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerLoad), Arguments = "load")] public partial class DockerLoadSettings : DockerOptionsBase @@ -1358,7 +1354,7 @@ public partial class DockerLoadSettings : DockerOptionsBase } #endregion #region DockerContainerPruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerPrune), Arguments = "container prune")] public partial class DockerContainerPruneSettings : DockerOptionsBase @@ -1370,7 +1366,7 @@ public partial class DockerContainerPruneSettings : DockerOptionsBase } #endregion #region DockerTrustSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrust), Arguments = "trust")] public partial class DockerTrustSettings : DockerOptionsBase @@ -1378,7 +1374,7 @@ public partial class DockerTrustSettings : DockerOptionsBase } #endregion #region DockerStackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStack), Arguments = "stack")] public partial class DockerStackSettings : DockerOptionsBase @@ -1390,7 +1386,7 @@ public partial class DockerStackSettings : DockerOptionsBase } #endregion #region DockerPullSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPull), Arguments = "pull")] public partial class DockerPullSettings : DockerOptionsBase @@ -1408,7 +1404,7 @@ public partial class DockerPullSettings : DockerOptionsBase } #endregion #region DockerTrustSignSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustSign), Arguments = "trust sign IMAGE:TAG")] public partial class DockerTrustSignSettings : DockerOptionsBase @@ -1416,7 +1412,7 @@ public partial class DockerTrustSignSettings : DockerOptionsBase } #endregion #region DockerCheckpointSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCheckpoint), Arguments = "checkpoint")] public partial class DockerCheckpointSettings : DockerOptionsBase @@ -1424,7 +1420,7 @@ public partial class DockerCheckpointSettings : DockerOptionsBase } #endregion #region DockerTrustSignerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustSigner), Arguments = "trust signer")] public partial class DockerTrustSignerSettings : DockerOptionsBase @@ -1432,7 +1428,7 @@ public partial class DockerTrustSignerSettings : DockerOptionsBase } #endregion #region DockerConfigInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerConfigInspect), Arguments = "config inspect")] public partial class DockerConfigInspectSettings : DockerOptionsBase @@ -1446,7 +1442,7 @@ public partial class DockerConfigInspectSettings : DockerOptionsBase } #endregion #region DockerServiceSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerService), Arguments = "service")] public partial class DockerServiceSettings : DockerOptionsBase @@ -1454,7 +1450,7 @@ public partial class DockerServiceSettings : DockerOptionsBase } #endregion #region DockerTrustKeyGenerateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustKeyGenerate), Arguments = "trust key generate")] public partial class DockerTrustKeyGenerateSettings : DockerOptionsBase @@ -1464,7 +1460,7 @@ public partial class DockerTrustKeyGenerateSettings : DockerOptionsBase } #endregion #region DockerSystemSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSystem), Arguments = "system")] public partial class DockerSystemSettings : DockerOptionsBase @@ -1472,7 +1468,7 @@ public partial class DockerSystemSettings : DockerOptionsBase } #endregion #region DockerConfigLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerConfigLs), Arguments = "config ls")] public partial class DockerConfigLsSettings : DockerOptionsBase @@ -1486,7 +1482,7 @@ public partial class DockerConfigLsSettings : DockerOptionsBase } #endregion #region DockerContextUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextUpdate), Arguments = "context update")] public partial class DockerContextUpdateSettings : DockerOptionsBase @@ -1504,7 +1500,7 @@ public partial class DockerContextUpdateSettings : DockerOptionsBase } #endregion #region DockerStackServicesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStackServices), Arguments = "stack services")] public partial class DockerStackServicesSettings : DockerStackSettings @@ -1522,7 +1518,7 @@ public partial class DockerStackServicesSettings : DockerStackSettings } #endregion #region DockerContainerPortSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerPort), Arguments = "container port")] public partial class DockerContainerPortSettings : DockerOptionsBase @@ -1534,7 +1530,7 @@ public partial class DockerContainerPortSettings : DockerOptionsBase } #endregion #region DockerRenameSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerRename), Arguments = "rename")] public partial class DockerRenameSettings : DockerOptionsBase @@ -1546,7 +1542,7 @@ public partial class DockerRenameSettings : DockerOptionsBase } #endregion #region DockerTagSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTag), Arguments = "tag")] public partial class DockerTagSettings : DockerOptionsBase @@ -1558,7 +1554,7 @@ public partial class DockerTagSettings : DockerOptionsBase } #endregion #region DockerSecretInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSecretInspect), Arguments = "secret inspect")] public partial class DockerSecretInspectSettings : DockerOptionsBase @@ -1572,7 +1568,7 @@ public partial class DockerSecretInspectSettings : DockerOptionsBase } #endregion #region DockerSecretSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSecret), Arguments = "secret")] public partial class DockerSecretSettings : DockerOptionsBase @@ -1580,7 +1576,7 @@ public partial class DockerSecretSettings : DockerOptionsBase } #endregion #region DockerContainerExportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerExport), Arguments = "container export")] public partial class DockerContainerExportSettings : DockerOptionsBase @@ -1592,7 +1588,7 @@ public partial class DockerContainerExportSettings : DockerOptionsBase } #endregion #region DockerHistorySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerHistory), Arguments = "history")] public partial class DockerHistorySettings : DockerOptionsBase @@ -1610,7 +1606,7 @@ public partial class DockerHistorySettings : DockerOptionsBase } #endregion #region DockerServiceCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceCreate), Arguments = "service create")] public partial class DockerServiceCreateSettings : DockerOptionsBase @@ -1756,7 +1752,7 @@ public partial class DockerServiceCreateSettings : DockerOptionsBase } #endregion #region DockerServicePsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServicePs), Arguments = "service ps")] public partial class DockerServicePsSettings : DockerOptionsBase @@ -1776,7 +1772,7 @@ public partial class DockerServicePsSettings : DockerOptionsBase } #endregion #region DockerStopSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStop), Arguments = "stop")] public partial class DockerStopSettings : DockerOptionsBase @@ -1788,7 +1784,7 @@ public partial class DockerStopSettings : DockerOptionsBase } #endregion #region DockerNodeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNode), Arguments = "node")] public partial class DockerNodeSettings : DockerOptionsBase @@ -1796,7 +1792,7 @@ public partial class DockerNodeSettings : DockerOptionsBase } #endregion #region DockerUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerUpdate), Arguments = "update")] public partial class DockerUpdateSettings : DockerOptionsBase @@ -1836,7 +1832,7 @@ public partial class DockerUpdateSettings : DockerOptionsBase } #endregion #region DockerPluginCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginCreate), Arguments = "plugin create")] public partial class DockerPluginCreateSettings : DockerOptionsBase @@ -1850,7 +1846,7 @@ public partial class DockerPluginCreateSettings : DockerOptionsBase } #endregion #region DockerSystemInfoSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSystemInfo), Arguments = "system info")] public partial class DockerSystemInfoSettings : DockerOptionsBase @@ -1860,7 +1856,7 @@ public partial class DockerSystemInfoSettings : DockerOptionsBase } #endregion #region DockerVolumePruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolumePrune), Arguments = "volume prune")] public partial class DockerVolumePruneSettings : DockerOptionsBase @@ -1872,7 +1868,7 @@ public partial class DockerVolumePruneSettings : DockerOptionsBase } #endregion #region DockerPluginUpgradeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginUpgrade), Arguments = "plugin upgrade")] public partial class DockerPluginUpgradeSettings : DockerOptionsBase @@ -1890,7 +1886,7 @@ public partial class DockerPluginUpgradeSettings : DockerOptionsBase } #endregion #region DockerBuilderPruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuilderPrune), Arguments = "builder prune")] public partial class DockerBuilderPruneSettings : DockerOptionsBase @@ -1898,7 +1894,7 @@ public partial class DockerBuilderPruneSettings : DockerOptionsBase } #endregion #region DockerSwarmJoinTokenSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmJoinToken), Arguments = "swarm join-token")] public partial class DockerSwarmJoinTokenSettings : DockerOptionsBase @@ -1912,7 +1908,7 @@ public partial class DockerSwarmJoinTokenSettings : DockerOptionsBase } #endregion #region DockerNodeUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodeUpdate), Arguments = "node update")] public partial class DockerNodeUpdateSettings : DockerOptionsBase @@ -1930,7 +1926,7 @@ public partial class DockerNodeUpdateSettings : DockerOptionsBase } #endregion #region DockerTrustSignerAddSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustSignerAdd), Arguments = "trust signer add")] public partial class DockerTrustSignerAddSettings : DockerOptionsBase @@ -1944,7 +1940,7 @@ public partial class DockerTrustSignerAddSettings : DockerOptionsBase } #endregion #region DockerSwarmUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmUpdate), Arguments = "swarm update")] public partial class DockerSwarmUpdateSettings : DockerOptionsBase @@ -1966,7 +1962,7 @@ public partial class DockerSwarmUpdateSettings : DockerOptionsBase } #endregion #region DockerServiceLogsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceLogs), Arguments = "service logs")] public partial class DockerServiceLogsSettings : DockerOptionsBase @@ -1994,7 +1990,7 @@ public partial class DockerServiceLogsSettings : DockerOptionsBase } #endregion #region DockerServiceLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceLs), Arguments = "service ls")] public partial class DockerServiceLsSettings : DockerOptionsBase @@ -2008,7 +2004,7 @@ public partial class DockerServiceLsSettings : DockerOptionsBase } #endregion #region DockerSwarmUnlockSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmUnlock), Arguments = "swarm unlock")] public partial class DockerSwarmUnlockSettings : DockerOptionsBase @@ -2016,7 +2012,7 @@ public partial class DockerSwarmUnlockSettings : DockerOptionsBase } #endregion #region DockerNetworkLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkLs), Arguments = "network ls")] public partial class DockerNetworkLsSettings : DockerOptionsBase @@ -2032,7 +2028,7 @@ public partial class DockerNetworkLsSettings : DockerOptionsBase } #endregion #region DockerPluginLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginLs), Arguments = "plugin ls")] public partial class DockerPluginLsSettings : DockerOptionsBase @@ -2048,7 +2044,7 @@ public partial class DockerPluginLsSettings : DockerOptionsBase } #endregion #region DockerPluginRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginRm), Arguments = "plugin rm")] public partial class DockerPluginRmSettings : DockerOptionsBase @@ -2060,7 +2056,7 @@ public partial class DockerPluginRmSettings : DockerOptionsBase } #endregion #region DockerImageBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageBuild), Arguments = "image build")] public partial class DockerImageBuildSettings : DockerOptionsBase @@ -2140,7 +2136,7 @@ public partial class DockerImageBuildSettings : DockerOptionsBase } #endregion #region DockerTrustRevokeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustRevoke), Arguments = "trust revoke")] public partial class DockerTrustRevokeSettings : DockerOptionsBase @@ -2152,7 +2148,7 @@ public partial class DockerTrustRevokeSettings : DockerOptionsBase } #endregion #region DockerRmiSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerRmi), Arguments = "rmi")] public partial class DockerRmiSettings : DockerOptionsBase @@ -2166,7 +2162,7 @@ public partial class DockerRmiSettings : DockerOptionsBase } #endregion #region DockerNetworkRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkRm), Arguments = "network rm")] public partial class DockerNetworkRmSettings : DockerOptionsBase @@ -2176,7 +2172,7 @@ public partial class DockerNetworkRmSettings : DockerOptionsBase } #endregion #region DockerVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVersion), Arguments = "version")] public partial class DockerVersionSettings : DockerOptionsBase @@ -2188,7 +2184,7 @@ public partial class DockerVersionSettings : DockerOptionsBase } #endregion #region DockerSecretCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSecretCreate), Arguments = "secret create")] public partial class DockerSecretCreateSettings : DockerOptionsBase @@ -2206,7 +2202,7 @@ public partial class DockerSecretCreateSettings : DockerOptionsBase } #endregion #region DockerServiceRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceRm), Arguments = "service rm")] public partial class DockerServiceRmSettings : DockerOptionsBase @@ -2216,7 +2212,7 @@ public partial class DockerServiceRmSettings : DockerOptionsBase } #endregion #region DockerTrustKeyLoadSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustKeyLoad), Arguments = "trust key load")] public partial class DockerTrustKeyLoadSettings : DockerOptionsBase @@ -2228,7 +2224,7 @@ public partial class DockerTrustKeyLoadSettings : DockerOptionsBase } #endregion #region DockerSecretRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSecretRm), Arguments = "secret rm")] public partial class DockerSecretRmSettings : DockerOptionsBase @@ -2238,7 +2234,7 @@ public partial class DockerSecretRmSettings : DockerOptionsBase } #endregion #region DockerImageInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageInspect), Arguments = "image inspect")] public partial class DockerImageInspectSettings : DockerOptionsBase @@ -2250,7 +2246,7 @@ public partial class DockerImageInspectSettings : DockerOptionsBase } #endregion #region DockerImageSaveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageSave), Arguments = "image save")] public partial class DockerImageSaveSettings : DockerOptionsBase @@ -2262,7 +2258,7 @@ public partial class DockerImageSaveSettings : DockerOptionsBase } #endregion #region DockerTrustKeySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustKey), Arguments = "trust key")] public partial class DockerTrustKeySettings : DockerOptionsBase @@ -2270,7 +2266,7 @@ public partial class DockerTrustKeySettings : DockerOptionsBase } #endregion #region DockerContainerAttachSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerAttach), Arguments = "container attach")] public partial class DockerContainerAttachSettings : DockerOptionsBase @@ -2286,7 +2282,7 @@ public partial class DockerContainerAttachSettings : DockerOptionsBase } #endregion #region DockerContextCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextCreate), Arguments = "context create")] public partial class DockerContextCreateSettings : DockerOptionsBase @@ -2306,7 +2302,7 @@ public partial class DockerContextCreateSettings : DockerOptionsBase } #endregion #region DockerConfigCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerConfigCreate), Arguments = "config create")] public partial class DockerConfigCreateSettings : DockerOptionsBase @@ -2322,7 +2318,7 @@ public partial class DockerConfigCreateSettings : DockerOptionsBase } #endregion #region DockerVolumeInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolumeInspect), Arguments = "volume inspect")] public partial class DockerVolumeInspectSettings : DockerOptionsBase @@ -2334,7 +2330,7 @@ public partial class DockerVolumeInspectSettings : DockerOptionsBase } #endregion #region DockerContainerStopSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerStop), Arguments = "container stop")] public partial class DockerContainerStopSettings : DockerOptionsBase @@ -2346,7 +2342,7 @@ public partial class DockerContainerStopSettings : DockerOptionsBase } #endregion #region DockerNetworkPruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkPrune), Arguments = "network prune")] public partial class DockerNetworkPruneSettings : DockerOptionsBase @@ -2358,7 +2354,7 @@ public partial class DockerNetworkPruneSettings : DockerOptionsBase } #endregion #region DockerManifestInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerManifestInspect), Arguments = "manifest inspect")] public partial class DockerManifestInspectSettings : DockerOptionsBase @@ -2374,7 +2370,7 @@ public partial class DockerManifestInspectSettings : DockerOptionsBase } #endregion #region DockerInfoSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerInfo), Arguments = "info")] public partial class DockerInfoSettings : DockerOptionsBase @@ -2384,7 +2380,7 @@ public partial class DockerInfoSettings : DockerOptionsBase } #endregion #region DockerCommitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCommit), Arguments = "commit")] public partial class DockerCommitSettings : DockerOptionsBase @@ -2404,7 +2400,7 @@ public partial class DockerCommitSettings : DockerOptionsBase } #endregion #region DockerStackDeploySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStackDeploy), Arguments = "stack deploy")] public partial class DockerStackDeploySettings : DockerOptionsBase @@ -2426,7 +2422,7 @@ public partial class DockerStackDeploySettings : DockerOptionsBase } #endregion #region DockerServiceScaleSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceScale), Arguments = "service scale")] public partial class DockerServiceScaleSettings : DockerOptionsBase @@ -2436,7 +2432,7 @@ public partial class DockerServiceScaleSettings : DockerOptionsBase } #endregion #region DockerRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerRun), Arguments = "run")] public partial class DockerRunSettings : DockerOptionsBase @@ -2652,7 +2648,7 @@ public partial class DockerRunSettings : DockerOptionsBase } #endregion #region DockerCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCreate), Arguments = "create")] public partial class DockerCreateSettings : DockerOptionsBase @@ -2862,7 +2858,7 @@ public partial class DockerCreateSettings : DockerOptionsBase } #endregion #region DockerServiceUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceUpdate), Arguments = "service update")] public partial class DockerServiceUpdateSettings : DockerOptionsBase @@ -3040,7 +3036,7 @@ public partial class DockerServiceUpdateSettings : DockerOptionsBase } #endregion #region DockerPortSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPort), Arguments = "port")] public partial class DockerPortSettings : DockerOptionsBase @@ -3052,7 +3048,7 @@ public partial class DockerPortSettings : DockerOptionsBase } #endregion #region DockerContainerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainer), Arguments = "container")] public partial class DockerContainerSettings : DockerOptionsBase @@ -3060,7 +3056,7 @@ public partial class DockerContainerSettings : DockerOptionsBase } #endregion #region DockerImagePushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImagePush), Arguments = "image push")] public partial class DockerImagePushSettings : DockerOptionsBase @@ -3074,7 +3070,7 @@ public partial class DockerImagePushSettings : DockerOptionsBase } #endregion #region DockerServiceInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceInspect), Arguments = "service inspect")] public partial class DockerServiceInspectSettings : DockerOptionsBase @@ -3088,7 +3084,7 @@ public partial class DockerServiceInspectSettings : DockerOptionsBase } #endregion #region DockerNetworkConnectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkConnect), Arguments = "network connect")] public partial class DockerNetworkConnectSettings : DockerOptionsBase @@ -3112,7 +3108,7 @@ public partial class DockerNetworkConnectSettings : DockerOptionsBase } #endregion #region DockerSecretLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSecretLs), Arguments = "secret ls")] public partial class DockerSecretLsSettings : DockerOptionsBase @@ -3126,7 +3122,7 @@ public partial class DockerSecretLsSettings : DockerOptionsBase } #endregion #region DockerSwarmLeaveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmLeave), Arguments = "swarm leave")] public partial class DockerSwarmLeaveSettings : DockerOptionsBase @@ -3136,7 +3132,7 @@ public partial class DockerSwarmLeaveSettings : DockerOptionsBase } #endregion #region DockerImagesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImages), Arguments = "images")] public partial class DockerImagesSettings : DockerOptionsBase @@ -3158,7 +3154,7 @@ public partial class DockerImagesSettings : DockerOptionsBase } #endregion #region DockerEngineUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerEngineUpdate), Arguments = "engine update")] public partial class DockerEngineUpdateSettings : DockerOptionsBase @@ -3174,7 +3170,7 @@ public partial class DockerEngineUpdateSettings : DockerOptionsBase } #endregion #region DockerSystemEventsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSystemEvents), Arguments = "system events")] public partial class DockerSystemEventsSettings : DockerOptionsBase @@ -3190,7 +3186,7 @@ public partial class DockerSystemEventsSettings : DockerOptionsBase } #endregion #region DockerInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerInspect), Arguments = "inspect")] public partial class DockerInspectSettings : DockerOptionsBase @@ -3206,7 +3202,7 @@ public partial class DockerInspectSettings : DockerOptionsBase } #endregion #region DockerEngineCheckSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerEngineCheck), Arguments = "engine check")] public partial class DockerEngineCheckSettings : DockerOptionsBase @@ -3230,7 +3226,7 @@ public partial class DockerEngineCheckSettings : DockerOptionsBase } #endregion #region DockerAttachSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerAttach), Arguments = "attach")] public partial class DockerAttachSettings : DockerOptionsBase @@ -3246,7 +3242,7 @@ public partial class DockerAttachSettings : DockerOptionsBase } #endregion #region DockerContainerWaitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerWait), Arguments = "container wait")] public partial class DockerContainerWaitSettings : DockerOptionsBase @@ -3256,7 +3252,7 @@ public partial class DockerContainerWaitSettings : DockerOptionsBase } #endregion #region DockerSwarmCaSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmCa), Arguments = "swarm ca")] public partial class DockerSwarmCaSettings : DockerOptionsBase @@ -3278,7 +3274,7 @@ public partial class DockerSwarmCaSettings : DockerOptionsBase } #endregion #region DockerEngineSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerEngine), Arguments = "engine")] public partial class DockerEngineSettings : DockerOptionsBase @@ -3288,7 +3284,7 @@ public partial class DockerEngineSettings : DockerOptionsBase } #endregion #region DockerSystemPruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSystemPrune), Arguments = "system prune")] public partial class DockerSystemPruneSettings : DockerOptionsBase @@ -3304,7 +3300,7 @@ public partial class DockerSystemPruneSettings : DockerOptionsBase } #endregion #region DockerBuilderSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuilder), Arguments = "builder")] public partial class DockerBuilderSettings : DockerOptionsBase @@ -3312,7 +3308,7 @@ public partial class DockerBuilderSettings : DockerOptionsBase } #endregion #region DockerContainerPauseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerPause), Arguments = "container pause")] public partial class DockerContainerPauseSettings : DockerOptionsBase @@ -3322,7 +3318,7 @@ public partial class DockerContainerPauseSettings : DockerOptionsBase } #endregion #region DockerContainerCommitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerCommit), Arguments = "container commit")] public partial class DockerContainerCommitSettings : DockerOptionsBase @@ -3342,7 +3338,7 @@ public partial class DockerContainerCommitSettings : DockerOptionsBase } #endregion #region DockerContextLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextLs), Arguments = "context ls")] public partial class DockerContextLsSettings : DockerOptionsBase @@ -3354,7 +3350,7 @@ public partial class DockerContextLsSettings : DockerOptionsBase } #endregion #region DockerContextRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextRm), Arguments = "context rm")] public partial class DockerContextRmSettings : DockerOptionsBase @@ -3364,7 +3360,7 @@ public partial class DockerContextRmSettings : DockerOptionsBase } #endregion #region DockerStackPsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStackPs), Arguments = "stack ps")] public partial class DockerStackPsSettings : DockerStackSettings @@ -3386,7 +3382,7 @@ public partial class DockerStackPsSettings : DockerStackSettings } #endregion #region DockerContainerCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerCreate), Arguments = "container create")] public partial class DockerContainerCreateSettings : DockerOptionsBase @@ -3596,7 +3592,7 @@ public partial class DockerContainerCreateSettings : DockerOptionsBase } #endregion #region DockerVolumeCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolumeCreate), Arguments = "volume create")] public partial class DockerVolumeCreateSettings : DockerOptionsBase @@ -3614,7 +3610,7 @@ public partial class DockerVolumeCreateSettings : DockerOptionsBase } #endregion #region DockerPluginSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPlugin), Arguments = "plugin")] public partial class DockerPluginSettings : DockerOptionsBase @@ -3622,7 +3618,7 @@ public partial class DockerPluginSettings : DockerOptionsBase } #endregion #region DockerLoginSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerLogin), Arguments = "login")] public partial class DockerLoginSettings : DockerOptionsBase @@ -3636,7 +3632,7 @@ public partial class DockerLoginSettings : DockerOptionsBase } #endregion #region DockerSwarmUnlockKeySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmUnlockKey), Arguments = "swarm unlock-key")] public partial class DockerSwarmUnlockKeySettings : DockerOptionsBase @@ -3648,7 +3644,7 @@ public partial class DockerSwarmUnlockKeySettings : DockerOptionsBase } #endregion #region DockerStartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStart), Arguments = "start")] public partial class DockerStartSettings : DockerOptionsBase @@ -3668,7 +3664,7 @@ public partial class DockerStartSettings : DockerOptionsBase } #endregion #region DockerSwarmInitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmInit), Arguments = "swarm init")] public partial class DockerSwarmInitSettings : DockerOptionsBase @@ -3706,7 +3702,7 @@ public partial class DockerSwarmInitSettings : DockerOptionsBase } #endregion #region DockerContainerDiffSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerDiff), Arguments = "container diff")] public partial class DockerContainerDiffSettings : DockerOptionsBase @@ -3716,7 +3712,7 @@ public partial class DockerContainerDiffSettings : DockerOptionsBase } #endregion #region DockerContainerRestartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerRestart), Arguments = "container restart")] public partial class DockerContainerRestartSettings : DockerOptionsBase @@ -3728,7 +3724,7 @@ public partial class DockerContainerRestartSettings : DockerOptionsBase } #endregion #region DockerConfigSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerConfig), Arguments = "config")] public partial class DockerConfigSettings : DockerOptionsBase @@ -3736,7 +3732,7 @@ public partial class DockerConfigSettings : DockerOptionsBase } #endregion #region DockerPluginDisableSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginDisable), Arguments = "plugin disable")] public partial class DockerPluginDisableSettings : DockerOptionsBase @@ -3748,7 +3744,7 @@ public partial class DockerPluginDisableSettings : DockerOptionsBase } #endregion #region DockerContainerUnpauseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerUnpause), Arguments = "container unpause")] public partial class DockerContainerUnpauseSettings : DockerOptionsBase @@ -3758,7 +3754,7 @@ public partial class DockerContainerUnpauseSettings : DockerOptionsBase } #endregion #region DockerContextImportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextImport), Arguments = "context import")] public partial class DockerContextImportSettings : DockerOptionsBase @@ -3770,7 +3766,7 @@ public partial class DockerContextImportSettings : DockerOptionsBase } #endregion #region DockerRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerRm), Arguments = "rm")] public partial class DockerRmSettings : DockerOptionsBase @@ -3786,7 +3782,7 @@ public partial class DockerRmSettings : DockerOptionsBase } #endregion #region DockerDeploySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerDeploy), Arguments = "deploy")] public partial class DockerDeploySettings : DockerOptionsBase @@ -3808,7 +3804,7 @@ public partial class DockerDeploySettings : DockerOptionsBase } #endregion #region DockerNodeRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodeRm), Arguments = "node rm")] public partial class DockerNodeRmSettings : DockerOptionsBase @@ -3820,7 +3816,7 @@ public partial class DockerNodeRmSettings : DockerOptionsBase } #endregion #region DockerCheckpointRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCheckpointRm), Arguments = "checkpoint rm")] public partial class DockerCheckpointRmSettings : DockerOptionsBase @@ -3834,7 +3830,7 @@ public partial class DockerCheckpointRmSettings : DockerOptionsBase } #endregion #region DockerPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPush), Arguments = "push")] public partial class DockerPushSettings : DockerOptionsBase @@ -3848,7 +3844,7 @@ public partial class DockerPushSettings : DockerOptionsBase } #endregion #region DockerNetworkCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkCreate), Arguments = "network create")] public partial class DockerNetworkCreateSettings : DockerOptionsBase @@ -3890,7 +3886,7 @@ public partial class DockerNetworkCreateSettings : DockerOptionsBase } #endregion #region DockerVolumeLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolumeLs), Arguments = "volume ls")] public partial class DockerVolumeLsSettings : DockerOptionsBase @@ -3904,7 +3900,7 @@ public partial class DockerVolumeLsSettings : DockerOptionsBase } #endregion #region DockerTrustInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustInspect), Arguments = "trust inspect")] public partial class DockerTrustInspectSettings : DockerOptionsBase @@ -3914,7 +3910,7 @@ public partial class DockerTrustInspectSettings : DockerOptionsBase } #endregion #region DockerNetworkInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkInspect), Arguments = "network inspect")] public partial class DockerNetworkInspectSettings : DockerOptionsBase @@ -3928,7 +3924,7 @@ public partial class DockerNetworkInspectSettings : DockerOptionsBase } #endregion #region DockerEngineActivateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerEngineActivate), Arguments = "engine activate")] public partial class DockerEngineActivateSettings : DockerOptionsBase @@ -3952,7 +3948,7 @@ public partial class DockerEngineActivateSettings : DockerOptionsBase } #endregion #region DockerContextUseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextUse), Arguments = "context use")] public partial class DockerContextUseSettings : DockerOptionsBase @@ -3962,7 +3958,7 @@ public partial class DockerContextUseSettings : DockerOptionsBase } #endregion #region DockerVolumeRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolumeRm), Arguments = "volume rm")] public partial class DockerVolumeRmSettings : DockerOptionsBase @@ -3974,7 +3970,7 @@ public partial class DockerVolumeRmSettings : DockerOptionsBase } #endregion #region DockerManifestCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerManifestCreate), Arguments = "manifest create")] public partial class DockerManifestCreateSettings : DockerOptionsBase @@ -3986,7 +3982,7 @@ public partial class DockerManifestCreateSettings : DockerOptionsBase } #endregion #region DockerManifestPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerManifestPush), Arguments = "manifest push")] public partial class DockerManifestPushSettings : DockerOptionsBase @@ -4000,7 +3996,7 @@ public partial class DockerManifestPushSettings : DockerOptionsBase } #endregion #region DockerPluginEnableSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginEnable), Arguments = "plugin enable")] public partial class DockerPluginEnableSettings : DockerOptionsBase @@ -4012,7 +4008,7 @@ public partial class DockerPluginEnableSettings : DockerOptionsBase } #endregion #region DockerImportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImport), Arguments = "import")] public partial class DockerImportSettings : DockerOptionsBase @@ -4030,7 +4026,7 @@ public partial class DockerImportSettings : DockerOptionsBase } #endregion #region DockerContainerRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerRun), Arguments = "container run")] public partial class DockerContainerRunSettings : DockerOptionsBase @@ -4246,7 +4242,7 @@ public partial class DockerContainerRunSettings : DockerOptionsBase } #endregion #region DockerNodeInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodeInspect), Arguments = "node inspect")] public partial class DockerNodeInspectSettings : DockerOptionsBase @@ -4260,7 +4256,7 @@ public partial class DockerNodeInspectSettings : DockerOptionsBase } #endregion #region DockerSaveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSave), Arguments = "save")] public partial class DockerSaveSettings : DockerOptionsBase @@ -4272,7 +4268,7 @@ public partial class DockerSaveSettings : DockerOptionsBase } #endregion #region DockerContainerStatsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerStats), Arguments = "container stats")] public partial class DockerContainerStatsSettings : DockerOptionsBase @@ -4290,7 +4286,7 @@ public partial class DockerContainerStatsSettings : DockerOptionsBase } #endregion #region DockerContainerExecSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerExec), Arguments = "container exec")] public partial class DockerContainerExecSettings : DockerOptionsBase @@ -4320,7 +4316,7 @@ public partial class DockerContainerExecSettings : DockerOptionsBase } #endregion #region DockerNodeLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodeLs), Arguments = "node ls")] public partial class DockerNodeLsSettings : DockerOptionsBase @@ -4334,7 +4330,7 @@ public partial class DockerNodeLsSettings : DockerOptionsBase } #endregion #region DockerSwarmJoinSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarmJoin), Arguments = "swarm join")] public partial class DockerSwarmJoinSettings : DockerOptionsBase @@ -4352,7 +4348,7 @@ public partial class DockerSwarmJoinSettings : DockerOptionsBase } #endregion #region DockerContainerLogsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerLogs), Arguments = "container logs")] public partial class DockerContainerLogsSettings : DockerOptionsBase @@ -4374,7 +4370,7 @@ public partial class DockerContainerLogsSettings : DockerOptionsBase } #endregion #region DockerCheckpointLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCheckpointLs), Arguments = "checkpoint ls")] public partial class DockerCheckpointLsSettings : DockerOptionsBase @@ -4386,7 +4382,7 @@ public partial class DockerCheckpointLsSettings : DockerOptionsBase } #endregion #region DockerContainerKillSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerKill), Arguments = "container kill")] public partial class DockerContainerKillSettings : DockerOptionsBase @@ -4398,7 +4394,7 @@ public partial class DockerContainerKillSettings : DockerOptionsBase } #endregion #region DockerPluginInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginInstall), Arguments = "plugin install")] public partial class DockerPluginInstallSettings : DockerOptionsBase @@ -4418,7 +4414,7 @@ public partial class DockerPluginInstallSettings : DockerOptionsBase } #endregion #region DockerImagePruneSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImagePrune), Arguments = "image prune")] public partial class DockerImagePruneSettings : DockerOptionsBase @@ -4432,7 +4428,7 @@ public partial class DockerImagePruneSettings : DockerOptionsBase } #endregion #region DockerImageImportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageImport), Arguments = "image import")] public partial class DockerImageImportSettings : DockerOptionsBase @@ -4450,7 +4446,7 @@ public partial class DockerImageImportSettings : DockerOptionsBase } #endregion #region DockerDiffSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerDiff), Arguments = "diff")] public partial class DockerDiffSettings : DockerOptionsBase @@ -4460,7 +4456,7 @@ public partial class DockerDiffSettings : DockerOptionsBase } #endregion #region DockerUnpauseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerUnpause), Arguments = "unpause")] public partial class DockerUnpauseSettings : DockerOptionsBase @@ -4470,7 +4466,7 @@ public partial class DockerUnpauseSettings : DockerOptionsBase } #endregion #region DockerContainerLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerLs), Arguments = "container ls")] public partial class DockerContainerLsSettings : DockerOptionsBase @@ -4494,7 +4490,7 @@ public partial class DockerContainerLsSettings : DockerOptionsBase } #endregion #region DockerNodePsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodePs), Arguments = "node ps")] public partial class DockerNodePsSettings : DockerOptionsBase @@ -4514,7 +4510,7 @@ public partial class DockerNodePsSettings : DockerOptionsBase } #endregion #region DockerContainerTopSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerTop), Arguments = "container top [ps")] public partial class DockerContainerTopSettings : DockerOptionsBase @@ -4526,7 +4522,7 @@ public partial class DockerContainerTopSettings : DockerOptionsBase } #endregion #region DockerContainerRenameSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerRename), Arguments = "container rename")] public partial class DockerContainerRenameSettings : DockerOptionsBase @@ -4538,7 +4534,7 @@ public partial class DockerContainerRenameSettings : DockerOptionsBase } #endregion #region DockerImageHistorySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageHistory), Arguments = "image history")] public partial class DockerImageHistorySettings : DockerOptionsBase @@ -4556,7 +4552,7 @@ public partial class DockerImageHistorySettings : DockerOptionsBase } #endregion #region DockerPsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPs), Arguments = "ps")] public partial class DockerPsSettings : DockerOptionsBase @@ -4580,7 +4576,7 @@ public partial class DockerPsSettings : DockerOptionsBase } #endregion #region DockerImageTagSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageTag), Arguments = "image tag")] public partial class DockerImageTagSettings : DockerOptionsBase @@ -4592,7 +4588,7 @@ public partial class DockerImageTagSettings : DockerOptionsBase } #endregion #region DockerExportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerExport), Arguments = "export")] public partial class DockerExportSettings : DockerOptionsBase @@ -4604,7 +4600,7 @@ public partial class DockerExportSettings : DockerOptionsBase } #endregion #region DockerNetworkDisconnectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetworkDisconnect), Arguments = "network disconnect")] public partial class DockerNetworkDisconnectSettings : DockerOptionsBase @@ -4618,7 +4614,7 @@ public partial class DockerNetworkDisconnectSettings : DockerOptionsBase } #endregion #region DockerBuilderBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuilderBuild), Arguments = "builder build")] public partial class DockerBuilderBuildSettings : DockerOptionsBase @@ -4698,7 +4694,7 @@ public partial class DockerBuilderBuildSettings : DockerOptionsBase } #endregion #region DockerBuildxBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuildxBuild), Arguments = "buildx build")] public partial class DockerBuildxBuildSettings : DockerOptionsBase @@ -4780,7 +4776,7 @@ public partial class DockerBuildxBuildSettings : DockerOptionsBase } #endregion #region DockerBuildxCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuildxCreate), Arguments = "buildx create")] public partial class DockerBuildxCreateSettings : DockerOptionsBase @@ -4812,7 +4808,7 @@ public partial class DockerBuildxCreateSettings : DockerOptionsBase } #endregion #region DockerStatsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStats), Arguments = "stats")] public partial class DockerStatsSettings : DockerOptionsBase @@ -4830,7 +4826,7 @@ public partial class DockerStatsSettings : DockerOptionsBase } #endregion #region DockerSearchSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSearch), Arguments = "search")] public partial class DockerSearchSettings : DockerOptionsBase @@ -4852,7 +4848,7 @@ public partial class DockerSearchSettings : DockerOptionsBase } #endregion #region DockerManifestSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerManifest), Arguments = "manifest")] public partial class DockerManifestSettings : DockerOptionsBase @@ -4862,7 +4858,7 @@ public partial class DockerManifestSettings : DockerOptionsBase } #endregion #region DockerPluginPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginPush), Arguments = "plugin push")] public partial class DockerPluginPushSettings : DockerOptionsBase @@ -4874,7 +4870,7 @@ public partial class DockerPluginPushSettings : DockerOptionsBase } #endregion #region DockerImageLoadSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageLoad), Arguments = "image load")] public partial class DockerImageLoadSettings : DockerOptionsBase @@ -4886,7 +4882,7 @@ public partial class DockerImageLoadSettings : DockerOptionsBase } #endregion #region DockerSwarmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSwarm), Arguments = "swarm")] public partial class DockerSwarmSettings : DockerOptionsBase @@ -4894,7 +4890,7 @@ public partial class DockerSwarmSettings : DockerOptionsBase } #endregion #region DockerContainerRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerRm), Arguments = "container rm")] public partial class DockerContainerRmSettings : DockerOptionsBase @@ -4910,7 +4906,7 @@ public partial class DockerContainerRmSettings : DockerOptionsBase } #endregion #region DockerContainerUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerUpdate), Arguments = "container update")] public partial class DockerContainerUpdateSettings : DockerOptionsBase @@ -4950,7 +4946,7 @@ public partial class DockerContainerUpdateSettings : DockerOptionsBase } #endregion #region DockerPluginSetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginSet), Arguments = "plugin set")] public partial class DockerPluginSetSettings : DockerOptionsBase @@ -4962,7 +4958,7 @@ public partial class DockerPluginSetSettings : DockerOptionsBase } #endregion #region DockerWaitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerWait), Arguments = "wait")] public partial class DockerWaitSettings : DockerOptionsBase @@ -4972,7 +4968,7 @@ public partial class DockerWaitSettings : DockerOptionsBase } #endregion #region DockerContextExportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextExport), Arguments = "context export")] public partial class DockerContextExportSettings : DockerOptionsBase @@ -4986,7 +4982,7 @@ public partial class DockerContextExportSettings : DockerOptionsBase } #endregion #region DockerManifestAnnotateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerManifestAnnotate), Arguments = "manifest annotate")] public partial class DockerManifestAnnotateSettings : DockerOptionsBase @@ -5006,7 +5002,7 @@ public partial class DockerManifestAnnotateSettings : DockerOptionsBase } #endregion #region DockerImagePullSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImagePull), Arguments = "image pull")] public partial class DockerImagePullSettings : DockerOptionsBase @@ -5024,7 +5020,7 @@ public partial class DockerImagePullSettings : DockerOptionsBase } #endregion #region DockerEventsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerEvents), Arguments = "events")] public partial class DockerEventsSettings : DockerOptionsBase @@ -5040,7 +5036,7 @@ public partial class DockerEventsSettings : DockerOptionsBase } #endregion #region DockerStackLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStackLs), Arguments = "stack ls")] public partial class DockerStackLsSettings : DockerStackSettings @@ -5054,7 +5050,7 @@ public partial class DockerStackLsSettings : DockerStackSettings } #endregion #region DockerContainerInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerInspect), Arguments = "container inspect")] public partial class DockerContainerInspectSettings : DockerOptionsBase @@ -5068,7 +5064,7 @@ public partial class DockerContainerInspectSettings : DockerOptionsBase } #endregion #region DockerKillSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerKill), Arguments = "kill")] public partial class DockerKillSettings : DockerOptionsBase @@ -5080,7 +5076,7 @@ public partial class DockerKillSettings : DockerOptionsBase } #endregion #region DockerCheckpointCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerCheckpointCreate), Arguments = "checkpoint create")] public partial class DockerCheckpointCreateSettings : DockerOptionsBase @@ -5096,7 +5092,7 @@ public partial class DockerCheckpointCreateSettings : DockerOptionsBase } #endregion #region DockerPauseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPause), Arguments = "pause")] public partial class DockerPauseSettings : DockerOptionsBase @@ -5106,7 +5102,7 @@ public partial class DockerPauseSettings : DockerOptionsBase } #endregion #region DockerLogsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerLogs), Arguments = "logs")] public partial class DockerLogsSettings : DockerOptionsBase @@ -5128,7 +5124,7 @@ public partial class DockerLogsSettings : DockerOptionsBase } #endregion #region DockerContextInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContextInspect), Arguments = "context inspect")] public partial class DockerContextInspectSettings : DockerOptionsBase @@ -5142,7 +5138,7 @@ public partial class DockerContextInspectSettings : DockerOptionsBase } #endregion #region DockerNodePromoteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodePromote), Arguments = "node promote")] public partial class DockerNodePromoteSettings : DockerOptionsBase @@ -5152,7 +5148,7 @@ public partial class DockerNodePromoteSettings : DockerOptionsBase } #endregion #region DockerNodeDemoteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNodeDemote), Arguments = "node demote")] public partial class DockerNodeDemoteSettings : DockerOptionsBase @@ -5162,7 +5158,7 @@ public partial class DockerNodeDemoteSettings : DockerOptionsBase } #endregion #region DockerExecSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerExec), Arguments = "exec")] public partial class DockerExecSettings : DockerOptionsBase @@ -5192,7 +5188,7 @@ public partial class DockerExecSettings : DockerOptionsBase } #endregion #region DockerImageRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageRm), Arguments = "image rm")] public partial class DockerImageRmSettings : DockerOptionsBase @@ -5206,7 +5202,7 @@ public partial class DockerImageRmSettings : DockerOptionsBase } #endregion #region DockerImageSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImage), Arguments = "image")] public partial class DockerImageSettings : DockerOptionsBase @@ -5214,7 +5210,7 @@ public partial class DockerImageSettings : DockerOptionsBase } #endregion #region DockerContextSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContext), Arguments = "context")] public partial class DockerContextSettings : DockerOptionsBase @@ -5222,7 +5218,7 @@ public partial class DockerContextSettings : DockerOptionsBase } #endregion #region DockerVolumeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerVolume), Arguments = "volume")] public partial class DockerVolumeSettings : DockerOptionsBase @@ -5232,7 +5228,7 @@ public partial class DockerVolumeSettings : DockerOptionsBase } #endregion #region DockerContainerStartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerContainerStart), Arguments = "container start")] public partial class DockerContainerStartSettings : DockerOptionsBase @@ -5252,7 +5248,7 @@ public partial class DockerContainerStartSettings : DockerOptionsBase } #endregion #region DockerPluginInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerPluginInspect), Arguments = "plugin inspect")] public partial class DockerPluginInspectSettings : DockerOptionsBase @@ -5264,7 +5260,7 @@ public partial class DockerPluginInspectSettings : DockerOptionsBase } #endregion #region DockerLogoutSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerLogout), Arguments = "logout")] public partial class DockerLogoutSettings : DockerOptionsBase @@ -5274,7 +5270,7 @@ public partial class DockerLogoutSettings : DockerOptionsBase } #endregion #region DockerNetworkSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerNetwork), Arguments = "network")] public partial class DockerNetworkSettings : DockerOptionsBase @@ -5282,7 +5278,7 @@ public partial class DockerNetworkSettings : DockerOptionsBase } #endregion #region DockerImageLsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerImageLs), Arguments = "image ls")] public partial class DockerImageLsSettings : DockerOptionsBase @@ -5304,7 +5300,7 @@ public partial class DockerImageLsSettings : DockerOptionsBase } #endregion #region DockerSystemDfSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerSystemDf), Arguments = "system df")] public partial class DockerSystemDfSettings : DockerOptionsBase @@ -5316,7 +5312,7 @@ public partial class DockerSystemDfSettings : DockerOptionsBase } #endregion #region DockerServiceRollbackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerServiceRollback), Arguments = "service rollback")] public partial class DockerServiceRollbackSettings : DockerOptionsBase @@ -5330,7 +5326,7 @@ public partial class DockerServiceRollbackSettings : DockerOptionsBase } #endregion #region DockerRestartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerRestart), Arguments = "restart")] public partial class DockerRestartSettings : DockerOptionsBase @@ -5342,7 +5338,7 @@ public partial class DockerRestartSettings : DockerOptionsBase } #endregion #region DockerTrustSignerRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerTrustSignerRemove), Arguments = "trust signer remove")] public partial class DockerTrustSignerRemoveSettings : DockerOptionsBase @@ -5356,7 +5352,7 @@ public partial class DockerTrustSignerRemoveSettings : DockerOptionsBase } #endregion #region DockerStackRmSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerStackRm), Arguments = "stack rm")] public partial class DockerStackRmSettings : DockerStackSettings @@ -5368,7 +5364,7 @@ public partial class DockerStackRmSettings : DockerStackSettings } #endregion #region DockerBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DockerTasks), Command = nameof(DockerTasks.DockerBuild), Arguments = "build")] public partial class DockerBuildSettings : DockerOptionsBase @@ -5492,7 +5488,7 @@ public partial class DockerRunTargetSettings : DockerRunSettings } #endregion #region DockerConfigRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerConfigRmSettingsExtensions { @@ -5522,7 +5518,7 @@ public static partial class DockerConfigRmSettingsExtensions } #endregion #region DockerLoadSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerLoadSettingsExtensions { @@ -5554,7 +5550,7 @@ public static partial class DockerLoadSettingsExtensions } #endregion #region DockerContainerPruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerPruneSettingsExtensions { @@ -5586,14 +5582,14 @@ public static partial class DockerContainerPruneSettingsExtensions } #endregion #region DockerTrustSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustSettingsExtensions { } #endregion #region DockerStackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackSettingsExtensions { @@ -5616,7 +5612,7 @@ public static partial class DockerStackSettingsExtensions } #endregion #region DockerPullSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPullSettingsExtensions { @@ -5690,28 +5686,28 @@ public static partial class DockerPullSettingsExtensions } #endregion #region DockerTrustSignSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustSignSettingsExtensions { } #endregion #region DockerCheckpointSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCheckpointSettingsExtensions { } #endregion #region DockerTrustSignerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustSignerSettingsExtensions { } #endregion #region DockerConfigInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerConfigInspectSettingsExtensions { @@ -5766,14 +5762,14 @@ public static partial class DockerConfigInspectSettingsExtensions } #endregion #region DockerServiceSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceSettingsExtensions { } #endregion #region DockerTrustKeyGenerateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustKeyGenerateSettingsExtensions { @@ -5788,14 +5784,14 @@ public static partial class DockerTrustKeyGenerateSettingsExtensions } #endregion #region DockerSystemSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSystemSettingsExtensions { } #endregion #region DockerConfigLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerConfigLsSettingsExtensions { @@ -5835,7 +5831,7 @@ public static partial class DockerConfigLsSettingsExtensions } #endregion #region DockerContextUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextUpdateSettingsExtensions { @@ -5882,7 +5878,7 @@ public static partial class DockerContextUpdateSettingsExtensions } #endregion #region DockerStackServicesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackServicesSettingsExtensions { @@ -5938,7 +5934,7 @@ public static partial class DockerStackServicesSettingsExtensions } #endregion #region DockerContainerPortSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerPortSettingsExtensions { @@ -5961,7 +5957,7 @@ public static partial class DockerContainerPortSettingsExtensions } #endregion #region DockerRenameSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerRenameSettingsExtensions { @@ -5984,7 +5980,7 @@ public static partial class DockerRenameSettingsExtensions } #endregion #region DockerTagSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTagSettingsExtensions { @@ -6007,7 +6003,7 @@ public static partial class DockerTagSettingsExtensions } #endregion #region DockerSecretInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSecretInspectSettingsExtensions { @@ -6062,14 +6058,14 @@ public static partial class DockerSecretInspectSettingsExtensions } #endregion #region DockerSecretSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSecretSettingsExtensions { } #endregion #region DockerContainerExportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerExportSettingsExtensions { @@ -6092,7 +6088,7 @@ public static partial class DockerContainerExportSettingsExtensions } #endregion #region DockerHistorySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerHistorySettingsExtensions { @@ -6166,7 +6162,7 @@ public static partial class DockerHistorySettingsExtensions } #endregion #region DockerServiceCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceCreateSettingsExtensions { @@ -7007,7 +7003,7 @@ public static partial class DockerServiceCreateSettingsExtensions } #endregion #region DockerServicePsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServicePsSettingsExtensions { @@ -7104,7 +7100,7 @@ public static partial class DockerServicePsSettingsExtensions } #endregion #region DockerStopSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStopSettingsExtensions { @@ -7142,14 +7138,14 @@ public static partial class DockerStopSettingsExtensions } #endregion #region DockerNodeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeSettingsExtensions { } #endregion #region DockerUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerUpdateSettingsExtensions { @@ -7299,7 +7295,7 @@ public static partial class DockerUpdateSettingsExtensions } #endregion #region DockerPluginCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginCreateSettingsExtensions { @@ -7339,7 +7335,7 @@ public static partial class DockerPluginCreateSettingsExtensions } #endregion #region DockerSystemInfoSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSystemInfoSettingsExtensions { @@ -7354,7 +7350,7 @@ public static partial class DockerSystemInfoSettingsExtensions } #endregion #region DockerVolumePruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumePruneSettingsExtensions { @@ -7386,7 +7382,7 @@ public static partial class DockerVolumePruneSettingsExtensions } #endregion #region DockerPluginUpgradeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginUpgradeSettingsExtensions { @@ -7460,14 +7456,14 @@ public static partial class DockerPluginUpgradeSettingsExtensions } #endregion #region DockerBuilderPruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuilderPruneSettingsExtensions { } #endregion #region DockerSwarmJoinTokenSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmJoinTokenSettingsExtensions { @@ -7516,7 +7512,7 @@ public static partial class DockerSwarmJoinTokenSettingsExtensions } #endregion #region DockerNodeUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeUpdateSettingsExtensions { @@ -7593,7 +7589,7 @@ public static partial class DockerNodeUpdateSettingsExtensions } #endregion #region DockerTrustSignerAddSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustSignerAddSettingsExtensions { @@ -7639,7 +7635,7 @@ public static partial class DockerTrustSignerAddSettingsExtensions } #endregion #region DockerSwarmUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmUpdateSettingsExtensions { @@ -7711,7 +7707,7 @@ public static partial class DockerSwarmUpdateSettingsExtensions } #endregion #region DockerServiceLogsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceLogsSettingsExtensions { @@ -7861,7 +7857,7 @@ public static partial class DockerServiceLogsSettingsExtensions } #endregion #region DockerServiceLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceLsSettingsExtensions { @@ -7901,14 +7897,14 @@ public static partial class DockerServiceLsSettingsExtensions } #endregion #region DockerSwarmUnlockSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmUnlockSettingsExtensions { } #endregion #region DockerNetworkLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkLsSettingsExtensions { @@ -7965,7 +7961,7 @@ public static partial class DockerNetworkLsSettingsExtensions } #endregion #region DockerPluginLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginLsSettingsExtensions { @@ -8022,7 +8018,7 @@ public static partial class DockerPluginLsSettingsExtensions } #endregion #region DockerPluginRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginRmSettingsExtensions { @@ -8069,7 +8065,7 @@ public static partial class DockerPluginRmSettingsExtensions } #endregion #region DockerImageBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageBuildSettingsExtensions { @@ -8535,7 +8531,7 @@ public static partial class DockerImageBuildSettingsExtensions } #endregion #region DockerTrustRevokeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustRevokeSettingsExtensions { @@ -8567,7 +8563,7 @@ public static partial class DockerTrustRevokeSettingsExtensions } #endregion #region DockerRmiSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerRmiSettingsExtensions { @@ -8631,7 +8627,7 @@ public static partial class DockerRmiSettingsExtensions } #endregion #region DockerNetworkRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkRmSettingsExtensions { @@ -8661,7 +8657,7 @@ public static partial class DockerNetworkRmSettingsExtensions } #endregion #region DockerVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVersionSettingsExtensions { @@ -8684,7 +8680,7 @@ public static partial class DockerVersionSettingsExtensions } #endregion #region DockerSecretCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSecretCreateSettingsExtensions { @@ -8746,7 +8742,7 @@ public static partial class DockerSecretCreateSettingsExtensions } #endregion #region DockerServiceRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceRmSettingsExtensions { @@ -8776,7 +8772,7 @@ public static partial class DockerServiceRmSettingsExtensions } #endregion #region DockerTrustKeyLoadSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustKeyLoadSettingsExtensions { @@ -8799,7 +8795,7 @@ public static partial class DockerTrustKeyLoadSettingsExtensions } #endregion #region DockerSecretRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSecretRmSettingsExtensions { @@ -8829,7 +8825,7 @@ public static partial class DockerSecretRmSettingsExtensions } #endregion #region DockerImageInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageInspectSettingsExtensions { @@ -8867,7 +8863,7 @@ public static partial class DockerImageInspectSettingsExtensions } #endregion #region DockerImageSaveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageSaveSettingsExtensions { @@ -8905,14 +8901,14 @@ public static partial class DockerImageSaveSettingsExtensions } #endregion #region DockerTrustKeySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustKeySettingsExtensions { } #endregion #region DockerContainerAttachSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerAttachSettingsExtensions { @@ -8969,7 +8965,7 @@ public static partial class DockerContainerAttachSettingsExtensions } #endregion #region DockerContextCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextCreateSettingsExtensions { @@ -9024,7 +9020,7 @@ public static partial class DockerContextCreateSettingsExtensions } #endregion #region DockerConfigCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerConfigCreateSettingsExtensions { @@ -9078,7 +9074,7 @@ public static partial class DockerConfigCreateSettingsExtensions } #endregion #region DockerVolumeInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumeInspectSettingsExtensions { @@ -9116,7 +9112,7 @@ public static partial class DockerVolumeInspectSettingsExtensions } #endregion #region DockerContainerStopSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerStopSettingsExtensions { @@ -9154,7 +9150,7 @@ public static partial class DockerContainerStopSettingsExtensions } #endregion #region DockerNetworkPruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkPruneSettingsExtensions { @@ -9186,7 +9182,7 @@ public static partial class DockerNetworkPruneSettingsExtensions } #endregion #region DockerManifestInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerManifestInspectSettingsExtensions { @@ -9243,7 +9239,7 @@ public static partial class DockerManifestInspectSettingsExtensions } #endregion #region DockerInfoSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerInfoSettingsExtensions { @@ -9258,7 +9254,7 @@ public static partial class DockerInfoSettingsExtensions } #endregion #region DockerCommitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCommitSettingsExtensions { @@ -9337,7 +9333,7 @@ public static partial class DockerCommitSettingsExtensions } #endregion #region DockerStackDeploySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackDeploySettingsExtensions { @@ -9433,7 +9429,7 @@ public static partial class DockerStackDeploySettingsExtensions } #endregion #region DockerServiceScaleSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceScaleSettingsExtensions { @@ -9457,7 +9453,7 @@ public static partial class DockerServiceScaleSettingsExtensions } #endregion #region DockerRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerRunSettingsExtensions { @@ -10917,7 +10913,7 @@ public static partial class DockerRunSettingsExtensions } #endregion #region DockerCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCreateSettingsExtensions { @@ -12335,7 +12331,7 @@ public static partial class DockerCreateSettingsExtensions } #endregion #region DockerServiceUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceUpdateSettingsExtensions { @@ -13517,7 +13513,7 @@ public static partial class DockerServiceUpdateSettingsExtensions } #endregion #region DockerPortSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPortSettingsExtensions { @@ -13540,14 +13536,14 @@ public static partial class DockerPortSettingsExtensions } #endregion #region DockerContainerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerSettingsExtensions { } #endregion #region DockerImagePushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImagePushSettingsExtensions { @@ -13596,7 +13592,7 @@ public static partial class DockerImagePushSettingsExtensions } #endregion #region DockerServiceInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceInspectSettingsExtensions { @@ -13651,7 +13647,7 @@ public static partial class DockerServiceInspectSettingsExtensions } #endregion #region DockerNetworkConnectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkConnectSettingsExtensions { @@ -13782,7 +13778,7 @@ public static partial class DockerNetworkConnectSettingsExtensions } #endregion #region DockerSecretLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSecretLsSettingsExtensions { @@ -13822,7 +13818,7 @@ public static partial class DockerSecretLsSettingsExtensions } #endregion #region DockerSwarmLeaveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmLeaveSettingsExtensions { @@ -13846,7 +13842,7 @@ public static partial class DockerSwarmLeaveSettingsExtensions } #endregion #region DockerImagesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImagesSettingsExtensions { @@ -13945,7 +13941,7 @@ public static partial class DockerImagesSettingsExtensions } #endregion #region DockerEngineUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerEngineUpdateSettingsExtensions { @@ -13984,7 +13980,7 @@ public static partial class DockerEngineUpdateSettingsExtensions } #endregion #region DockerSystemEventsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSystemEventsSettingsExtensions { @@ -14023,7 +14019,7 @@ public static partial class DockerSystemEventsSettingsExtensions } #endregion #region DockerInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerInspectSettingsExtensions { @@ -14086,7 +14082,7 @@ public static partial class DockerInspectSettingsExtensions } #endregion #region DockerEngineCheckSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerEngineCheckSettingsExtensions { @@ -14193,7 +14189,7 @@ public static partial class DockerEngineCheckSettingsExtensions } #endregion #region DockerAttachSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerAttachSettingsExtensions { @@ -14250,7 +14246,7 @@ public static partial class DockerAttachSettingsExtensions } #endregion #region DockerContainerWaitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerWaitSettingsExtensions { @@ -14280,7 +14276,7 @@ public static partial class DockerContainerWaitSettingsExtensions } #endregion #region DockerSwarmCaSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmCaSettingsExtensions { @@ -14370,7 +14366,7 @@ public static partial class DockerSwarmCaSettingsExtensions } #endregion #region DockerEngineSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerEngineSettingsExtensions { @@ -14385,7 +14381,7 @@ public static partial class DockerEngineSettingsExtensions } #endregion #region DockerSystemPruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSystemPruneSettingsExtensions { @@ -14451,14 +14447,14 @@ public static partial class DockerSystemPruneSettingsExtensions } #endregion #region DockerBuilderSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuilderSettingsExtensions { } #endregion #region DockerContainerPauseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerPauseSettingsExtensions { @@ -14488,7 +14484,7 @@ public static partial class DockerContainerPauseSettingsExtensions } #endregion #region DockerContainerCommitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerCommitSettingsExtensions { @@ -14567,7 +14563,7 @@ public static partial class DockerContainerCommitSettingsExtensions } #endregion #region DockerContextLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextLsSettingsExtensions { @@ -14599,7 +14595,7 @@ public static partial class DockerContextLsSettingsExtensions } #endregion #region DockerContextRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextRmSettingsExtensions { @@ -14629,7 +14625,7 @@ public static partial class DockerContextRmSettingsExtensions } #endregion #region DockerStackPsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackPsSettingsExtensions { @@ -14719,7 +14715,7 @@ public static partial class DockerStackPsSettingsExtensions } #endregion #region DockerContainerCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerCreateSettingsExtensions { @@ -16137,7 +16133,7 @@ public static partial class DockerContainerCreateSettingsExtensions } #endregion #region DockerVolumeCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumeCreateSettingsExtensions { @@ -16208,14 +16204,14 @@ public static partial class DockerVolumeCreateSettingsExtensions } #endregion #region DockerPluginSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginSettingsExtensions { } #endregion #region DockerLoginSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerLoginSettingsExtensions { @@ -16246,7 +16242,7 @@ public static partial class DockerLoginSettingsExtensions } #endregion #region DockerSwarmUnlockKeySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmUnlockKeySettingsExtensions { @@ -16287,7 +16283,7 @@ public static partial class DockerSwarmUnlockKeySettingsExtensions } #endregion #region DockerStartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStartSettingsExtensions { @@ -16375,7 +16371,7 @@ public static partial class DockerStartSettingsExtensions } #endregion #region DockerSwarmInitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmInitSettingsExtensions { @@ -16520,7 +16516,7 @@ public static partial class DockerSwarmInitSettingsExtensions } #endregion #region DockerContainerDiffSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerDiffSettingsExtensions { @@ -16535,7 +16531,7 @@ public static partial class DockerContainerDiffSettingsExtensions } #endregion #region DockerContainerRestartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerRestartSettingsExtensions { @@ -16573,14 +16569,14 @@ public static partial class DockerContainerRestartSettingsExtensions } #endregion #region DockerConfigSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerConfigSettingsExtensions { } #endregion #region DockerPluginDisableSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginDisableSettingsExtensions { @@ -16612,7 +16608,7 @@ public static partial class DockerPluginDisableSettingsExtensions } #endregion #region DockerContainerUnpauseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerUnpauseSettingsExtensions { @@ -16642,7 +16638,7 @@ public static partial class DockerContainerUnpauseSettingsExtensions } #endregion #region DockerContextImportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextImportSettingsExtensions { @@ -16665,7 +16661,7 @@ public static partial class DockerContextImportSettingsExtensions } #endregion #region DockerRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerRmSettingsExtensions { @@ -16746,7 +16742,7 @@ public static partial class DockerRmSettingsExtensions } #endregion #region DockerDeploySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerDeploySettingsExtensions { @@ -16842,7 +16838,7 @@ public static partial class DockerDeploySettingsExtensions } #endregion #region DockerNodeRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeRmSettingsExtensions { @@ -16889,7 +16885,7 @@ public static partial class DockerNodeRmSettingsExtensions } #endregion #region DockerCheckpointRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCheckpointRmSettingsExtensions { @@ -16920,7 +16916,7 @@ public static partial class DockerCheckpointRmSettingsExtensions } #endregion #region DockerPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPushSettingsExtensions { @@ -16969,7 +16965,7 @@ public static partial class DockerPushSettingsExtensions } #endregion #region DockerNetworkCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkCreateSettingsExtensions { @@ -17244,7 +17240,7 @@ public static partial class DockerNetworkCreateSettingsExtensions } #endregion #region DockerVolumeLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumeLsSettingsExtensions { @@ -17284,7 +17280,7 @@ public static partial class DockerVolumeLsSettingsExtensions } #endregion #region DockerTrustInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustInspectSettingsExtensions { @@ -17314,7 +17310,7 @@ public static partial class DockerTrustInspectSettingsExtensions } #endregion #region DockerNetworkInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkInspectSettingsExtensions { @@ -17369,7 +17365,7 @@ public static partial class DockerNetworkInspectSettingsExtensions } #endregion #region DockerEngineActivateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerEngineActivateSettingsExtensions { @@ -17458,7 +17454,7 @@ public static partial class DockerEngineActivateSettingsExtensions } #endregion #region DockerContextUseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextUseSettingsExtensions { @@ -17473,7 +17469,7 @@ public static partial class DockerContextUseSettingsExtensions } #endregion #region DockerVolumeRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumeRmSettingsExtensions { @@ -17520,7 +17516,7 @@ public static partial class DockerVolumeRmSettingsExtensions } #endregion #region DockerManifestCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerManifestCreateSettingsExtensions { @@ -17558,7 +17554,7 @@ public static partial class DockerManifestCreateSettingsExtensions } #endregion #region DockerManifestPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerManifestPushSettingsExtensions { @@ -17607,7 +17603,7 @@ public static partial class DockerManifestPushSettingsExtensions } #endregion #region DockerPluginEnableSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginEnableSettingsExtensions { @@ -17630,7 +17626,7 @@ public static partial class DockerPluginEnableSettingsExtensions } #endregion #region DockerImportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImportSettingsExtensions { @@ -17692,7 +17688,7 @@ public static partial class DockerImportSettingsExtensions } #endregion #region DockerContainerRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerRunSettingsExtensions { @@ -19152,7 +19148,7 @@ public static partial class DockerContainerRunSettingsExtensions } #endregion #region DockerNodeInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeInspectSettingsExtensions { @@ -19207,7 +19203,7 @@ public static partial class DockerNodeInspectSettingsExtensions } #endregion #region DockerSaveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSaveSettingsExtensions { @@ -19245,7 +19241,7 @@ public static partial class DockerSaveSettingsExtensions } #endregion #region DockerContainerStatsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerStatsSettingsExtensions { @@ -19334,7 +19330,7 @@ public static partial class DockerContainerStatsSettingsExtensions } #endregion #region DockerContainerExecSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerExecSettingsExtensions { @@ -19495,7 +19491,7 @@ public static partial class DockerContainerExecSettingsExtensions } #endregion #region DockerNodeLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeLsSettingsExtensions { @@ -19535,7 +19531,7 @@ public static partial class DockerNodeLsSettingsExtensions } #endregion #region DockerSwarmJoinSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmJoinSettingsExtensions { @@ -19582,7 +19578,7 @@ public static partial class DockerSwarmJoinSettingsExtensions } #endregion #region DockerContainerLogsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerLogsSettingsExtensions { @@ -19672,7 +19668,7 @@ public static partial class DockerContainerLogsSettingsExtensions } #endregion #region DockerCheckpointLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCheckpointLsSettingsExtensions { @@ -19695,7 +19691,7 @@ public static partial class DockerCheckpointLsSettingsExtensions } #endregion #region DockerContainerKillSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerKillSettingsExtensions { @@ -19733,7 +19729,7 @@ public static partial class DockerContainerKillSettingsExtensions } #endregion #region DockerPluginInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginInstallSettingsExtensions { @@ -19824,7 +19820,7 @@ public static partial class DockerPluginInstallSettingsExtensions } #endregion #region DockerImagePruneSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImagePruneSettingsExtensions { @@ -19873,7 +19869,7 @@ public static partial class DockerImagePruneSettingsExtensions } #endregion #region DockerImageImportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageImportSettingsExtensions { @@ -19935,7 +19931,7 @@ public static partial class DockerImageImportSettingsExtensions } #endregion #region DockerDiffSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerDiffSettingsExtensions { @@ -19950,7 +19946,7 @@ public static partial class DockerDiffSettingsExtensions } #endregion #region DockerUnpauseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerUnpauseSettingsExtensions { @@ -19980,7 +19976,7 @@ public static partial class DockerUnpauseSettingsExtensions } #endregion #region DockerContainerLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerLsSettingsExtensions { @@ -20096,7 +20092,7 @@ public static partial class DockerContainerLsSettingsExtensions } #endregion #region DockerNodePsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodePsSettingsExtensions { @@ -20193,7 +20189,7 @@ public static partial class DockerNodePsSettingsExtensions } #endregion #region DockerContainerTopSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerTopSettingsExtensions { @@ -20216,7 +20212,7 @@ public static partial class DockerContainerTopSettingsExtensions } #endregion #region DockerContainerRenameSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerRenameSettingsExtensions { @@ -20239,7 +20235,7 @@ public static partial class DockerContainerRenameSettingsExtensions } #endregion #region DockerImageHistorySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageHistorySettingsExtensions { @@ -20313,7 +20309,7 @@ public static partial class DockerImageHistorySettingsExtensions } #endregion #region DockerPsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPsSettingsExtensions { @@ -20429,7 +20425,7 @@ public static partial class DockerPsSettingsExtensions } #endregion #region DockerImageTagSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageTagSettingsExtensions { @@ -20452,7 +20448,7 @@ public static partial class DockerImageTagSettingsExtensions } #endregion #region DockerExportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerExportSettingsExtensions { @@ -20475,7 +20471,7 @@ public static partial class DockerExportSettingsExtensions } #endregion #region DockerNetworkDisconnectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkDisconnectSettingsExtensions { @@ -20515,7 +20511,7 @@ public static partial class DockerNetworkDisconnectSettingsExtensions } #endregion #region DockerBuilderBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuilderBuildSettingsExtensions { @@ -20981,7 +20977,7 @@ public static partial class DockerBuilderBuildSettingsExtensions } #endregion #region DockerBuildxBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuildxBuildSettingsExtensions { @@ -21467,7 +21463,7 @@ public static partial class DockerBuildxBuildSettingsExtensions } #endregion #region DockerBuildxCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuildxCreateSettingsExtensions { @@ -21606,7 +21602,7 @@ public static partial class DockerBuildxCreateSettingsExtensions } #endregion #region DockerStatsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStatsSettingsExtensions { @@ -21695,7 +21691,7 @@ public static partial class DockerStatsSettingsExtensions } #endregion #region DockerSearchSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSearchSettingsExtensions { @@ -21776,7 +21772,7 @@ public static partial class DockerSearchSettingsExtensions } #endregion #region DockerManifestSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerManifestSettingsExtensions { @@ -21791,7 +21787,7 @@ public static partial class DockerManifestSettingsExtensions } #endregion #region DockerPluginPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginPushSettingsExtensions { @@ -21823,7 +21819,7 @@ public static partial class DockerPluginPushSettingsExtensions } #endregion #region DockerImageLoadSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageLoadSettingsExtensions { @@ -21855,14 +21851,14 @@ public static partial class DockerImageLoadSettingsExtensions } #endregion #region DockerSwarmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSwarmSettingsExtensions { } #endregion #region DockerContainerRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerRmSettingsExtensions { @@ -21943,7 +21939,7 @@ public static partial class DockerContainerRmSettingsExtensions } #endregion #region DockerContainerUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerUpdateSettingsExtensions { @@ -22093,7 +22089,7 @@ public static partial class DockerContainerUpdateSettingsExtensions } #endregion #region DockerPluginSetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginSetSettingsExtensions { @@ -22125,7 +22121,7 @@ public static partial class DockerPluginSetSettingsExtensions } #endregion #region DockerWaitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerWaitSettingsExtensions { @@ -22155,7 +22151,7 @@ public static partial class DockerWaitSettingsExtensions } #endregion #region DockerContextExportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextExportSettingsExtensions { @@ -22195,7 +22191,7 @@ public static partial class DockerContextExportSettingsExtensions } #endregion #region DockerManifestAnnotateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerManifestAnnotateSettingsExtensions { @@ -22265,7 +22261,7 @@ public static partial class DockerManifestAnnotateSettingsExtensions } #endregion #region DockerImagePullSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImagePullSettingsExtensions { @@ -22339,7 +22335,7 @@ public static partial class DockerImagePullSettingsExtensions } #endregion #region DockerEventsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerEventsSettingsExtensions { @@ -22378,7 +22374,7 @@ public static partial class DockerEventsSettingsExtensions } #endregion #region DockerStackLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackLsSettingsExtensions { @@ -22433,7 +22429,7 @@ public static partial class DockerStackLsSettingsExtensions } #endregion #region DockerContainerInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerInspectSettingsExtensions { @@ -22488,7 +22484,7 @@ public static partial class DockerContainerInspectSettingsExtensions } #endregion #region DockerKillSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerKillSettingsExtensions { @@ -22526,7 +22522,7 @@ public static partial class DockerKillSettingsExtensions } #endregion #region DockerCheckpointCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerCheckpointCreateSettingsExtensions { @@ -22574,7 +22570,7 @@ public static partial class DockerCheckpointCreateSettingsExtensions } #endregion #region DockerPauseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPauseSettingsExtensions { @@ -22604,7 +22600,7 @@ public static partial class DockerPauseSettingsExtensions } #endregion #region DockerLogsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerLogsSettingsExtensions { @@ -22694,7 +22690,7 @@ public static partial class DockerLogsSettingsExtensions } #endregion #region DockerContextInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextInspectSettingsExtensions { @@ -22740,7 +22736,7 @@ public static partial class DockerContextInspectSettingsExtensions } #endregion #region DockerNodePromoteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodePromoteSettingsExtensions { @@ -22770,7 +22766,7 @@ public static partial class DockerNodePromoteSettingsExtensions } #endregion #region DockerNodeDemoteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNodeDemoteSettingsExtensions { @@ -22800,7 +22796,7 @@ public static partial class DockerNodeDemoteSettingsExtensions } #endregion #region DockerExecSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerExecSettingsExtensions { @@ -22961,7 +22957,7 @@ public static partial class DockerExecSettingsExtensions } #endregion #region DockerImageRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageRmSettingsExtensions { @@ -23025,21 +23021,21 @@ public static partial class DockerImageRmSettingsExtensions } #endregion #region DockerImageSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageSettingsExtensions { } #endregion #region DockerContextSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContextSettingsExtensions { } #endregion #region DockerVolumeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerVolumeSettingsExtensions { @@ -23054,7 +23050,7 @@ public static partial class DockerVolumeSettingsExtensions } #endregion #region DockerContainerStartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerContainerStartSettingsExtensions { @@ -23142,7 +23138,7 @@ public static partial class DockerContainerStartSettingsExtensions } #endregion #region DockerPluginInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerPluginInspectSettingsExtensions { @@ -23180,7 +23176,7 @@ public static partial class DockerPluginInspectSettingsExtensions } #endregion #region DockerLogoutSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerLogoutSettingsExtensions { @@ -23195,14 +23191,14 @@ public static partial class DockerLogoutSettingsExtensions } #endregion #region DockerNetworkSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerNetworkSettingsExtensions { } #endregion #region DockerImageLsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerImageLsSettingsExtensions { @@ -23301,7 +23297,7 @@ public static partial class DockerImageLsSettingsExtensions } #endregion #region DockerSystemDfSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerSystemDfSettingsExtensions { @@ -23333,7 +23329,7 @@ public static partial class DockerSystemDfSettingsExtensions } #endregion #region DockerServiceRollbackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerServiceRollbackSettingsExtensions { @@ -23382,7 +23378,7 @@ public static partial class DockerServiceRollbackSettingsExtensions } #endregion #region DockerRestartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerRestartSettingsExtensions { @@ -23420,7 +23416,7 @@ public static partial class DockerRestartSettingsExtensions } #endregion #region DockerTrustSignerRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerTrustSignerRemoveSettingsExtensions { @@ -23475,7 +23471,7 @@ public static partial class DockerTrustSignerRemoveSettingsExtensions } #endregion #region DockerStackRmSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerStackRmSettingsExtensions { @@ -23513,7 +23509,7 @@ public static partial class DockerStackRmSettingsExtensions } #endregion #region DockerBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DockerBuildSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Docker/Docker.json b/src/Fallout.Application.Tools/Docker/Docker.json similarity index 100% rename from src/Fallout.Common/Tools/Docker/Docker.json rename to src/Fallout.Application.Tools/Docker/Docker.json diff --git a/src/Fallout.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs b/src/Fallout.Application.Tools/Docker/DockerTargetDefinitionExtensions.cs similarity index 93% rename from src/Fallout.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs rename to src/Fallout.Application.Tools/Docker/DockerTargetDefinitionExtensions.cs index 0016dac68..159a26eca 100644 --- a/src/Fallout.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs +++ b/src/Fallout.Application.Tools/Docker/DockerTargetDefinitionExtensions.cs @@ -2,18 +2,20 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; using Serilog.Formatting.Compact.Reader; -using static Fallout.Common.Tools.Docker.DockerTasks; -using static Fallout.Common.Tools.DotNet.DotNetTasks; - -namespace Fallout.Common.Tools.Docker; +using static Fallout.Application.Tools.Docker.DockerTasks; +using static Fallout.Application.Tools.DotNet.DotNetTasks; +using Fallout.Application; +using Fallout.Application.Execution; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; + +namespace Fallout.Application.Tools.Docker; public static class DockerTargetDefinitionExtensions { @@ -100,7 +102,7 @@ bool IsUpToDate() => build.BuildAssemblyDirectory.GlobFiles("*.dll") .When(!settings.Rm.HasValue, _ => _ .EnableRm()) .AddVolume($"{build.RootDirectory}:{rootDirectory}") - .AddVolume($"{NuGetPackageResolver.GetPackagesDirectory(NuGetToolPathResolver.NuGetPackagesConfigFile)}:{nugetDirectory}") + .AddVolume($"{ToolingServices.ToolPaths.GetNuGetPackagesDirectory()}:{nugetDirectory}") .SetPlatform(settings.Platform) .SetWorkdir(rootDirectory) .SetEnvFile(envFile) diff --git a/src/Fallout.Common/Tools/Docker/DockerTasks.cs b/src/Fallout.Application.Tools/Docker/DockerTasks.cs similarity index 60% rename from src/Fallout.Common/Tools/Docker/DockerTasks.cs rename to src/Fallout.Application.Tools/Docker/DockerTasks.cs index c5d3752e2..9ae735d1b 100644 --- a/src/Fallout.Common/Tools/Docker/DockerTasks.cs +++ b/src/Fallout.Application.Tools/Docker/DockerTasks.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; using Serilog.Events; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Docker; +namespace Fallout.Application.Tools.Docker; [LogErrorAsStandard] [LogLevelPattern(LogEventLevel.Warning, "^WARNING!")] diff --git a/src/Fallout.Common/Tools/DotCover/DotCover.Generated.cs b/src/Fallout.Application.Tools/DotCover/DotCover.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/DotCover/DotCover.Generated.cs rename to src/Fallout.Application.Tools/DotCover/DotCover.Generated.cs index 1f95e1bac..8276b16df 100644 --- a/src/Fallout.Common/Tools/DotCover/DotCover.Generated.cs +++ b/src/Fallout.Application.Tools/DotCover/DotCover.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/DotCover/DotCover.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotCover; +namespace Fallout.Application.Tools.DotCover; ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,55 +23,55 @@ public partial class DotCoverTasks : ToolTasks, IRequireNuGetPackage ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --AllowSymbolServerAccess via
  • --AnalyseTargetArguments via
  • --AttributeFilters via
  • --DisableDefaultFilters via
  • --Filters via
  • --HideAutoProperties via
  • --InheritConsole via
  • --LogFile via
  • --Output via
  • --ProcessFilters via
  • --ReportType via
  • --ReturnTargetExitCode via
  • --Scope via
  • --SymbolSearchPaths via
  • --TargetArguments via
  • --TargetExecutable via
  • --TargetWorkingDir via
  • --TempDir via
public static IReadOnlyCollection DotCoverAnalyse(DotCoverAnalyseSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverAnalyse(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverAnalyseSettings())); - /// + /// public static IEnumerable<(DotCoverAnalyseSettings Settings, IReadOnlyCollection Output)> DotCoverAnalyse(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverAnalyse, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --AllowSymbolServerAccess via
  • --AnalyseTargetArguments via
  • --AttributeFilters via
  • --DisableDefaultFilters via
  • --Filters via
  • --InheritConsole via
  • --LogFile via
  • --Output via
  • --ProcessFilters via
  • --ReportType via
  • --ReturnTargetExitCode via
  • --Scope via
  • --SymbolSearchPaths via
  • --TargetArguments via
  • --TargetExecutable via
  • --TargetWorkingDir via
  • --TempDir via
public static IReadOnlyCollection DotCoverCover(DotCoverCoverSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverCover(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverCoverSettings())); - /// + /// public static IEnumerable<(DotCoverCoverSettings Settings, IReadOnlyCollection Output)> DotCoverCover(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverCover, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --AllowSymbolServerAccess via
  • --AnalyseTargetArguments via
  • --AttributeFilters via
  • --DisableDefaultFilters via
  • --Filters via
  • --InheritConsole via
  • --LogFile via
  • --Output via
  • --ProcessFilters via
  • --ReportType via
  • --ReturnTargetExitCode via
  • --Scope via
  • --SymbolSearchPaths via
  • --TargetArguments via
  • --TargetWorkingDir via
  • --TempDir via
public static IReadOnlyCollection DotCoverCoverDotNet(DotCoverCoverDotNetSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverCoverDotNet(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverCoverDotNetSettings())); - /// + /// public static IEnumerable<(DotCoverCoverDotNetSettings Settings, IReadOnlyCollection Output)> DotCoverCoverDotNet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverCoverDotNet, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --LogFile via
  • --Source via
public static IReadOnlyCollection DotCoverDelete(DotCoverDeleteSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverDelete(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverDeleteSettings())); - /// + /// public static IEnumerable<(DotCoverDeleteSettings Settings, IReadOnlyCollection Output)> DotCoverDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverDelete, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --LogFile via
  • --Output via
  • --Source via
  • --TempDir via
public static IReadOnlyCollection DotCoverMerge(DotCoverMergeSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverMerge(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverMergeSettings())); - /// + /// public static IEnumerable<(DotCoverMergeSettings Settings, IReadOnlyCollection Output)> DotCoverMerge(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverMerge, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --HideAutoProperties via
  • --LogFile via
  • --Output via
  • --ReportType via
  • --Source via
public static IReadOnlyCollection DotCoverReport(DotCoverReportSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverReport(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverReportSettings())); - /// + /// public static IEnumerable<(DotCoverReportSettings Settings, IReadOnlyCollection Output)> DotCoverReport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverReport, degreeOfParallelism, completeOnFailure); ///

dotCover is a .NET unit testing and code coverage tool that works right in Visual Studio, helps you know to what extent your code is covered with unit tests, provides great ways to visualize code coverage, and is Continuous Integration ready. dotCover calculates and reports statement-level code coverage in applications targeting .NET Framework, Silverlight, and .NET Core.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <configuration> via
  • --LogFile via
  • --Output via
  • --Source via
public static IReadOnlyCollection DotCoverZip(DotCoverZipSettings options = null) => new DotCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection DotCoverZip(Configure configurator) => new DotCoverTasks().Run(configurator.Invoke(new DotCoverZipSettings())); - /// + /// public static IEnumerable<(DotCoverZipSettings Settings, IReadOnlyCollection Output)> DotCoverZip(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotCoverZip, degreeOfParallelism, completeOnFailure); } #region DotCoverAnalyseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverAnalyse), Arguments = "analyse")] public partial class DotCoverAnalyseSettings : ToolOptions @@ -122,7 +117,7 @@ public partial class DotCoverAnalyseSettings : ToolOptions } #endregion #region DotCoverCoverSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverCover), Arguments = "cover")] public partial class DotCoverCoverSettings : ToolOptions @@ -166,7 +161,7 @@ public partial class DotCoverCoverSettings : ToolOptions } #endregion #region DotCoverCoverDotNetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverCoverDotNet), Arguments = "dotnet")] public partial class DotCoverCoverDotNetSettings : ToolOptions @@ -208,7 +203,7 @@ public partial class DotCoverCoverDotNetSettings : ToolOptions } #endregion #region DotCoverDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverDelete), Arguments = "delete")] public partial class DotCoverDeleteSettings : ToolOptions @@ -222,7 +217,7 @@ public partial class DotCoverDeleteSettings : ToolOptions } #endregion #region DotCoverMergeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverMerge), Arguments = "merge")] public partial class DotCoverMergeSettings : ToolOptions @@ -240,7 +235,7 @@ public partial class DotCoverMergeSettings : ToolOptions } #endregion #region DotCoverReportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverReport), Arguments = "report")] public partial class DotCoverReportSettings : ToolOptions @@ -260,7 +255,7 @@ public partial class DotCoverReportSettings : ToolOptions } #endregion #region DotCoverZipSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotCoverTasks), Command = nameof(DotCoverTasks.DotCoverZip), Arguments = "zip")] public partial class DotCoverZipSettings : ToolOptions @@ -276,7 +271,7 @@ public partial class DotCoverZipSettings : ToolOptions } #endregion #region DotCoverAnalyseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverAnalyseSettingsExtensions { @@ -564,7 +559,7 @@ public static partial class DotCoverAnalyseSettingsExtensions } #endregion #region DotCoverCoverSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverCoverSettingsExtensions { @@ -835,7 +830,7 @@ public static partial class DotCoverCoverSettingsExtensions } #endregion #region DotCoverCoverDotNetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverCoverDotNetSettingsExtensions { @@ -1098,7 +1093,7 @@ public static partial class DotCoverCoverDotNetSettingsExtensions } #endregion #region DotCoverDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverDeleteSettingsExtensions { @@ -1144,7 +1139,7 @@ public static partial class DotCoverDeleteSettingsExtensions } #endregion #region DotCoverMergeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverMergeSettingsExtensions { @@ -1206,7 +1201,7 @@ public static partial class DotCoverMergeSettingsExtensions } #endregion #region DotCoverReportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverReportSettingsExtensions { @@ -1285,7 +1280,7 @@ public static partial class DotCoverReportSettingsExtensions } #endregion #region DotCoverZipSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotCoverZipSettingsExtensions { diff --git a/src/Fallout.Common/Tools/DotCover/DotCover.json b/src/Fallout.Application.Tools/DotCover/DotCover.json similarity index 100% rename from src/Fallout.Common/Tools/DotCover/DotCover.json rename to src/Fallout.Application.Tools/DotCover/DotCover.json diff --git a/src/Fallout.Common/Tools/DotCover/DotCoverTasks.cs b/src/Fallout.Application.Tools/DotCover/DotCoverTasks.cs similarity index 90% rename from src/Fallout.Common/Tools/DotCover/DotCoverTasks.cs rename to src/Fallout.Application.Tools/DotCover/DotCoverTasks.cs index ae7415639..13dbe36f7 100644 --- a/src/Fallout.Common/Tools/DotCover/DotCoverTasks.cs +++ b/src/Fallout.Application.Tools/DotCover/DotCoverTasks.cs @@ -1,13 +1,13 @@ -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.DotCover; +namespace Fallout.Application.Tools.DotCover; partial class DotCoverTasks { protected override string GetToolPath(ToolOptions options = null) { - return NuGetToolPathResolver.GetPackageExecutable( + return ToolingServices.ToolPaths.GetPackageExecutable( PackageId, EnvironmentInfo.IsWin ? "dotCover.exe" : "dotCover.sh|dotCover.dll"); } diff --git a/src/Fallout.Common/Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs b/src/Fallout.Application.Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs similarity index 61% rename from src/Fallout.Common/Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs rename to src/Fallout.Application.Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs index ca999c4e9..fe5a7c91e 100644 --- a/src/Fallout.Common/Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs +++ b/src/Fallout.Application.Tools/DotCover/TeamCitySetDotCoverHomePathAttribute.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common.Tools.DotCover; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.DotCover; public class TeamCitySetDotCoverHomePathAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { @@ -12,6 +12,6 @@ public void OnBuildInitialized( IReadOnlyCollection executableTargets, IReadOnlyCollection executionPlan) { - TeamCity.Instance?.SetConfigurationParameter("teamcity.dotCover.home", DotCoverTasks.DotCoverPath); + CiHost.TeamCity?.SetConfigurationParameter("teamcity.dotCover.home", DotCoverTasks.DotCoverPath); } } diff --git a/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs b/src/Fallout.Application.Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs similarity index 88% rename from src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs rename to src/Fallout.Application.Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs index 308a475ef..e491cd72b 100644 --- a/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs +++ b/src/Fallout.Application.Tools/DotMemoryUnit/DotMemoryUnit.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotMemoryUnit; +namespace Fallout.Application.Tools.DotMemoryUnit; ///

dotMemory Unit is a unit testing framework which allows you to write tests that check your code for all kinds of memory issues. You can now extend NUnit, MSTest or another .NET unit testing framework with the functionality of a memory profiler.Perfect fit for any workflow: integrated with Visual Studio, works with stand-alone unit test runners, Continuous Integration ready. Last but not least, dotMemory Unit is free.

For more details, visit the official website.

[ExcludeFromCodeCoverage] diff --git a/src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.json b/src/Fallout.Application.Tools/DotMemoryUnit/DotMemoryUnit.json similarity index 100% rename from src/Fallout.Common/Tools/DotMemoryUnit/DotMemoryUnit.json rename to src/Fallout.Application.Tools/DotMemoryUnit/DotMemoryUnit.json diff --git a/src/Fallout.Common/Tools/DotNet/DotNet.Generated.cs b/src/Fallout.Application.Tools/DotNet/DotNet.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/DotNet/DotNet.Generated.cs rename to src/Fallout.Application.Tools/DotNet/DotNet.Generated.cs index 624f40593..e6762b3d8 100644 --- a/src/Fallout.Common/Tools/DotNet/DotNet.Generated.cs +++ b/src/Fallout.Application.Tools/DotNet/DotNet.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/DotNet/DotNet.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotNet; +namespace Fallout.Application.Tools.DotNet; ///

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,174 +24,174 @@ public partial class DotNetTasks : ToolTasks, IRequirePathTool ///

The dotnet test command is used to execute unit tests in a given project. Unit tests are console application projects that have dependencies on the unit test framework (for example, MSTest, NUnit, or xUnit) and the dotnet test runner for the unit testing framework. These are packaged as NuGet packages and are restored as ordinary dependencies for the project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projectFile> via
  • -- via
  • --artifacts-path via
  • --blame via
  • --blame-crash via
  • --blame-crash-collect-always via
  • --blame-crash-dump-type via
  • --blame-hang via
  • --blame-hang-dump-type via
  • --blame-hang-timeout via
  • --collect via
  • --configuration via
  • --diag via
  • --disable-parallel via
  • --filter via
  • --force via
  • --force-evaluate via
  • --framework via
  • --ignore-failed-sources via
  • --list-tests via
  • --lock-file-path via
  • --locked-mode via
  • --logger via
  • --no-build via
  • --no-cache via
  • --no-dependencies via
  • --no-restore via
  • --nologo via
  • --output via
  • --packages via
  • --results-directory via
  • --runtime via
  • --settings via
  • --source via
  • --test-adapter-path via
  • --use-lock-file via
  • --verbosity via
  • /property via
public static IReadOnlyCollection DotNetTest(DotNetTestSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetTest(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetTestSettings())); - /// + /// public static IEnumerable<(DotNetTestSettings Settings, IReadOnlyCollection Output)> DotNetTest(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetTest, degreeOfParallelism, completeOnFailure); ///

The dotnet run command provides a convenient option to run your application from the source code with one command. It's useful for fast iterative development from the command line. The command depends on the dotnet build command to build the code. Any requirements for the build, such as that the project must be restored first, apply to dotnet run as well.

Output files are written into the default location, which is bin/<configuration>/<target>. For example if you have a netcoreapp1.0 application and you run dotnet run, the output is placed in bin/Debug/netcoreapp1.0. Files are overwritten as needed. Temporary files are placed in the obj directory.

If the project specifies multiple frameworks, executing dotnet run results in an error unless the -f|--framework <FRAMEWORK> option is used to specify the framework.

The dotnet run command is used in the context of projects, not built assemblies. If you're trying to run a framework-dependent application DLL instead, you must use dotnet without a command. For example, to run myapp.dll, use: dotnet myapp.dll

For more information on the dotnet driver, see the .NET Core Command Line Tools (CLI) topic.

In order to run the application, the dotnet run command resolves the dependencies of the application that are outside of the shared runtime from the NuGet cache. Because it uses cached dependencies, it's not recommended to use dotnet run to run applications in production. Instead, create a deployment using the dotnet publish command and deploy the published output.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --arch via
  • --artifacts-path via
  • --configuration via
  • --disable-build-servers via
  • --disable-parallel via
  • --force via
  • --force-evaluate via
  • --framework via
  • --ignore-failed-sources via
  • --interactive via
  • --launch-profile via
  • --lock-file-path via
  • --locked-mode via
  • --no-build via
  • --no-cache via
  • --no-dependencies via
  • --no-launch-profile via
  • --no-restore via
  • --no-self-contained via
  • --os via
  • --packages via
  • --project via
  • --property via
  • --runtime via
  • --self-contained via
  • --source via
  • --use-lock-file via
  • --verbosity via
public static IReadOnlyCollection DotNetRun(DotNetRunSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetRun(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetRunSettings())); - /// + /// public static IEnumerable<(DotNetRunSettings Settings, IReadOnlyCollection Output)> DotNetRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetRun, degreeOfParallelism, completeOnFailure); ///

The dotnet restore command uses NuGet to restore dependencies as well as project-specific tools that are specified in the project file. By default, the restoration of dependencies and tools are performed in parallel.

Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands, such as dotnet build and dotnet run, that require a restore to occur. It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Visual Studio Team Services or in build systems that need to explicitly control the time at which the restore occurs.

In order to restore the dependencies, NuGet needs the feeds where the packages are located. Feeds are usually provided via the NuGet.config configuration file. A default configuration file is provided when the CLI tools are installed. You specify additional feeds by creating your own NuGet.config file in the project directory. You also specify additional feeds per invocation at a command prompt.

For dependencies, you specify where the restored packages are placed during the restore operation using the --packages argument. If not specified, the default NuGet package cache is used, which is found in the .nuget/packages directory in the user's home directory on all operating systems (for example, /home/user1 on Linux or C:\Users\user1 on Windows).

For project-specific tooling, dotnet restore first restores the package in which the tool is packed, and then proceeds to restore the tool's dependencies as specified in its project file.

The behavior of the dotnet restore command is affected by some of the settings in the Nuget.Config file, if present. For example, setting the globalPackagesFolder in NuGet.Config places the restored NuGet packages in the specified folder. This is an alternative to specifying the --packages option on the dotnet restore command. For more information, see the NuGet.Config reference.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projectFile> via
  • --configfile via
  • --disable-parallel via
  • --force via
  • --force-evaluate via
  • --ignore-failed-sources via
  • --lock-file-path via
  • --locked-mode via
  • --no-cache via
  • --no-dependencies via
  • --packages via
  • --property via
  • --runtime via
  • --source via
  • --use-lock-file via
  • --verbosity via
public static IReadOnlyCollection DotNetRestore(DotNetRestoreSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetRestore(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetRestoreSettings())); - /// + /// public static IEnumerable<(DotNetRestoreSettings Settings, IReadOnlyCollection Output)> DotNetRestore(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetRestore, degreeOfParallelism, completeOnFailure); ///

The dotnet pack command builds the project and creates NuGet packages. The result of this command is a NuGet package. If the --include-symbols option is present, another package containing the debug symbols is created.

NuGet dependencies of the packed project are added to the .nuspec file, so they're properly resolved when the package is installed. Project-to-project references aren't packaged inside the project. Currently, you must have a package per project if you have project-to-project dependencies.

By default, dotnet pack builds the project first. If you wish to avoid this behavior, pass the --no-build option. This is often useful in Continuous Integration (CI) build scenarios where you know the code was previously built.

You can provide MSBuild properties to the dotnet pack command for the packing process. For more information, see NuGet metadata properties and the MSBuild Command-Line Reference.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <project> via
  • --artifacts-path via
  • --configuration via
  • --disable-parallel via
  • --force via
  • --force-evaluate via
  • --ignore-failed-sources via
  • --include-source via
  • --include-symbols via
  • --lock-file-path via
  • --locked-mode via
  • --no-build via
  • --no-cache via
  • --no-dependencies via
  • --no-restore via
  • --nologo via
  • --output via
  • --packages via
  • --property via
  • --runtime via
  • --serviceable via
  • --source via
  • --use-lock-file via
  • --verbosity via
  • --version-suffix via
public static IReadOnlyCollection DotNetPack(DotNetPackSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetPack(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetPackSettings())); - /// + /// public static IEnumerable<(DotNetPackSettings Settings, IReadOnlyCollection Output)> DotNetPack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetPack, degreeOfParallelism, completeOnFailure); ///

The dotnet build command builds the project and its dependencies into a set of binaries. The binaries include the project's code in Intermediate Language (IL) files with a .dll extension and symbol files used for debugging with a .pdb extension. A dependencies JSON file (*.deps.json) is produced that lists the dependencies of the application. A .runtimeconfig.json file is produced, which specifies the shared runtime and its version for the application.

If the project has third-party dependencies, such as libraries from NuGet, they're resolved from the NuGet cache and aren't available with the project's built output. With that in mind, the product of dotnet buildd isn't ready to be transferred to another machine to run. This is in contrast to the behavior of the .NET Framework in which building an executable project (an application) produces output that's runnable on any machine where the .NET Framework is installed. To have a similar experience with .NET Core, you use the dotnet publish command. For more information, see .NET Core Application Deployment.

Building requires the project.assets.json file, which lists the dependencies of your application. The file is created dotnet restore is executed. Without the assets file in place, the tooling cannot resolve reference assemblies, which will result in errors. With .NET Core 1.x SDK, you needed to explicitily run the dotnet restore before running dotnet build. Starting with .NET Core 2.0 SDK, dotnet restore runs implicitily when you run dotnet build. If you want to disable implicit restore when running the build command, you can pass the --no-restore option.

dotnet build uses MSBuild to build the project; thus, it supports both parallel and incremental builds. Refer to Incremental Builds for more information.

In addition to its options, the dotnet build command accepts MSBuild options, such as /p for setting properties or /l to define a logger. Learn more about these options in the MSBuild Command-Line Reference.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projectFile> via
  • --artifacts-path via
  • --configuration via
  • --disable-parallel via
  • --force via
  • --force-evaluate via
  • --framework via
  • --ignore-failed-sources via
  • --lock-file-path via
  • --locked-mode via
  • --no-cache via
  • --no-dependencies via
  • --no-incremental via
  • --no-restore via
  • --nologo via
  • --output via
  • --packages via
  • --property via
  • --runtime via
  • --self-contained via
  • --source via
  • --use-lock-file via
  • --verbosity via
  • --version-suffix via
  • -bl via
  • /logger via
  • /noconsolelogger via
public static IReadOnlyCollection DotNetBuild(DotNetBuildSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetBuild(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetBuildSettings())); - /// + /// public static IEnumerable<(DotNetBuildSettings Settings, IReadOnlyCollection Output)> DotNetBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetBuild, degreeOfParallelism, completeOnFailure); ///

The dotnet msbuild command allows access to a fully functional MSBuild.The command has the exact same capabilities as the existing MSBuild command-line client for SDK-style projects only. The options are all the same. For more information about the available options, see the MSBuild command-line reference.The dotnet build command is equivalent to dotnet msbuild -restore. When you don't want to build the project and you have a specific target you want to run, use dotnet build or dotnet msbuild and specify the target.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • -bl via
  • /detailedsummary via
  • /graphBuild via
  • /logger via
  • /maxcpucount via
  • /noconsolelogger via
  • /nodeReuse via
  • /nologo via
  • /property via
  • /property:Configuration via
  • /restore via
  • /target via
  • /verbosity via
public static IReadOnlyCollection DotNetMSBuild(DotNetMSBuildSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetMSBuild(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetMSBuildSettings())); - /// + /// public static IEnumerable<(DotNetMSBuildSettings Settings, IReadOnlyCollection Output)> DotNetMSBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetMSBuild, degreeOfParallelism, completeOnFailure); ///

The dotnet clean command cleans the output of the previous build. It's implemented as an MSBuild target, so the project is evaluated when the command is run. Only the outputs created during the build are cleaned. Both intermediate (obj) and final output (bin) folders are cleaned.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <project> via
  • --artifacts-path via
  • --configuration via
  • --framework via
  • --nologo via
  • --output via
  • --property via
  • --runtime via
  • --verbosity via
public static IReadOnlyCollection DotNetClean(DotNetCleanSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetClean(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetCleanSettings())); - /// + /// public static IEnumerable<(DotNetCleanSettings Settings, IReadOnlyCollection Output)> DotNetClean(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetClean, degreeOfParallelism, completeOnFailure); ///

dotnet format is a code formatter that applies style preferences to a project or solution. Preferences will be read from an *.editorconfig* file, if present, otherwise a default set of preferences will be used. For more information, see the EditorConfig documentation

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <project> via
  • --binarylog via
  • --exclude via
  • --include via
  • --include-generated via
  • --no-restore via
  • --property via
  • --report via
  • --severity via
  • --verbosity via
  • --verify-no-changes via
public static IReadOnlyCollection DotNetFormat(DotNetFormatSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetFormat(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetFormatSettings())); - /// + /// public static IEnumerable<(DotNetFormatSettings Settings, IReadOnlyCollection Output)> DotNetFormat(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetFormat, degreeOfParallelism, completeOnFailure); ///

dotnet publish compiles the application, reads through its dependencies specified in the project file, and publishes the resulting set of files to a directory. The output will contain the following:

  • Intermediate Language (IL) code in an assembly with a dll extension.
  • .deps.json file that contains all of the dependencies of the project.
  • .runtime.config.json file that specifies the shared runtime that the application expects, as well as other configuration options for the runtime (for example, garbage collection type).
  • The application's dependencies. These are copied from the NuGet cache into the output folder.
The dotnet publish command's output is ready for deployment to a hosting system (for example, a server, PC, Mac, laptop) for execution and is the only officially supported way to prepare the application for deployment. Depending on the type of deployment that the project specifies, the hosting system may or may not have the .NET Core shared runtime installed on it. For more information, see .NET Core Application Deployment. For the directory structure of a published application, see Directory structure.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <project> via
  • --arch via
  • --artifacts-path via
  • --configuration via
  • --disable-parallel via
  • --force via
  • --force-evaluate via
  • --framework via
  • --ignore-failed-sources via
  • --lock-file-path via
  • --locked-mode via
  • --manifest via
  • --no-build via
  • --no-cache via
  • --no-dependencies via
  • --no-restore via
  • --nologo via
  • --os via
  • --output via
  • --packages via
  • --property via
  • --runtime via
  • --self-contained via
  • --source via
  • --use-lock-file via
  • --verbosity via
  • --version-suffix via
  • /t via
public static IReadOnlyCollection DotNetPublish(DotNetPublishSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetPublish(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetPublishSettings())); - /// + /// public static IEnumerable<(DotNetPublishSettings Settings, IReadOnlyCollection Output)> DotNetPublish(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetPublish, degreeOfParallelism, completeOnFailure); ///

Pushes a package to the server and publishes it.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • --api-key via
  • --disable-buffering via
  • --force-english-output via
  • --no-service-endpoint via
  • --no-symbols via
  • --skip-duplicate via
  • --source via
  • --symbol-api-key via
  • --symbol-source via
  • --timeout via
public static IReadOnlyCollection DotNetNuGetPush(DotNetNuGetPushSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetPush(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetPushSettings())); - /// + /// public static IEnumerable<(DotNetNuGetPushSettings Settings, IReadOnlyCollection Output)> DotNetNuGetPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetPush, degreeOfParallelism, completeOnFailure); ///

The dotnet nuget delete command deletes or unlists a package from the server. For nuget.org, the action is to unlist the package.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageId> via
  • <packageVersion> via
  • --api-key via
  • --force-english-output via
  • --interactive via
  • --no-service-endpoint via
  • --non-interactive via
  • --source via
public static IReadOnlyCollection DotNetNuGetDelete(DotNetNuGetDeleteSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetDelete(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetDeleteSettings())); - /// + /// public static IEnumerable<(DotNetNuGetDeleteSettings Settings, IReadOnlyCollection Output)> DotNetNuGetDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetDelete, degreeOfParallelism, completeOnFailure); ///

The dotnet nuget sign command signs all the packages matching the first argument with a certificate. The certificate with the private key can be obtained from a file or from a certificate installed in a certificate store by providing a subject name or a SHA-1 fingerprint.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • --certificate-fingerprint via
  • --certificate-password via
  • --certificate-path via
  • --certificate-store-location via
  • --certificate-store-name via
  • --certificate-subject-name via
  • --hash-algorithm via
  • --output via
  • --overwrite via
  • --timestamp-hash-algorithm via
  • --timestamper via
  • --verbosity via
public static IReadOnlyCollection DotNetNuGetSign(DotNetNuGetSignSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetSign(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetSignSettings())); - /// + /// public static IEnumerable<(DotNetNuGetSignSettings Settings, IReadOnlyCollection Output)> DotNetNuGetSign(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetSign, degreeOfParallelism, completeOnFailure); ///

The dotnet nuget verify command verifies a signed NuGet package.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • --certificate-fingerprint via
  • --configfile via
  • --verbosity via
public static IReadOnlyCollection DotNetNuGetVerify(DotNetNuGetVerifySettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetVerify(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetVerifySettings())); - /// + /// public static IEnumerable<(DotNetNuGetVerifySettings Settings, IReadOnlyCollection Output)> DotNetNuGetVerify(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetVerify, degreeOfParallelism, completeOnFailure); ///

Adds a NuGet source.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <source> via
  • --configfile via
  • --name via
  • --password via
  • --store-password-in-clear-text via
  • --username via
  • --valid-authentication-types via
public static IReadOnlyCollection DotNetNuGetAddSource(DotNetNuGetAddSourceSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetAddSource(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetAddSourceSettings())); - /// + /// public static IEnumerable<(DotNetNuGetAddSourceSettings Settings, IReadOnlyCollection Output)> DotNetNuGetAddSource(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetAddSource, degreeOfParallelism, completeOnFailure); ///

Updates a NuGet source.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --configfile via
  • --password via
  • --source via
  • --store-password-in-clear-text via
  • --username via
  • --valid-authentication-types via
public static IReadOnlyCollection DotNetNuGetUpdateSource(DotNetNuGetUpdateSourceSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetNuGetUpdateSource(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetNuGetUpdateSourceSettings())); - /// + /// public static IEnumerable<(DotNetNuGetUpdateSourceSettings Settings, IReadOnlyCollection Output)> DotNetNuGetUpdateSource(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetNuGetUpdateSource, degreeOfParallelism, completeOnFailure); ///

The dotnet tool install command provides a way for you to install .NET Core Global Tools on your machine. To use the command, you either have to specify that you want a user-wide installation using the --global option or you specify a path to install it using the --tool-path option.Global Tools are installed in the following directories by default when you specify the -g (or --global) option:

  • Linux/macOS: $HOME/.dotnet/tools
  • Windows: %USERPROFILE%\.dotnet\tools

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageName> via
  • --add-source via
  • --configfile via
  • --framework via
  • --global via
  • --tool-path via
  • --verbosity via
  • --version via
public static IReadOnlyCollection DotNetToolInstall(DotNetToolInstallSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetToolInstall(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetToolInstallSettings())); - /// + /// public static IEnumerable<(DotNetToolInstallSettings Settings, IReadOnlyCollection Output)> DotNetToolInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetToolInstall, degreeOfParallelism, completeOnFailure); ///

The dotnet tool restore command finds the tool manifest file that is in scope for the current directory and installs the tools that are listed in it.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --add-source via
  • --configfile via
  • --disable-parallel via
  • --ignore-failed-sources via
  • --interactive via
  • --no-cache via
  • --tool-manifest via
public static IReadOnlyCollection DotNetToolRestore(DotNetToolRestoreSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetToolRestore(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetToolRestoreSettings())); - /// + /// public static IEnumerable<(DotNetToolRestoreSettings Settings, IReadOnlyCollection Output)> DotNetToolRestore(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetToolRestore, degreeOfParallelism, completeOnFailure); ///

The dotnet tool uninstall command provides a way for you to uninstall .NET Core Global Tools from your machine. To use the command, you either have to specify that you want to remove a user-wide tool using the --global option or specify a path to where the tool is installed using the --tool-path option.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageName> via
  • --global via
  • --tool-path via
  • --verbosity via
public static IReadOnlyCollection DotNetToolUninstall(DotNetToolUninstallSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetToolUninstall(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetToolUninstallSettings())); - /// + /// public static IEnumerable<(DotNetToolUninstallSettings Settings, IReadOnlyCollection Output)> DotNetToolUninstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetToolUninstall, degreeOfParallelism, completeOnFailure); ///

The dotnet tool update command provides a way for you to update .NET Core Global Tools on your machine to the latest stable version of the package. The command uninstalls and re-installs a tool, effectively updating it. To use the command, you either have to specify that you want to update a tool from a user-wide installation using the --global option or specify a path to where the tool is installed using the --tool-path option.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageName> via
  • --add-source via
  • --configfile via
  • --framework via
  • --global via
  • --tool-path via
  • --verbosity via
  • --version via
public static IReadOnlyCollection DotNetToolUpdate(DotNetToolUpdateSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetToolUpdate(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetToolUpdateSettings())); - /// + /// public static IEnumerable<(DotNetToolUpdateSettings Settings, IReadOnlyCollection Output)> DotNetToolUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetToolUpdate, degreeOfParallelism, completeOnFailure); ///

The dotnet workload install command installs one or more optional workloads. Optional workloads can be installed on top of the .NET SDK to provide support for various application types, such as .NET MAUI and Blazor WebAssembly AOT.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <workloadId> via
  • --configFile via
  • --disable-parallel via
  • --ignore-failed-sources via
  • --include-previews via
  • --interactive via
  • --no-cache via
  • --skip-manifest-update via
  • --skip-sign-check via
  • --source via
  • --temp-dir via
  • --verbosity via
public static IReadOnlyCollection DotNetWorkloadInstall(DotNetWorkloadInstallSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetWorkloadInstall(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetWorkloadInstallSettings())); - /// + /// public static IEnumerable<(DotNetWorkloadInstallSettings Settings, IReadOnlyCollection Output)> DotNetWorkloadInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetWorkloadInstall, degreeOfParallelism, completeOnFailure); ///

The dotnet workload uninstall command uninstalls one or more workloads.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <workloadId> via
public static IReadOnlyCollection DotNetWorkloadUninstall(DotNetWorkloadUninstallSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetWorkloadUninstall(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetWorkloadUninstallSettings())); - /// + /// public static IEnumerable<(DotNetWorkloadUninstallSettings Settings, IReadOnlyCollection Output)> DotNetWorkloadUninstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetWorkloadUninstall, degreeOfParallelism, completeOnFailure); ///

The dotnet workload restore command analyzes a project or solution to determine which workloads it needs, then installs any workloads that are missing.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <project> via
  • --configFile via
  • --disable-parallel via
  • --ignore-failed-sources via
  • --include-previews via
  • --interactive via
  • --no-cache via
  • --skip-manifest-update via
  • --skip-sign-check via
  • --source via
  • --temp-dir via
  • --verbosity via
public static IReadOnlyCollection DotNetWorkloadRestore(DotNetWorkloadRestoreSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetWorkloadRestore(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetWorkloadRestoreSettings())); - /// + /// public static IEnumerable<(DotNetWorkloadRestoreSettings Settings, IReadOnlyCollection Output)> DotNetWorkloadRestore(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetWorkloadRestore, degreeOfParallelism, completeOnFailure); ///

The dotnet workload update command updates all installed workloads to the newest available versions. It queries Nuget.org for updated workload manifests. It then updates local manifests, downloads new versions of the installed workloads, and removes all old versions of each workload.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --advertising-manifests-only via
  • --configFile via
  • --disable-parallel via
  • --from-previous-sdk via
  • --ignore-failed-sources via
  • --include-previews via
  • --interactive via
  • --no-cache via
  • --skip-sign-check via
  • --source via
  • --temp-dir via
  • --verbosity via
public static IReadOnlyCollection DotNetWorkloadUpdate(DotNetWorkloadUpdateSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetWorkloadUpdate(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetWorkloadUpdateSettings())); - /// + /// public static IEnumerable<(DotNetWorkloadUpdateSettings Settings, IReadOnlyCollection Output)> DotNetWorkloadUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetWorkloadUpdate, degreeOfParallelism, completeOnFailure); ///

The dotnet workload repair command reinstalls all installed workloads. Workloads are made up of multiple workload packs and it's possible to get into a state where some installed successfully but others didn't. For example, a dotnet workload install command might not finish installing because of a dropped internet connection.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configFile via
  • --disable-parallel via
  • --ignore-failed-sources via
  • --include-previews via
  • --interactive via
  • --no-cache via
  • --skip-sign-check via
  • --source via
  • --temp-dir via
  • --verbosity via
public static IReadOnlyCollection DotNetWorkloadRepair(DotNetWorkloadRepairSettings options = null) => new DotNetTasks().Run(options); - /// + /// public static IReadOnlyCollection DotNetWorkloadRepair(Configure configurator) => new DotNetTasks().Run(configurator.Invoke(new DotNetWorkloadRepairSettings())); - /// + /// public static IEnumerable<(DotNetWorkloadRepairSettings Settings, IReadOnlyCollection Output)> DotNetWorkloadRepair(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotNetWorkloadRepair, degreeOfParallelism, completeOnFailure); } #region DotNetTestSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetTest), Arguments = "test")] public partial class DotNetTestSettings : ToolOptions @@ -279,7 +275,7 @@ public partial class DotNetTestSettings : ToolOptions } #endregion #region DotNetRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetRun), Arguments = "run")] public partial class DotNetRunSettings : ToolOptions @@ -345,7 +341,7 @@ public partial class DotNetRunSettings : ToolOptions } #endregion #region DotNetRestoreSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetRestore), Arguments = "restore")] public partial class DotNetRestoreSettings : ToolOptions @@ -385,7 +381,7 @@ public partial class DotNetRestoreSettings : ToolOptions } #endregion #region DotNetPackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetPack), Arguments = "pack")] public partial class DotNetPackSettings : ToolOptions @@ -443,7 +439,7 @@ public partial class DotNetPackSettings : ToolOptions } #endregion #region DotNetBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetBuild), Arguments = "build")] public partial class DotNetBuildSettings : ToolOptions @@ -505,7 +501,7 @@ public partial class DotNetBuildSettings : ToolOptions } #endregion #region DotNetMSBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetMSBuild), Arguments = "msbuild")] public partial class DotNetMSBuildSettings : ToolOptions @@ -541,7 +537,7 @@ public partial class DotNetMSBuildSettings : ToolOptions } #endregion #region DotNetCleanSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetClean), Arguments = "clean")] public partial class DotNetCleanSettings : ToolOptions @@ -567,7 +563,7 @@ public partial class DotNetCleanSettings : ToolOptions } #endregion #region DotNetFormatSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetFormat), Arguments = "format")] public partial class DotNetFormatSettings : ToolOptions @@ -597,7 +593,7 @@ public partial class DotNetFormatSettings : ToolOptions } #endregion #region DotNetPublishSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetPublish), Arguments = "publish")] public partial class DotNetPublishSettings : ToolOptions @@ -661,7 +657,7 @@ public partial class DotNetPublishSettings : ToolOptions } #endregion #region DotNetNuGetPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetPush), Arguments = "nuget push")] public partial class DotNetNuGetPushSettings : ToolOptions @@ -691,7 +687,7 @@ public partial class DotNetNuGetPushSettings : ToolOptions } #endregion #region DotNetNuGetDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetDelete), Arguments = "nuget delete")] public partial class DotNetNuGetDeleteSettings : ToolOptions @@ -715,7 +711,7 @@ public partial class DotNetNuGetDeleteSettings : ToolOptions } #endregion #region DotNetNuGetSignSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetSign), Arguments = "nuget sign")] public partial class DotNetNuGetSignSettings : ToolOptions @@ -749,7 +745,7 @@ public partial class DotNetNuGetSignSettings : ToolOptions } #endregion #region DotNetNuGetVerifySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetVerify), Arguments = "nuget verify")] public partial class DotNetNuGetVerifySettings : ToolOptions @@ -765,7 +761,7 @@ public partial class DotNetNuGetVerifySettings : ToolOptions } #endregion #region DotNetNuGetAddSourceSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetAddSource), Arguments = "nuget add source")] public partial class DotNetNuGetAddSourceSettings : ToolOptions @@ -787,7 +783,7 @@ public partial class DotNetNuGetAddSourceSettings : ToolOptions } #endregion #region DotNetNuGetUpdateSourceSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetNuGetUpdateSource), Arguments = "nuget update source")] public partial class DotNetNuGetUpdateSourceSettings : ToolOptions @@ -809,7 +805,7 @@ public partial class DotNetNuGetUpdateSourceSettings : ToolOptions } #endregion #region DotNetToolInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetToolInstall), Arguments = "tool install")] public partial class DotNetToolInstallSettings : ToolOptions @@ -833,7 +829,7 @@ public partial class DotNetToolInstallSettings : ToolOptions } #endregion #region DotNetToolRestoreSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetToolRestore), Arguments = "tool restore")] public partial class DotNetToolRestoreSettings : ToolOptions @@ -855,7 +851,7 @@ public partial class DotNetToolRestoreSettings : ToolOptions } #endregion #region DotNetToolUninstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetToolUninstall), Arguments = "tool uninstall")] public partial class DotNetToolUninstallSettings : ToolOptions @@ -871,7 +867,7 @@ public partial class DotNetToolUninstallSettings : ToolOptions } #endregion #region DotNetToolUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetToolUpdate), Arguments = "tool update")] public partial class DotNetToolUpdateSettings : ToolOptions @@ -895,7 +891,7 @@ public partial class DotNetToolUpdateSettings : ToolOptions } #endregion #region DotNetWorkloadInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetWorkloadInstall), Arguments = "workload install")] public partial class DotNetWorkloadInstallSettings : ToolOptions @@ -927,7 +923,7 @@ public partial class DotNetWorkloadInstallSettings : ToolOptions } #endregion #region DotNetWorkloadUninstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetWorkloadUninstall), Arguments = "workload uninstall")] public partial class DotNetWorkloadUninstallSettings : ToolOptions @@ -937,7 +933,7 @@ public partial class DotNetWorkloadUninstallSettings : ToolOptions } #endregion #region DotNetWorkloadRestoreSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetWorkloadRestore), Arguments = "workload restore")] public partial class DotNetWorkloadRestoreSettings : ToolOptions @@ -969,7 +965,7 @@ public partial class DotNetWorkloadRestoreSettings : ToolOptions } #endregion #region DotNetWorkloadUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetWorkloadUpdate), Arguments = "workload update")] public partial class DotNetWorkloadUpdateSettings : ToolOptions @@ -1001,7 +997,7 @@ public partial class DotNetWorkloadUpdateSettings : ToolOptions } #endregion #region DotNetWorkloadRepairSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotNetTasks), Command = nameof(DotNetTasks.DotNetWorkloadRepair), Arguments = "workload repair")] public partial class DotNetWorkloadRepairSettings : ToolOptions @@ -1029,7 +1025,7 @@ public partial class DotNetWorkloadRepairSettings : ToolOptions } #endregion #region DotNetTestSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetTestSettingsExtensions { @@ -1532,7 +1528,7 @@ public static partial class DotNetTestSettingsExtensions } #endregion #region DotNetRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetRunSettingsExtensions { @@ -2342,7 +2338,7 @@ public static partial class DotNetRunSettingsExtensions } #endregion #region DotNetRestoreSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetRestoreSettingsExtensions { @@ -2970,7 +2966,7 @@ public static partial class DotNetRestoreSettingsExtensions } #endregion #region DotNetPackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetPackSettingsExtensions { @@ -3724,7 +3720,7 @@ public static partial class DotNetPackSettingsExtensions } #endregion #region DotNetBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetBuildSettingsExtensions { @@ -4500,7 +4496,7 @@ public static partial class DotNetBuildSettingsExtensions } #endregion #region DotNetMSBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetMSBuildSettingsExtensions { @@ -5109,7 +5105,7 @@ public static partial class DotNetMSBuildSettingsExtensions } #endregion #region DotNetCleanSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetCleanSettingsExtensions { @@ -5603,7 +5599,7 @@ public static partial class DotNetCleanSettingsExtensions } #endregion #region DotNetFormatSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetFormatSettingsExtensions { @@ -6161,7 +6157,7 @@ public static partial class DotNetFormatSettingsExtensions } #endregion #region DotNetPublishSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetPublishSettingsExtensions { @@ -6936,7 +6932,7 @@ public static partial class DotNetPublishSettingsExtensions } #endregion #region DotNetNuGetPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetPushSettingsExtensions { @@ -7076,7 +7072,7 @@ public static partial class DotNetNuGetPushSettingsExtensions } #endregion #region DotNetNuGetDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetDeleteSettingsExtensions { @@ -7183,7 +7179,7 @@ public static partial class DotNetNuGetDeleteSettingsExtensions } #endregion #region DotNetNuGetSignSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetSignSettingsExtensions { @@ -7303,7 +7299,7 @@ public static partial class DotNetNuGetSignSettingsExtensions } #endregion #region DotNetNuGetVerifySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetVerifySettingsExtensions { @@ -7342,7 +7338,7 @@ public static partial class DotNetNuGetVerifySettingsExtensions } #endregion #region DotNetNuGetAddSourceSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetAddSourceSettingsExtensions { @@ -7429,7 +7425,7 @@ public static partial class DotNetNuGetAddSourceSettingsExtensions } #endregion #region DotNetNuGetUpdateSourceSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetNuGetUpdateSourceSettingsExtensions { @@ -7516,7 +7512,7 @@ public static partial class DotNetNuGetUpdateSourceSettingsExtensions } #endregion #region DotNetToolInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetToolInstallSettingsExtensions { @@ -7611,7 +7607,7 @@ public static partial class DotNetToolInstallSettingsExtensions } #endregion #region DotNetToolRestoreSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetToolRestoreSettingsExtensions { @@ -7725,7 +7721,7 @@ public static partial class DotNetToolRestoreSettingsExtensions } #endregion #region DotNetToolUninstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetToolUninstallSettingsExtensions { @@ -7773,7 +7769,7 @@ public static partial class DotNetToolUninstallSettingsExtensions } #endregion #region DotNetToolUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetToolUpdateSettingsExtensions { @@ -7868,7 +7864,7 @@ public static partial class DotNetToolUpdateSettingsExtensions } #endregion #region DotNetWorkloadInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetWorkloadInstallSettingsExtensions { @@ -8049,7 +8045,7 @@ public static partial class DotNetWorkloadInstallSettingsExtensions } #endregion #region DotNetWorkloadUninstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetWorkloadUninstallSettingsExtensions { @@ -8079,7 +8075,7 @@ public static partial class DotNetWorkloadUninstallSettingsExtensions } #endregion #region DotNetWorkloadRestoreSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetWorkloadRestoreSettingsExtensions { @@ -8245,7 +8241,7 @@ public static partial class DotNetWorkloadRestoreSettingsExtensions } #endregion #region DotNetWorkloadUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetWorkloadUpdateSettingsExtensions { @@ -8420,7 +8416,7 @@ public static partial class DotNetWorkloadUpdateSettingsExtensions } #endregion #region DotNetWorkloadRepairSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotNetWorkloadRepairSettingsExtensions { diff --git a/src/Fallout.Common/Tools/DotNet/DotNet.json b/src/Fallout.Application.Tools/DotNet/DotNet.json similarity index 100% rename from src/Fallout.Common/Tools/DotNet/DotNet.json rename to src/Fallout.Application.Tools/DotNet/DotNet.json diff --git a/src/Fallout.Common/Tools/DotNet/DotNetRuntimeIdentifier.cs b/src/Fallout.Application.Tools/DotNet/DotNetRuntimeIdentifier.cs similarity index 97% rename from src/Fallout.Common/Tools/DotNet/DotNetRuntimeIdentifier.cs rename to src/Fallout.Application.Tools/DotNet/DotNetRuntimeIdentifier.cs index 227c365ab..a02d9e3dc 100644 --- a/src/Fallout.Common/Tools/DotNet/DotNetRuntimeIdentifier.cs +++ b/src/Fallout.Application.Tools/DotNet/DotNetRuntimeIdentifier.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.ComponentModel; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotNet; +namespace Fallout.Application.Tools.DotNet; [TypeConverter(typeof(TypeConverter))] public class DotNetRuntimeIdentifier : Enumeration diff --git a/src/Fallout.Common/Tools/DotNet/DotNetTasks.cs b/src/Fallout.Application.Tools/DotNet/DotNetTasks.cs similarity index 94% rename from src/Fallout.Common/Tools/DotNet/DotNetTasks.cs rename to src/Fallout.Application.Tools/DotNet/DotNetTasks.cs index 261fab0fc..e80855642 100644 --- a/src/Fallout.Common/Tools/DotNet/DotNetTasks.cs +++ b/src/Fallout.Application.Tools/DotNet/DotNetTasks.cs @@ -1,9 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Tooling; using Serilog.Events; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotNet; +namespace Fallout.Application.Tools.DotNet; public class DotNetVerbosityMappingAttribute : VerbosityMappingAttribute { diff --git a/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.Generated.cs b/src/Fallout.Application.Tools/DotnetPackaging/DotnetPackaging.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.Generated.cs rename to src/Fallout.Application.Tools/DotnetPackaging/DotnetPackaging.Generated.cs index 3c161d88b..3849d065f 100644 --- a/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.Generated.cs +++ b/src/Fallout.Application.Tools/DotnetPackaging/DotnetPackaging.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.DotnetPackaging; +namespace Fallout.Application.Tools.DotnetPackaging; ///

DotnetPackaging is able to package your application into various formats, including Deb and AppImage.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +24,20 @@ public partial class DotnetPackagingTasks : ToolTasks, IRequireNuGetPackage ///

Creates a Debian package from the specified directory.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --directory via
  • --metadata via
  • --output via
public static IReadOnlyCollection DotnetPackagingDeb(DotnetPackagingDebSettings options = null) => new DotnetPackagingTasks().Run(options); - /// + /// public static IReadOnlyCollection DotnetPackagingDeb(Configure configurator) => new DotnetPackagingTasks().Run(configurator.Invoke(new DotnetPackagingDebSettings())); - /// + /// public static IEnumerable<(DotnetPackagingDebSettings Settings, IReadOnlyCollection Output)> DotnetPackagingDeb(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotnetPackagingDeb, degreeOfParallelism, completeOnFailure); ///

Creates an AppImage package.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --additional-categories via
  • --appId via
  • --application-name via
  • --directory via
  • --homepage via
  • --icon via
  • --license via
  • --main-category via
  • --output via
  • --screenshot-urls via
  • --summary via
  • --version via
public static IReadOnlyCollection DotnetPackagingAppImage(DotnetPackagingAppImageSettings options = null) => new DotnetPackagingTasks().Run(options); - /// + /// public static IReadOnlyCollection DotnetPackagingAppImage(Configure configurator) => new DotnetPackagingTasks().Run(configurator.Invoke(new DotnetPackagingAppImageSettings())); - /// + /// public static IEnumerable<(DotnetPackagingAppImageSettings Settings, IReadOnlyCollection Output)> DotnetPackagingAppImage(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(DotnetPackagingAppImage, degreeOfParallelism, completeOnFailure); } #region DotnetPackagingDebSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotnetPackagingTasks), Command = nameof(DotnetPackagingTasks.DotnetPackagingDeb), Arguments = "deb")] public partial class DotnetPackagingDebSettings : ToolOptions @@ -56,7 +51,7 @@ public partial class DotnetPackagingDebSettings : ToolOptions } #endregion #region DotnetPackagingAppImageSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(DotnetPackagingTasks), Command = nameof(DotnetPackagingTasks.DotnetPackagingAppImage), Arguments = "appimage")] public partial class DotnetPackagingAppImageSettings : ToolOptions @@ -88,7 +83,7 @@ public partial class DotnetPackagingAppImageSettings : ToolOptions } #endregion #region DotnetPackagingDebSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotnetPackagingDebSettingsExtensions { @@ -119,7 +114,7 @@ public static partial class DotnetPackagingDebSettingsExtensions } #endregion #region DotnetPackagingAppImageSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class DotnetPackagingAppImageSettingsExtensions { diff --git a/src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.json b/src/Fallout.Application.Tools/DotnetPackaging/DotnetPackaging.json similarity index 100% rename from src/Fallout.Common/Tools/DotnetPackaging/DotnetPackaging.json rename to src/Fallout.Application.Tools/DotnetPackaging/DotnetPackaging.json diff --git a/src/Fallout.Common/Tools/EntityFramework/EntityFramework.Generated.cs b/src/Fallout.Application.Tools/EntityFramework/EntityFramework.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/EntityFramework/EntityFramework.Generated.cs rename to src/Fallout.Application.Tools/EntityFramework/EntityFramework.Generated.cs index d7bd6b22c..1e047510e 100644 --- a/src/Fallout.Common/Tools/EntityFramework/EntityFramework.Generated.cs +++ b/src/Fallout.Application.Tools/EntityFramework/EntityFramework.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/EntityFramework/EntityFramework.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.EntityFramework; +namespace Fallout.Application.Tools.EntityFramework; ///

The command-line interface (CLI) tools for Entity Framework Core perform design-time development tasks. For example, they create migrations, apply migrations, and generate code for a model based on an existing database. The commands are an extension to the cross-platform dotnet command, which is part of the .NET Core SDK. These tools work with .NET Core projects.If you're using Visual Studio, we recommend the Package Manager Console tools instead:

  • They automatically work with the current project selected in the Package Manager Console without requiring that you manually switch directories.
  • They automatically open files generated by a command after the command is completed.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,83 +24,83 @@ public partial class EntityFrameworkTasks : ToolTasks, IRequireNuGetPackage ///

The dotnet-ef database drop command is used to drop the database.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --dry-run via
  • --force via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDatabaseDrop(EntityFrameworkDatabaseDropSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDatabaseDrop(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDatabaseDropSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDatabaseDropSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDatabaseDrop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDatabaseDrop, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef database update command is used to update the database to the last migration or to a specified migration.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <migration> via
  • --configuration via
  • --connection via
  • --context via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDatabaseUpdate(EntityFrameworkDatabaseUpdateSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDatabaseUpdate(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDatabaseUpdateSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDatabaseUpdateSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDatabaseUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDatabaseUpdate, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef dbcontext info command is used to get information about a DbContext type.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDbContextInfo(EntityFrameworkDbContextInfoSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDbContextInfo(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDbContextInfoSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDbContextInfoSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDbContextInfo(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDbContextInfo, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef dbcontext list command is used to list available DbContext types.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDbContextList(EntityFrameworkDbContextListSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDbContextList(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDbContextListSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDbContextListSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDbContextList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDbContextList, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef dbcontext scaffold command is used to generate code for a DbContext and entity types for a database. In order for this command to generate an entity type, the database table must have a primary key.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <connection> via
  • <provider> via
  • --configuration via
  • --context via
  • --context-dir via
  • --context-namespace via
  • --data-annotations via
  • --force via
  • --framework via
  • --json via
  • --namespace via
  • --no-build via
  • --no-color via
  • --no-onconfiguring via
  • --no-pluralize via
  • --output-dir via
  • --prefix-output via
  • --project via
  • --runtime via
  • --schema via
  • --startup-project via
  • --table via
  • --use-database-names via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDbContextScaffold(EntityFrameworkDbContextScaffoldSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDbContextScaffold(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDbContextScaffoldSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDbContextScaffoldSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDbContextScaffold(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDbContextScaffold, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef dbcontext script command is used to generate a SQL script from the DbContext, bypassing any migrations.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --output via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkDbContextScript(EntityFrameworkDbContextScriptSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkDbContextScript(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkDbContextScriptSettings())); - /// + /// public static IEnumerable<(EntityFrameworkDbContextScriptSettings Settings, IReadOnlyCollection Output)> EntityFrameworkDbContextScript(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkDbContextScript, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef migrations add command is used to add a new migration.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --configuration via
  • --context via
  • --framework via
  • --json via
  • --namespace via
  • --no-build via
  • --no-color via
  • --output-dir via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkMigrationsAdd(EntityFrameworkMigrationsAddSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkMigrationsAdd(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkMigrationsAddSettings())); - /// + /// public static IEnumerable<(EntityFrameworkMigrationsAddSettings Settings, IReadOnlyCollection Output)> EntityFrameworkMigrationsAdd(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkMigrationsAdd, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef migrations list command is used to list available migrations.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --connection via
  • --context via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --no-connect via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkMigrationsList(EntityFrameworkMigrationsListSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkMigrationsList(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkMigrationsListSettings())); - /// + /// public static IEnumerable<(EntityFrameworkMigrationsListSettings Settings, IReadOnlyCollection Output)> EntityFrameworkMigrationsList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkMigrationsList, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef migrations remove command is used to remove the last migration (rolls back the code changes that were done for the migration).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --force via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkMigrationsRemove(EntityFrameworkMigrationsRemoveSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkMigrationsRemove(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkMigrationsRemoveSettings())); - /// + /// public static IEnumerable<(EntityFrameworkMigrationsRemoveSettings Settings, IReadOnlyCollection Output)> EntityFrameworkMigrationsRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkMigrationsRemove, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef migrations bundle command is used to create a bundle.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --configuration via
  • --context via
  • --force via
  • --framework via
  • --json via
  • --no-build via
  • --no-color via
  • --output via
  • --prefix-output via
  • --project via
  • --runtime via
  • --self-contained via
  • --startup-project via
  • --target-runtime via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkMigrationsBundle(EntityFrameworkMigrationsBundleSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkMigrationsBundle(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkMigrationsBundleSettings())); - /// + /// public static IEnumerable<(EntityFrameworkMigrationsBundleSettings Settings, IReadOnlyCollection Output)> EntityFrameworkMigrationsBundle(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkMigrationsBundle, degreeOfParallelism, completeOnFailure); ///

The dotnet-ef migrations script command is used to generate a SQL script from migrations.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <from> via
  • <to> via
  • --configuration via
  • --context via
  • --framework via
  • --idempotent via
  • --json via
  • --no-build via
  • --no-color via
  • --no-transactions via
  • --output via
  • --prefix-output via
  • --project via
  • --runtime via
  • --startup-project via
  • --verbose via
public static IReadOnlyCollection EntityFrameworkMigrationsScript(EntityFrameworkMigrationsScriptSettings options = null) => new EntityFrameworkTasks().Run(options); - /// + /// public static IReadOnlyCollection EntityFrameworkMigrationsScript(Configure configurator) => new EntityFrameworkTasks().Run(configurator.Invoke(new EntityFrameworkMigrationsScriptSettings())); - /// + /// public static IEnumerable<(EntityFrameworkMigrationsScriptSettings Settings, IReadOnlyCollection Output)> EntityFrameworkMigrationsScript(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(EntityFrameworkMigrationsScript, degreeOfParallelism, completeOnFailure); } #region EntityFrameworkDatabaseDropSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDatabaseDrop), Arguments = "database drop")] public partial class EntityFrameworkDatabaseDropSettings : ToolOptions @@ -139,7 +134,7 @@ public partial class EntityFrameworkDatabaseDropSettings : ToolOptions } #endregion #region EntityFrameworkDatabaseUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDatabaseUpdate), Arguments = "database update")] public partial class EntityFrameworkDatabaseUpdateSettings : ToolOptions @@ -173,7 +168,7 @@ public partial class EntityFrameworkDatabaseUpdateSettings : ToolOptions } #endregion #region EntityFrameworkDbContextInfoSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDbContextInfo), Arguments = "dbcontext info")] public partial class EntityFrameworkDbContextInfoSettings : ToolOptions @@ -203,7 +198,7 @@ public partial class EntityFrameworkDbContextInfoSettings : ToolOptions } #endregion #region EntityFrameworkDbContextListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDbContextList), Arguments = "dbcontext list")] public partial class EntityFrameworkDbContextListSettings : ToolOptions @@ -233,7 +228,7 @@ public partial class EntityFrameworkDbContextListSettings : ToolOptions } #endregion #region EntityFrameworkDbContextScaffoldSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDbContextScaffold), Arguments = "dbcontext scaffold")] public partial class EntityFrameworkDbContextScaffoldSettings : ToolOptions @@ -289,7 +284,7 @@ public partial class EntityFrameworkDbContextScaffoldSettings : ToolOptions } #endregion #region EntityFrameworkDbContextScriptSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkDbContextScript), Arguments = "dbcontext script")] public partial class EntityFrameworkDbContextScriptSettings : ToolOptions @@ -321,7 +316,7 @@ public partial class EntityFrameworkDbContextScriptSettings : ToolOptions } #endregion #region EntityFrameworkMigrationsAddSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkMigrationsAdd), Arguments = "migrations add")] public partial class EntityFrameworkMigrationsAddSettings : ToolOptions @@ -357,7 +352,7 @@ public partial class EntityFrameworkMigrationsAddSettings : ToolOptions } #endregion #region EntityFrameworkMigrationsListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkMigrationsList), Arguments = "migrations list")] public partial class EntityFrameworkMigrationsListSettings : ToolOptions @@ -391,7 +386,7 @@ public partial class EntityFrameworkMigrationsListSettings : ToolOptions } #endregion #region EntityFrameworkMigrationsRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkMigrationsRemove), Arguments = "migrations remove")] public partial class EntityFrameworkMigrationsRemoveSettings : ToolOptions @@ -423,7 +418,7 @@ public partial class EntityFrameworkMigrationsRemoveSettings : ToolOptions } #endregion #region EntityFrameworkMigrationsBundleSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkMigrationsBundle), Arguments = "migrations bundle")] public partial class EntityFrameworkMigrationsBundleSettings : ToolOptions @@ -461,7 +456,7 @@ public partial class EntityFrameworkMigrationsBundleSettings : ToolOptions } #endregion #region EntityFrameworkMigrationsScriptSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(EntityFrameworkTasks), Command = nameof(EntityFrameworkTasks.EntityFrameworkMigrationsScript), Arguments = "migrations script")] public partial class EntityFrameworkMigrationsScriptSettings : ToolOptions @@ -501,7 +496,7 @@ public partial class EntityFrameworkMigrationsScriptSettings : ToolOptions } #endregion #region EntityFrameworkDatabaseDropSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDatabaseDropSettingsExtensions { @@ -675,7 +670,7 @@ public static partial class EntityFrameworkDatabaseDropSettingsExtensions } #endregion #region EntityFrameworkDatabaseUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDatabaseUpdateSettingsExtensions { @@ -831,7 +826,7 @@ public static partial class EntityFrameworkDatabaseUpdateSettingsExtensions } #endregion #region EntityFrameworkDbContextInfoSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDbContextInfoSettingsExtensions { @@ -971,7 +966,7 @@ public static partial class EntityFrameworkDbContextInfoSettingsExtensions } #endregion #region EntityFrameworkDbContextListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDbContextListSettingsExtensions { @@ -1111,7 +1106,7 @@ public static partial class EntityFrameworkDbContextListSettingsExtensions } #endregion #region EntityFrameworkDbContextScaffoldSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDbContextScaffoldSettingsExtensions { @@ -1430,7 +1425,7 @@ public static partial class EntityFrameworkDbContextScaffoldSettingsExtensions } #endregion #region EntityFrameworkDbContextScriptSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkDbContextScriptSettingsExtensions { @@ -1578,7 +1573,7 @@ public static partial class EntityFrameworkDbContextScriptSettingsExtensions } #endregion #region EntityFrameworkMigrationsAddSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkMigrationsAddSettingsExtensions { @@ -1742,7 +1737,7 @@ public static partial class EntityFrameworkMigrationsAddSettingsExtensions } #endregion #region EntityFrameworkMigrationsListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkMigrationsListSettingsExtensions { @@ -1907,7 +1902,7 @@ public static partial class EntityFrameworkMigrationsListSettingsExtensions } #endregion #region EntityFrameworkMigrationsRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkMigrationsRemoveSettingsExtensions { @@ -2064,7 +2059,7 @@ public static partial class EntityFrameworkMigrationsRemoveSettingsExtensions } #endregion #region EntityFrameworkMigrationsBundleSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkMigrationsBundleSettingsExtensions { @@ -2254,7 +2249,7 @@ public static partial class EntityFrameworkMigrationsBundleSettingsExtensions } #endregion #region EntityFrameworkMigrationsScriptSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class EntityFrameworkMigrationsScriptSettingsExtensions { diff --git a/src/Fallout.Common/Tools/EntityFramework/EntityFramework.json b/src/Fallout.Application.Tools/EntityFramework/EntityFramework.json similarity index 100% rename from src/Fallout.Common/Tools/EntityFramework/EntityFramework.json rename to src/Fallout.Application.Tools/EntityFramework/EntityFramework.json diff --git a/src/Fallout.Application.Tools/Fallout.Application.Tools.csproj b/src/Fallout.Application.Tools/Fallout.Application.Tools.csproj new file mode 100644 index 000000000..ed416c78c --- /dev/null +++ b/src/Fallout.Application.Tools/Fallout.Application.Tools.csproj @@ -0,0 +1,25 @@ + + + + net10.0 + Fallout's tool wrappers (DotNet, MSBuild, NuGet, GitVersion, …) — pure command vocabulary. + + + + + + + + + + + + + + + + + + + + diff --git a/src/Fallout.Common/Tools/Fixie/Fixie.Generated.cs b/src/Fallout.Application.Tools/Fixie/Fixie.Generated.cs similarity index 92% rename from src/Fallout.Common/Tools/Fixie/Fixie.Generated.cs rename to src/Fallout.Application.Tools/Fixie/Fixie.Generated.cs index 0be64d219..3ced9133f 100644 --- a/src/Fallout.Common/Tools/Fixie/Fixie.Generated.cs +++ b/src/Fallout.Application.Tools/Fixie/Fixie.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Fixie/Fixie.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Fixie; +namespace Fallout.Application.Tools.Fixie; ///

Fixie is a .NET modern test framework similar to NUnit and xUnit, but with an emphasis on low-ceremony defaults and flexible customization.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class FixieTasks : ToolTasks, IRequireNuGetPackage ///

The dotnet fixie command is used to execute Fixie unit tests in a given project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --configuration via
  • --framework via
  • --no-build via
  • --report via
public static IReadOnlyCollection Fixie(FixieSettings options = null) => new FixieTasks().Run(options); - /// + /// public static IReadOnlyCollection Fixie(Configure configurator) => new FixieTasks().Run(configurator.Invoke(new FixieSettings())); - /// + /// public static IEnumerable<(FixieSettings Settings, IReadOnlyCollection Output)> Fixie(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Fixie, degreeOfParallelism, completeOnFailure); } #region FixieSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(FixieTasks), Command = nameof(FixieTasks.Fixie))] public partial class FixieSettings : ToolOptions @@ -53,7 +48,7 @@ public partial class FixieSettings : ToolOptions } #endregion #region FixieSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class FixieSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Fixie/Fixie.json b/src/Fallout.Application.Tools/Fixie/Fixie.json similarity index 100% rename from src/Fallout.Common/Tools/Fixie/Fixie.json rename to src/Fallout.Application.Tools/Fixie/Fixie.json diff --git a/src/Fallout.Common/Tools/Git/Git.Generated.cs b/src/Fallout.Application.Tools/Git/Git.Generated.cs similarity index 90% rename from src/Fallout.Common/Tools/Git/Git.Generated.cs rename to src/Fallout.Application.Tools/Git/Git.Generated.cs index d28ebc7ef..4b8759fb1 100644 --- a/src/Fallout.Common/Tools/Git/Git.Generated.cs +++ b/src/Fallout.Application.Tools/Git/Git.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Git/Git.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Git; +namespace Fallout.Application.Tools.Git; ///

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

For more details, visit the official website.

[ExcludeFromCodeCoverage] diff --git a/src/Fallout.Common/Tools/Git/Git.json b/src/Fallout.Application.Tools/Git/Git.json similarity index 100% rename from src/Fallout.Common/Tools/Git/Git.json rename to src/Fallout.Application.Tools/Git/Git.json diff --git a/src/Fallout.Common/Tools/Git/GitTasks.cs b/src/Fallout.Application.Tools/Git/GitTasks.cs similarity index 93% rename from src/Fallout.Common/Tools/Git/GitTasks.cs rename to src/Fallout.Application.Tools/Git/GitTasks.cs index c2fb51ab9..28f919982 100644 --- a/src/Fallout.Common/Tools/Git/GitTasks.cs +++ b/src/Fallout.Application.Tools/Git/GitTasks.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Git; +namespace Fallout.Application.Tools.Git; [LogErrorAsStandard] partial class GitTasks diff --git a/src/Fallout.Common/Tools/GitHub/GitHubTasks.cs b/src/Fallout.Application.Tools/GitHub/GitHubTasks.cs similarity index 97% rename from src/Fallout.Common/Tools/GitHub/GitHubTasks.cs rename to src/Fallout.Application.Tools/GitHub/GitHubTasks.cs index 1d1abc282..c51ad60c7 100644 --- a/src/Fallout.Common/Tools/GitHub/GitHubTasks.cs +++ b/src/Fallout.Application.Tools/GitHub/GitHubTasks.cs @@ -3,12 +3,14 @@ using System.IO; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.Git; -using Fallout.Common.Utilities; using Octokit; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Application; +using Fallout.Application.Git; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tools.GitHub; +namespace Fallout.Application.Tools.GitHub; public enum GitHubItemType { diff --git a/src/Fallout.Common/Tools/GitLink/GitLink.Generated.cs b/src/Fallout.Application.Tools/GitLink/GitLink.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/GitLink/GitLink.Generated.cs rename to src/Fallout.Application.Tools/GitLink/GitLink.Generated.cs index 198d06207..1d5b7bbe8 100644 --- a/src/Fallout.Common/Tools/GitLink/GitLink.Generated.cs +++ b/src/Fallout.Application.Tools/GitLink/GitLink.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/GitLink/GitLink.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.GitLink; +namespace Fallout.Application.Tools.GitLink; ///

GitLink makes symbol servers obsolete which saves you both time with uploading source files with symbols and the user no longer has to specify custom symbol servers (such as symbolsource.org). The advantage of GitLink is that it is fully customized for Git. It also works with GitHub or BitBucket urls so it does not require a local git repository to work. This makes it perfectly usable in continuous integration servers such as Continua CI. Updating all the pdb files is very fast. A solution with over 85 projects will be handled in less than 30 seconds. When using GitLink, the user no longer has to specify symbol servers. The only requirement is to ensure the check the Enable source server support option in Visual Studio.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +24,20 @@ public partial class GitLinkTasks : ToolTasks, IRequireNuGetPackage ///

GitLink makes symbol servers obsolete which saves you both time with uploading source files with symbols and the user no longer has to specify custom symbol servers (such as symbolsource.org). The advantage of GitLink is that it is fully customized for Git. It also works with GitHub or BitBucket urls so it does not require a local git repository to work. This makes it perfectly usable in continuous integration servers such as Continua CI. Updating all the pdb files is very fast. A solution with over 85 projects will be handled in less than 30 seconds. When using GitLink, the user no longer has to specify symbol servers. The only requirement is to ensure the check the Enable source server support option in Visual Studio.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <solutionDirectory> via
  • -b via
  • -c via
  • -d via
  • -debug via
  • -errorsaswarnings via
  • -f via
  • -l via
  • -p via
  • -powershell via
  • -s via
  • -skipverify via
  • -u via
public static IReadOnlyCollection GitLink2(GitLink2Settings options = null) => new GitLinkTasks().Run(options); - /// + /// public static IReadOnlyCollection GitLink2(Configure configurator) => new GitLinkTasks().Run(configurator.Invoke(new GitLink2Settings())); - /// + /// public static IEnumerable<(GitLink2Settings Settings, IReadOnlyCollection Output)> GitLink2(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitLink2, degreeOfParallelism, completeOnFailure); ///

GitLink makes symbol servers obsolete which saves you both time with uploading source files with symbols and the user no longer has to specify custom symbol servers (such as symbolsource.org). The advantage of GitLink is that it is fully customized for Git. It also works with GitHub or BitBucket urls so it does not require a local git repository to work. This makes it perfectly usable in continuous integration servers such as Continua CI. Updating all the pdb files is very fast. A solution with over 85 projects will be handled in less than 30 seconds. When using GitLink, the user no longer has to specify symbol servers. The only requirement is to ensure the check the Enable source server support option in Visual Studio.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <pdbFile> via
  • --baseDir via
  • --commit via
  • --method via
  • --skipVerify via
  • --url via
public static IReadOnlyCollection GitLink3(GitLink3Settings options = null) => new GitLinkTasks().Run(options); - /// + /// public static IReadOnlyCollection GitLink3(Configure configurator) => new GitLinkTasks().Run(configurator.Invoke(new GitLink3Settings())); - /// + /// public static IEnumerable<(GitLink3Settings Settings, IReadOnlyCollection Output)> GitLink3(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitLink3, degreeOfParallelism, completeOnFailure); } #region GitLink2Settings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitLinkTasks), Command = nameof(GitLinkTasks.GitLink2))] public partial class GitLink2Settings : ToolOptions @@ -76,7 +71,7 @@ public partial class GitLink2Settings : ToolOptions } #endregion #region GitLink3Settings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitLinkTasks), Command = nameof(GitLinkTasks.GitLink3))] public partial class GitLink3Settings : ToolOptions @@ -96,7 +91,7 @@ public partial class GitLink3Settings : ToolOptions } #endregion #region GitLink2SettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitLink2SettingsExtensions { @@ -243,7 +238,7 @@ public static partial class GitLink2SettingsExtensions } #endregion #region GitLink3SettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitLink3SettingsExtensions { diff --git a/src/Fallout.Common/Tools/GitLink/GitLink.json b/src/Fallout.Application.Tools/GitLink/GitLink.json similarity index 100% rename from src/Fallout.Common/Tools/GitLink/GitLink.json rename to src/Fallout.Application.Tools/GitLink/GitLink.json diff --git a/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs b/src/Fallout.Application.Tools/GitReleaseManager/GitReleaseManager.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs rename to src/Fallout.Application.Tools/GitReleaseManager/GitReleaseManager.Generated.cs index 888c9a99f..a59a57842 100644 --- a/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.Generated.cs +++ b/src/Fallout.Application.Tools/GitReleaseManager/GitReleaseManager.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.GitReleaseManager; +namespace Fallout.Application.Tools.GitReleaseManager; ///

GitReleaseManager is a tool that will help create a set of release notes for your application/product. It does this using the collection of issues which are stored on the GitHub Issue Tracker for your application/product.By inspecting the issues that have been assigned to a particular milestone, GitReleaseManager creates a set of release notes, in markdown format, which are then used to create a Release on GitHub.In addition to creating a Release, GitReleaseManager can be used to publish a release, close a milestone, and also to export the complete set of release notes for your application/product.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,41 +25,41 @@ public partial class GitReleaseManagerTasks : ToolTasks, IRequireNuGetPackage ///

Adds an asset to an existing release.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --assets via
  • --logFilePath via
  • --owner via
  • --password via
  • --repository via
  • --tagName via
  • --targetDirectory via
  • --token via
  • --username via
public static IReadOnlyCollection GitReleaseManagerAddAssets(GitReleaseManagerAddAssetsSettings options = null) => new GitReleaseManagerTasks().Run(options); - /// + /// public static IReadOnlyCollection GitReleaseManagerAddAssets(Configure configurator) => new GitReleaseManagerTasks().Run(configurator.Invoke(new GitReleaseManagerAddAssetsSettings())); - /// + /// public static IEnumerable<(GitReleaseManagerAddAssetsSettings Settings, IReadOnlyCollection Output)> GitReleaseManagerAddAssets(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitReleaseManagerAddAssets, degreeOfParallelism, completeOnFailure); ///

Closes the milestone.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --logFilePath via
  • --milestone via
  • --owner via
  • --password via
  • --repository via
  • --targetDirectory via
  • --token via
  • --username via
public static IReadOnlyCollection GitReleaseManagerClose(GitReleaseManagerCloseSettings options = null) => new GitReleaseManagerTasks().Run(options); - /// + /// public static IReadOnlyCollection GitReleaseManagerClose(Configure configurator) => new GitReleaseManagerTasks().Run(configurator.Invoke(new GitReleaseManagerCloseSettings())); - /// + /// public static IEnumerable<(GitReleaseManagerCloseSettings Settings, IReadOnlyCollection Output)> GitReleaseManagerClose(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitReleaseManagerClose, degreeOfParallelism, completeOnFailure); ///

Creates a draft release notes from a milestone.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --assets via
  • --inputFilePath via
  • --logFilePath via
  • --milestone via
  • --name via
  • --owner via
  • --password via
  • --prerelease via
  • --repository via
  • --targetcommitish via
  • --targetDirectory via
  • --token via
  • --username via
public static IReadOnlyCollection GitReleaseManagerCreate(GitReleaseManagerCreateSettings options = null) => new GitReleaseManagerTasks().Run(options); - /// + /// public static IReadOnlyCollection GitReleaseManagerCreate(Configure configurator) => new GitReleaseManagerTasks().Run(configurator.Invoke(new GitReleaseManagerCreateSettings())); - /// + /// public static IEnumerable<(GitReleaseManagerCreateSettings Settings, IReadOnlyCollection Output)> GitReleaseManagerCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitReleaseManagerCreate, degreeOfParallelism, completeOnFailure); ///

Exports all the Release Notes in markdown format.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --fileOutputPath via
  • --logFilePath via
  • --owner via
  • --password via
  • --repository via
  • --tagName via
  • --targetDirectory via
  • --token via
  • --username via
public static IReadOnlyCollection GitReleaseManagerExport(GitReleaseManagerExportSettings options = null) => new GitReleaseManagerTasks().Run(options); - /// + /// public static IReadOnlyCollection GitReleaseManagerExport(Configure configurator) => new GitReleaseManagerTasks().Run(configurator.Invoke(new GitReleaseManagerExportSettings())); - /// + /// public static IEnumerable<(GitReleaseManagerExportSettings Settings, IReadOnlyCollection Output)> GitReleaseManagerExport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitReleaseManagerExport, degreeOfParallelism, completeOnFailure); ///

Publishes the GitHub Release.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --logFilePath via
  • --owner via
  • --password via
  • --repository via
  • --tagName via
  • --targetDirectory via
  • --token via
  • --username via
public static IReadOnlyCollection GitReleaseManagerPublish(GitReleaseManagerPublishSettings options = null) => new GitReleaseManagerTasks().Run(options); - /// + /// public static IReadOnlyCollection GitReleaseManagerPublish(Configure configurator) => new GitReleaseManagerTasks().Run(configurator.Invoke(new GitReleaseManagerPublishSettings())); - /// + /// public static IEnumerable<(GitReleaseManagerPublishSettings Settings, IReadOnlyCollection Output)> GitReleaseManagerPublish(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitReleaseManagerPublish, degreeOfParallelism, completeOnFailure); } #region GitReleaseManagerAddAssetsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitReleaseManagerTasks), Command = nameof(GitReleaseManagerTasks.GitReleaseManagerAddAssets), Arguments = "addasset")] public partial class GitReleaseManagerAddAssetsSettings : ToolOptions @@ -89,7 +85,7 @@ public partial class GitReleaseManagerAddAssetsSettings : ToolOptions } #endregion #region GitReleaseManagerCloseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitReleaseManagerTasks), Command = nameof(GitReleaseManagerTasks.GitReleaseManagerClose), Arguments = "close")] public partial class GitReleaseManagerCloseSettings : ToolOptions @@ -113,7 +109,7 @@ public partial class GitReleaseManagerCloseSettings : ToolOptions } #endregion #region GitReleaseManagerCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitReleaseManagerTasks), Command = nameof(GitReleaseManagerTasks.GitReleaseManagerCreate), Arguments = "create")] public partial class GitReleaseManagerCreateSettings : ToolOptions @@ -147,7 +143,7 @@ public partial class GitReleaseManagerCreateSettings : ToolOptions } #endregion #region GitReleaseManagerExportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitReleaseManagerTasks), Command = nameof(GitReleaseManagerTasks.GitReleaseManagerExport), Arguments = "export")] public partial class GitReleaseManagerExportSettings : ToolOptions @@ -173,7 +169,7 @@ public partial class GitReleaseManagerExportSettings : ToolOptions } #endregion #region GitReleaseManagerPublishSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitReleaseManagerTasks), Command = nameof(GitReleaseManagerTasks.GitReleaseManagerPublish), Arguments = "publish")] public partial class GitReleaseManagerPublishSettings : ToolOptions @@ -197,7 +193,7 @@ public partial class GitReleaseManagerPublishSettings : ToolOptions } #endregion #region GitReleaseManagerAddAssetsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitReleaseManagerAddAssetsSettingsExtensions { @@ -291,7 +287,7 @@ public static partial class GitReleaseManagerAddAssetsSettingsExtensions } #endregion #region GitReleaseManagerCloseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitReleaseManagerCloseSettingsExtensions { @@ -362,7 +358,7 @@ public static partial class GitReleaseManagerCloseSettingsExtensions } #endregion #region GitReleaseManagerCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitReleaseManagerCreateSettingsExtensions { @@ -497,7 +493,7 @@ public static partial class GitReleaseManagerCreateSettingsExtensions } #endregion #region GitReleaseManagerExportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitReleaseManagerExportSettingsExtensions { @@ -576,7 +572,7 @@ public static partial class GitReleaseManagerExportSettingsExtensions } #endregion #region GitReleaseManagerPublishSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitReleaseManagerPublishSettingsExtensions { diff --git a/src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.json b/src/Fallout.Application.Tools/GitReleaseManager/GitReleaseManager.json similarity index 100% rename from src/Fallout.Common/Tools/GitReleaseManager/GitReleaseManager.json rename to src/Fallout.Application.Tools/GitReleaseManager/GitReleaseManager.json diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersion.Generated.cs b/src/Fallout.Application.Tools/GitVersion/GitVersion.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/GitVersion/GitVersion.Generated.cs rename to src/Fallout.Application.Tools/GitVersion/GitVersion.Generated.cs index be230ca7e..537bd63f7 100644 --- a/src/Fallout.Common/Tools/GitVersion/GitVersion.Generated.cs +++ b/src/Fallout.Application.Tools/GitVersion/GitVersion.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/GitVersion/GitVersion.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.GitVersion; +namespace Fallout.Application.Tools.GitVersion; ///

GitVersion is a tool to help you achieve Semantic Versioning on your project.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +25,13 @@ public partial class GitVersionTasks : ToolTasks, IRequireNuGetPackage ///

GitVersion is a tool to help you achieve Semantic Versioning on your project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • /b via
  • /c via
  • /diag via
  • /dynamicRepoLocation via
  • /ensureassemblyinfo via
  • /exec via
  • /execargs via
  • /l via
  • /nocache via
  • /nofetch via
  • /output via
  • /overrideconfig via
  • /p via
  • /proj via
  • /projargs via
  • /showconfig via
  • /showvariable via
  • /u via
  • /updateassemblyinfo via
  • /updateassemblyinfofilename via
  • /url via
  • /verbosity via
  • /version via
public static (GitVersion Result, IReadOnlyCollection Output) GitVersion(GitVersionSettings options = null) => new GitVersionTasks().Run(options); - /// + /// public static (GitVersion Result, IReadOnlyCollection Output) GitVersion(Configure configurator) => new GitVersionTasks().Run(configurator.Invoke(new GitVersionSettings())); - /// + /// public static IEnumerable<(GitVersionSettings Settings, GitVersion Result, IReadOnlyCollection Output)> GitVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(GitVersion, degreeOfParallelism, completeOnFailure); } #region GitVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(GitVersionTasks), Command = nameof(GitVersionTasks.GitVersion))] public partial class GitVersionSettings : ToolOptions, IToolOptionsWithFramework @@ -91,7 +87,7 @@ public partial class GitVersionSettings : ToolOptions, IToolOptionsWithFramework } #endregion #region GitVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class GitVersionSettingsExtensions { diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersion.json b/src/Fallout.Application.Tools/GitVersion/GitVersion.json similarity index 100% rename from src/Fallout.Common/Tools/GitVersion/GitVersion.json rename to src/Fallout.Application.Tools/GitVersion/GitVersion.json diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersionAttribute.cs b/src/Fallout.Application.Tools/GitVersion/GitVersionAttribute.cs similarity index 65% rename from src/Fallout.Common/Tools/GitVersion/GitVersionAttribute.cs rename to src/Fallout.Application.Tools/GitVersion/GitVersionAttribute.cs index 894f06e10..5bc637878 100644 --- a/src/Fallout.Common/Tools/GitVersion/GitVersionAttribute.cs +++ b/src/Fallout.Application.Tools/GitVersion/GitVersionAttribute.cs @@ -1,17 +1,16 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Git; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; using Serilog; -using static Fallout.Common.ControlFlow; +using static Fallout.Application.ControlFlow; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Application.Git; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.GitVersion; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.GitVersion; /// /// Injects an instance of based on the local repository. @@ -44,17 +43,17 @@ public override object GetValue(MemberInfo member, object instance) .SetNoCache(NoCache) .DisableProcessOutputLogging() .SetUpdateAssemblyInfo(UpdateAssemblyInfo) - .When(TeamCity.Instance is { IsPullRequest: true } && !EnvironmentInfo.Variables.ContainsKey("Git_Branch"), _ => _ + .When(CiHost.TeamCity is { IsPullRequest: true } && !EnvironmentInfo.Variables.ContainsKey("Git_Branch"), _ => _ .AddProcessEnvironmentVariable( "Git_Branch", - TeamCity.Instance.ConfigurationProperties.Single(x => x.Key.StartsWith("teamcity.build.vcs.branch")).Value))) + CiHost.TeamCity.ConfigurationProperties.Single(x => x.Key.StartsWith("teamcity.build.vcs.branch")).Value))) .Result; if (UpdateBuildNumber) { - AzurePipelines.Instance?.UpdateBuildNumber(gitVersion.FullSemVer); - TeamCity.Instance?.SetBuildNumber(gitVersion.FullSemVer); - AppVeyor.Instance?.UpdateBuildVersion($"{gitVersion.FullSemVer}.build.{AppVeyor.Instance.BuildNumber}"); + CiHost.AzurePipelines?.UpdateBuildNumber(gitVersion.FullSemVer); + CiHost.TeamCity?.SetBuildNumber(gitVersion.FullSemVer); + CiHost.AppVeyor?.UpdateBuildVersion($"{gitVersion.FullSemVer}.build.{CiHost.AppVeyor.BuildNumber}"); } return gitVersion; diff --git a/src/Fallout.Common/Tools/GitVersion/GitVersionTasks.cs b/src/Fallout.Application.Tools/GitVersion/GitVersionTasks.cs similarity index 91% rename from src/Fallout.Common/Tools/GitVersion/GitVersionTasks.cs rename to src/Fallout.Application.Tools/GitVersion/GitVersionTasks.cs index d59c8e643..3127f7306 100644 --- a/src/Fallout.Common/Tools/GitVersion/GitVersionTasks.cs +++ b/src/Fallout.Application.Tools/GitVersion/GitVersionTasks.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Text.Json.Serialization; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tools.GitVersion; +namespace Fallout.Application.Tools.GitVersion; partial class GitVersionTasks { diff --git a/src/Fallout.Common/Tools/GitVersion/NumberToStringJsonConverter.cs b/src/Fallout.Application.Tools/GitVersion/NumberToStringJsonConverter.cs similarity index 96% rename from src/Fallout.Common/Tools/GitVersion/NumberToStringJsonConverter.cs rename to src/Fallout.Application.Tools/GitVersion/NumberToStringJsonConverter.cs index c4d9b6d73..52ef74533 100644 --- a/src/Fallout.Common/Tools/GitVersion/NumberToStringJsonConverter.cs +++ b/src/Fallout.Application.Tools/GitVersion/NumberToStringJsonConverter.cs @@ -8,7 +8,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace Fallout.Common.Tools.GitVersion; +namespace Fallout.Application.Tools.GitVersion; /// /// Deserializes a JSON string or JSON number as a C# . diff --git a/src/Fallout.Common/Gitter/GitterTasks.cs b/src/Fallout.Application.Tools/Gitter/GitterTasks.cs similarity index 91% rename from src/Fallout.Common/Gitter/GitterTasks.cs rename to src/Fallout.Application.Tools/Gitter/GitterTasks.cs index 7041e4d98..b7a2e59fc 100644 --- a/src/Fallout.Common/Gitter/GitterTasks.cs +++ b/src/Fallout.Application.Tools/Gitter/GitterTasks.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Net.Http; using System.Threading.Tasks; -using Fallout.Common.Utilities.Net; +using Fallout.Kernel.Net; -namespace Fallout.Common.Gitter; +namespace Fallout.Application.Tools.Gitter; // //[Headers("Accept: application/json")] //public interface IGitterRestClient diff --git a/src/Fallout.Common/Tools/Helm/Helm.Generated.cs b/src/Fallout.Application.Tools/Helm/Helm.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/Helm/Helm.Generated.cs rename to src/Fallout.Application.Tools/Helm/Helm.Generated.cs index f5386197b..ae24703d8 100644 --- a/src/Fallout.Common/Tools/Helm/Helm.Generated.cs +++ b/src/Fallout.Application.Tools/Helm/Helm.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Helm/Helm.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Helm; +namespace Fallout.Application.Tools.Helm; ///

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,300 +24,300 @@ public partial class HelmTasks : ToolTasks, IRequirePathTool ///

Generate autocompletions script for Helm for the specified shell (bash or zsh). This command can generate shell autocompletions. e.g. $ helm completion bash Can be sourced as such $ source <(helm completion bash).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <shell> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmCompletion(HelmCompletionSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmCompletion(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmCompletionSettings())); - /// + /// public static IEnumerable<(HelmCompletionSettings Settings, IReadOnlyCollection Output)> HelmCompletion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmCompletion, degreeOfParallelism, completeOnFailure); ///

This command creates a chart directory along with the common files and directories used in a chart. For example, 'helm create foo' will create a directory structure that looks something like this: foo/ | |- .helmignore # Contains patterns to ignore when packaging Helm charts. | |- Chart.yaml # Information about your chart | |- values.yaml # The default values for your templates | |- charts/ # Charts that this chart depends on | |- templates/ # The template files | |- templates/tests/ # The test files 'helm create' takes a path for an argument. If directories in the given path do not exist, Helm will attempt to create them as it goes. If the given destination exists and there are files in that directory, conflicting files will be overwritten, but other files will be left alone.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --starter via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmCreate(HelmCreateSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmCreate(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmCreateSettings())); - /// + /// public static IEnumerable<(HelmCreateSettings Settings, IReadOnlyCollection Output)> HelmCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmCreate, degreeOfParallelism, completeOnFailure); ///

This command takes a release name, and then deletes the release from Kubernetes. It removes all of the resources associated with the last release of the chart. Use the '--dry-run' flag to see which releases will be deleted without actually deleting them.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseNames> via
  • --debug via
  • --description via
  • --dry-run via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --no-hooks via
  • --purge via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --timeout via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmDelete(HelmDeleteSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmDelete(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmDeleteSettings())); - /// + /// public static IEnumerable<(HelmDeleteSettings Settings, IReadOnlyCollection Output)> HelmDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmDelete, degreeOfParallelism, completeOnFailure); ///

Build out the charts/ directory from the requirements.lock file. Build is used to reconstruct a chart's dependencies to the state specified in the lock file. This will not re-negotiate dependencies, as 'helm dependency update' does. If no lock file is found, 'helm dependency build' will mirror the behavior of 'helm dependency update'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --debug via
  • --home via
  • --host via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --verify via
public static IReadOnlyCollection HelmDependencyBuild(HelmDependencyBuildSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmDependencyBuild(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmDependencyBuildSettings())); - /// + /// public static IEnumerable<(HelmDependencyBuildSettings Settings, IReadOnlyCollection Output)> HelmDependencyBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmDependencyBuild, degreeOfParallelism, completeOnFailure); ///

List all of the dependencies declared in a chart. This can take chart archives and chart directories as input. It will not alter the contents of a chart. This will produce an error if the chart cannot be loaded. It will emit a warning if it cannot find a requirements.yaml.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmDependencyList(HelmDependencyListSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmDependencyList(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmDependencyListSettings())); - /// + /// public static IEnumerable<(HelmDependencyListSettings Settings, IReadOnlyCollection Output)> HelmDependencyList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmDependencyList, degreeOfParallelism, completeOnFailure); ///

Update the on-disk dependencies to mirror the requirements.yaml file. This command verifies that the required charts, as expressed in 'requirements.yaml', are present in 'charts/' and are at an acceptable version. It will pull down the latest charts that satisfy the dependencies, and clean up old dependencies. On successful update, this will generate a lock file that can be used to rebuild the requirements to an exact version. Dependencies are not required to be represented in 'requirements.yaml'. For that reason, an update command will not remove charts unless they are (a) present in the requirements.yaml file, but (b) at the wrong version.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --debug via
  • --home via
  • --host via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --skip-refresh via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --verify via
public static IReadOnlyCollection HelmDependencyUpdate(HelmDependencyUpdateSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmDependencyUpdate(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmDependencyUpdateSettings())); - /// + /// public static IEnumerable<(HelmDependencyUpdateSettings Settings, IReadOnlyCollection Output)> HelmDependencyUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmDependencyUpdate, degreeOfParallelism, completeOnFailure); ///

Retrieve a package from a package repository, and download it locally. This is useful for fetching packages to inspect, modify, or repackage. It can also be used to perform cryptographic verification of a chart without installing the chart. There are options for unpacking the chart after download. This will create a directory for the chart and uncompress into that directory. If the --verify flag is specified, the requested chart MUST have a provenance file, and MUST pass the verification process. Failure in any part of this will result in an error, and the chart will not be saved locally.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <charts> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --destination via
  • --devel via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --password via
  • --prov via
  • --repo via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --untar via
  • --untardir via
  • --username via
  • --verify via
  • --version via
public static IReadOnlyCollection HelmFetch(HelmFetchSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmFetch(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmFetchSettings())); - /// + /// public static IEnumerable<(HelmFetchSettings Settings, IReadOnlyCollection Output)> HelmFetch(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmFetch, degreeOfParallelism, completeOnFailure); ///

This command shows the details of a named release. It can be used to get extended information about the release, including: - The values used to generate the release - The chart used to generate the release - The generated manifest file By default, this prints a human readable collection of information about the chart, the supplied values, and the generated manifest file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmGet(HelmGetSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmGet(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmGetSettings())); - /// + /// public static IEnumerable<(HelmGetSettings Settings, IReadOnlyCollection Output)> HelmGet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmGet, degreeOfParallelism, completeOnFailure); ///

This command downloads hooks for a given release. Hooks are formatted in YAML and separated by the YAML '---\n' separator.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmGetHooks(HelmGetHooksSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmGetHooks(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmGetHooksSettings())); - /// + /// public static IEnumerable<(HelmGetHooksSettings Settings, IReadOnlyCollection Output)> HelmGetHooks(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmGetHooks, degreeOfParallelism, completeOnFailure); ///

This command fetches the generated manifest for a given release. A manifest is a YAML-encoded representation of the Kubernetes resources that were generated from this release's chart(s). If a chart is dependent on other charts, those resources will also be included in the manifest.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmGetManifest(HelmGetManifestSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmGetManifest(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmGetManifestSettings())); - /// + /// public static IEnumerable<(HelmGetManifestSettings Settings, IReadOnlyCollection Output)> HelmGetManifest(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmGetManifest, degreeOfParallelism, completeOnFailure); ///

This command shows notes provided by the chart of a named release.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmGetNotes(HelmGetNotesSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmGetNotes(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmGetNotesSettings())); - /// + /// public static IEnumerable<(HelmGetNotesSettings Settings, IReadOnlyCollection Output)> HelmGetNotes(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmGetNotes, degreeOfParallelism, completeOnFailure); ///

This command downloads a values file for a given release.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --all via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --output via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmGetValues(HelmGetValuesSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmGetValues(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmGetValuesSettings())); - /// + /// public static IEnumerable<(HelmGetValuesSettings Settings, IReadOnlyCollection Output)> HelmGetValues(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmGetValues, degreeOfParallelism, completeOnFailure); ///

History prints historical revisions for a given release. A default maximum of 256 revisions will be returned. Setting '--max' configures the maximum length of the revision list returned. The historical release set is printed as a formatted table, e.g: $ helm history angry-bird --max=4 REVISION UPDATED STATUS CHART DESCRIPTION 1 Mon Oct 3 10:15:13 2016 SUPERSEDED alpine-0.1.0 Initial install 2 Mon Oct 3 10:15:13 2016 SUPERSEDED alpine-0.1.0 Upgraded successfully 3 Mon Oct 3 10:15:13 2016 SUPERSEDED alpine-0.1.0 Rolled back to 2 4 Mon Oct 3 10:15:13 2016 DEPLOYED alpine-0.1.0 Upgraded successfully.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --col-width via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --max via
  • --output via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmHistory(HelmHistorySettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmHistory(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmHistorySettings())); - /// + /// public static IEnumerable<(HelmHistorySettings Settings, IReadOnlyCollection Output)> HelmHistory(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmHistory, degreeOfParallelism, completeOnFailure); ///

This command displays the location of HELM_HOME. This is where any helm configuration files live.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmHome(HelmHomeSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmHome(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmHomeSettings())); - /// + /// public static IEnumerable<(HelmHomeSettings Settings, IReadOnlyCollection Output)> HelmHome(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmHome, degreeOfParallelism, completeOnFailure); ///

This command installs Tiller (the Helm server-side component) onto your Kubernetes Cluster and sets up local configuration in $HELM_HOME (default ~/.helm/). As with the rest of the Helm commands, 'helm init' discovers Kubernetes clusters by reading $KUBECONFIG (default '~/.kube/config') and using the default context. To set up just a local environment, use '--client-only'. That will configure $HELM_HOME, but not attempt to connect to a Kubernetes cluster and install the Tiller deployment. When installing Tiller, 'helm init' will attempt to install the latest released version. You can specify an alternative image with '--tiller-image'. For those frequently working on the latest code, the flag '--canary-image' will install the latest pre-release version of Tiller (e.g. the HEAD commit in the GitHub repository on the master branch). To dump a manifest containing the Tiller deployment YAML, combine the '--dry-run' and '--debug' flags.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --automount-service-account-token via
  • --canary-image via
  • --client-only via
  • --debug via
  • --dry-run via
  • --force-upgrade via
  • --history-max via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --local-repo-url via
  • --net-host via
  • --node-selectors via
  • --output via
  • --override via
  • --replicas via
  • --service-account via
  • --skip-refresh via
  • --stable-repo-url via
  • --tiller-connection-timeout via
  • --tiller-image via
  • --tiller-namespace via
  • --tiller-tls via
  • --tiller-tls-cert via
  • --tiller-tls-hostname via
  • --tiller-tls-key via
  • --tiller-tls-verify via
  • --tls-ca-cert via
  • --upgrade via
  • --wait via
public static IReadOnlyCollection HelmInit(HelmInitSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInit(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInitSettings())); - /// + /// public static IEnumerable<(HelmInitSettings Settings, IReadOnlyCollection Output)> HelmInit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInit, degreeOfParallelism, completeOnFailure); ///

This command inspects a chart and displays information. It takes a chart reference ('stable/drupal'), a full path to a directory or packaged chart, or a URL. Inspect prints the contents of the Chart.yaml file and the values.yaml file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --devel via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --password via
  • --repo via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --username via
  • --verify via
  • --version via
public static IReadOnlyCollection HelmInspect(HelmInspectSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInspect(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInspectSettings())); - /// + /// public static IEnumerable<(HelmInspectSettings Settings, IReadOnlyCollection Output)> HelmInspect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInspect, degreeOfParallelism, completeOnFailure); ///

This command inspects a chart (directory, file, or URL) and displays the contents of the Charts.yaml file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --devel via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --password via
  • --repo via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --username via
  • --verify via
  • --version via
public static IReadOnlyCollection HelmInspectChart(HelmInspectChartSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInspectChart(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInspectChartSettings())); - /// + /// public static IEnumerable<(HelmInspectChartSettings Settings, IReadOnlyCollection Output)> HelmInspectChart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInspectChart, degreeOfParallelism, completeOnFailure); ///

This command inspects a chart (directory, file, or URL) and displays the contents of the README file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --devel via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --repo via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --verify via
  • --version via
public static IReadOnlyCollection HelmInspectReadme(HelmInspectReadmeSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInspectReadme(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInspectReadmeSettings())); - /// + /// public static IEnumerable<(HelmInspectReadmeSettings Settings, IReadOnlyCollection Output)> HelmInspectReadme(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInspectReadme, degreeOfParallelism, completeOnFailure); ///

This command inspects a chart (directory, file, or URL) and displays the contents of the values.yaml file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --devel via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --password via
  • --repo via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --username via
  • --verify via
  • --version via
public static IReadOnlyCollection HelmInspectValues(HelmInspectValuesSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInspectValues(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInspectValuesSettings())); - /// + /// public static IEnumerable<(HelmInspectValuesSettings Settings, IReadOnlyCollection Output)> HelmInspectValues(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInspectValues, degreeOfParallelism, completeOnFailure); ///

This command installs a chart archive. The install argument must be a chart reference, a path to a packaged chart, a path to an unpacked chart directory or a URL. To override values in a chart, use either the '--values' flag and pass in a file or use the '--set' flag and pass configuration from the command line. To force string values in '--set', use '--set-string' instead. In case a value is large and therefore you want not to use neither '--values' nor '--set', use '--set-file' to read the single large value from file. $ helm install -f myvalues.yaml ./redis or $ helm install --set name=prod ./redis or $ helm install --set-string long_int=1234567890 ./redis or $ helm install --set-file multiline_text=path/to/textfile You can specify the '--values'/'-f' flag multiple times. The priority will be given to the last (right-most) file specified. For example, if both myvalues.yaml and override.yaml contained a key called 'Test', the value set in override.yaml would take precedence: $ helm install -f myvalues.yaml -f override.yaml ./redis You can specify the '--set' flag multiple times. The priority will be given to the last (right-most) set specified. For example, if both 'bar' and 'newbar' values are set for a key called 'foo', the 'newbar' value would take precedence: $ helm install --set foo=bar --set foo=newbar ./redis To check the generated manifests of a release without installing the chart, the '--debug' and '--dry-run' flags can be combined. This will still require a round-trip to the Tiller server. If --verify is set, the chart MUST have a provenance file, and the provenance file MUST pass all verification steps. There are five different ways you can express the chart you want to install: 1. By chart reference: helm install stable/mariadb 2. By path to a packaged chart: helm install ./nginx-1.2.3.tgz 3. By path to an unpacked chart directory: helm install ./nginx 4. By absolute URL: helm install https://example.com/charts/nginx-1.2.3.tgz 5. By chart reference and repo url: helm install --repo https://example.com/charts/ nginx CHART REFERENCES A chart reference is a convenient way of reference a chart in a chart repository. When you use a chart reference with a repo prefix ('stable/mariadb'), Helm will look in the local configuration for a chart repository named 'stable', and will then look for a chart in that repository whose name is 'mariadb'. It will install the latest version of that chart unless you also supply a version number with the '--version' flag. To see the list of chart repositories, use 'helm repo list'. To search for charts in a repository, use 'helm search'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --atomic via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --dep-up via
  • --description via
  • --devel via
  • --dry-run via
  • --home via
  • --host via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --name via
  • --name-template via
  • --namespace via
  • --no-crd-hook via
  • --no-hooks via
  • --password via
  • --render-subchart-notes via
  • --replace via
  • --repo via
  • --set via
  • --set-file via
  • --set-string via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --timeout via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
  • --username via
  • --values via
  • --verify via
  • --version via
  • --wait via
public static IReadOnlyCollection HelmInstall(HelmInstallSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmInstall(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmInstallSettings())); - /// + /// public static IEnumerable<(HelmInstallSettings Settings, IReadOnlyCollection Output)> HelmInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmInstall, degreeOfParallelism, completeOnFailure); ///

This command takes a path to a chart and runs a series of tests to verify that the chart is well-formed. If the linter encounters things that will cause the chart to fail installation, it will emit [ERROR] messages. If it encounters issues that break with convention or recommendation, it will emit [WARNING] messages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --namespace via
  • --set via
  • --set-file via
  • --set-string via
  • --strict via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --values via
public static IReadOnlyCollection HelmLint(HelmLintSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmLint(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmLintSettings())); - /// + /// public static IEnumerable<(HelmLintSettings Settings, IReadOnlyCollection Output)> HelmLint(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmLint, degreeOfParallelism, completeOnFailure); ///

This command lists all of the releases. By default, it lists only releases that are deployed or failed. Flags like '--deleted' and '--all' will alter this behavior. Such flags can be combined: '--deleted --failed'. By default, items are sorted alphabetically. Use the '-d' flag to sort by release date. If an argument is provided, it will be treated as a filter. Filters are regular expressions (Perl compatible) that are applied to the list of releases. Only items that match the filter will be returned. $ helm list 'ara[a-z]+' NAME UPDATED CHART maudlin-arachnid Mon May 9 16:07:08 2016 alpine-0.1.0 If no results are found, 'helm list' will exit 0, but with no output (or in the case of no '-q' flag, only headers). By default, up to 256 items may be returned. To limit this, use the '--max' flag. Setting '--max' to 0 will not return all results. Rather, it will return the server's default, which may be much higher than 256. Pairing the '--max' flag with the '--offset' flag allows you to page through results.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <filter> via
  • --all via
  • --chart-name via
  • --col-width via
  • --date via
  • --debug via
  • --deleted via
  • --deleting via
  • --deployed via
  • --failed via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --max via
  • --namespace via
  • --offset via
  • --output via
  • --pending via
  • --reverse via
  • --short via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmList(HelmListSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmList(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmListSettings())); - /// + /// public static IEnumerable<(HelmListSettings Settings, IReadOnlyCollection Output)> HelmList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmList, degreeOfParallelism, completeOnFailure); ///

This command packages a chart into a versioned chart archive file. If a path is given, this will look at that path for a chart (which must contain a Chart.yaml file) and then package that directory. If no path is given, this will look in the present working directory for a Chart.yaml file, and (if found) build the current directory into a chart. Versioned chart archives are used by Helm package repositories.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chartPaths> via
  • --app-version via
  • --debug via
  • --dependency-update via
  • --destination via
  • --home via
  • --host via
  • --key via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --save via
  • --sign via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --version via
public static IReadOnlyCollection HelmPackage(HelmPackageSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmPackage(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmPackageSettings())); - /// + /// public static IEnumerable<(HelmPackageSettings Settings, IReadOnlyCollection Output)> HelmPackage(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmPackage, degreeOfParallelism, completeOnFailure); ///

This command allows you to install a plugin from a url to a VCS repo or a local path. Example usage: $ helm plugin install https://github.com/technosophos/helm-template.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <options> via
  • <paths> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --version via
public static IReadOnlyCollection HelmPluginInstall(HelmPluginInstallSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmPluginInstall(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmPluginInstallSettings())); - /// + /// public static IEnumerable<(HelmPluginInstallSettings Settings, IReadOnlyCollection Output)> HelmPluginInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmPluginInstall, degreeOfParallelism, completeOnFailure); ///

List installed Helm plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmPluginList(HelmPluginListSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmPluginList(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmPluginListSettings())); - /// + /// public static IEnumerable<(HelmPluginListSettings Settings, IReadOnlyCollection Output)> HelmPluginList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmPluginList, degreeOfParallelism, completeOnFailure); ///

Remove one or more Helm plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugins> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmPluginRemove(HelmPluginRemoveSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmPluginRemove(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmPluginRemoveSettings())); - /// + /// public static IEnumerable<(HelmPluginRemoveSettings Settings, IReadOnlyCollection Output)> HelmPluginRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmPluginRemove, degreeOfParallelism, completeOnFailure); ///

Update one or more Helm plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <plugins> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmPluginUpdate(HelmPluginUpdateSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmPluginUpdate(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmPluginUpdateSettings())); - /// + /// public static IEnumerable<(HelmPluginUpdateSettings Settings, IReadOnlyCollection Output)> HelmPluginUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmPluginUpdate, degreeOfParallelism, completeOnFailure); ///

Add a chart repository.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • <url> via
  • --ca-file via
  • --cert-file via
  • --debug via
  • --home via
  • --host via
  • --key-file via
  • --kube-context via
  • --kubeconfig via
  • --no-update via
  • --password via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --username via
public static IReadOnlyCollection HelmRepoAdd(HelmRepoAddSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRepoAdd(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRepoAddSettings())); - /// + /// public static IEnumerable<(HelmRepoAddSettings Settings, IReadOnlyCollection Output)> HelmRepoAdd(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRepoAdd, degreeOfParallelism, completeOnFailure); ///

Read the current directory and generate an index file based on the charts found. This tool is used for creating an 'index.yaml' file for a chart repository. To set an absolute URL to the charts, use '--url' flag. To merge the generated index with an existing index file, use the '--merge' flag. In this case, the charts found in the current directory will be merged into the existing index, with local charts taking priority over existing charts.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <directory> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --merge via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --url via
public static IReadOnlyCollection HelmRepoIndex(HelmRepoIndexSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRepoIndex(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRepoIndexSettings())); - /// + /// public static IEnumerable<(HelmRepoIndexSettings Settings, IReadOnlyCollection Output)> HelmRepoIndex(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRepoIndex, degreeOfParallelism, completeOnFailure); ///

List chart repositories.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmRepoList(HelmRepoListSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRepoList(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRepoListSettings())); - /// + /// public static IEnumerable<(HelmRepoListSettings Settings, IReadOnlyCollection Output)> HelmRepoList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRepoList, degreeOfParallelism, completeOnFailure); ///

Remove a chart repository.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmRepoRemove(HelmRepoRemoveSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRepoRemove(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRepoRemoveSettings())); - /// + /// public static IEnumerable<(HelmRepoRemoveSettings Settings, IReadOnlyCollection Output)> HelmRepoRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRepoRemove, degreeOfParallelism, completeOnFailure); ///

Update gets the latest information about charts from the respective chart repositories. Information is cached locally, where it is used by commands like 'helm search'. 'helm update' is the deprecated form of 'helm repo update'. It will be removed in future releases.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --strict via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmRepoUpdate(HelmRepoUpdateSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRepoUpdate(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRepoUpdateSettings())); - /// + /// public static IEnumerable<(HelmRepoUpdateSettings Settings, IReadOnlyCollection Output)> HelmRepoUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRepoUpdate, degreeOfParallelism, completeOnFailure); ///

This command uninstalls Tiller (the Helm server-side component) from your Kubernetes Cluster and optionally deletes local configuration in $HELM_HOME (default ~/.helm/).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --debug via
  • --force via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --remove-helm-home via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmReset(HelmResetSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmReset(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmResetSettings())); - /// + /// public static IEnumerable<(HelmResetSettings Settings, IReadOnlyCollection Output)> HelmReset(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmReset, degreeOfParallelism, completeOnFailure); ///

This command rolls back a release to a previous revision. The first argument of the rollback command is the name of a release, and the second is a revision (version) number. To see revision numbers, run 'helm history RELEASE'. If you'd like to rollback to the previous release use 'helm rollback [RELEASE] 0'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <release> via
  • <revision> via
  • --debug via
  • --description via
  • --dry-run via
  • --force via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --no-hooks via
  • --recreate-pods via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --timeout via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
  • --wait via
public static IReadOnlyCollection HelmRollback(HelmRollbackSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmRollback(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmRollbackSettings())); - /// + /// public static IEnumerable<(HelmRollbackSettings Settings, IReadOnlyCollection Output)> HelmRollback(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmRollback, degreeOfParallelism, completeOnFailure); ///

Search reads through all of the repositories configured on the system, and looks for matches. Repositories are managed with 'helm repo' commands.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <keyword> via
  • --col-width via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --regexp via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --version via
  • --versions via
public static IReadOnlyCollection HelmSearch(HelmSearchSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmSearch(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmSearchSettings())); - /// + /// public static IEnumerable<(HelmSearchSettings Settings, IReadOnlyCollection Output)> HelmSearch(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmSearch, degreeOfParallelism, completeOnFailure); ///

This command starts a local chart repository server that serves charts from a local directory. The new server will provide HTTP access to a repository. By default, it will scan all of the charts in '$HELM_HOME/repository/local' and serve those over the local IPv4 TCP port (default '127.0.0.1:8879'). This command is intended to be used for educational and testing purposes only. It is best to rely on a dedicated web server or a cloud-hosted solution like Google Cloud Storage for production use. See https://github.com/helm/helm/blob/master/docs/chart_repository.md#hosting-chart-repositories for more information on hosting chart repositories in a production setting.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --address via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --repo-path via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --url via
public static IReadOnlyCollection HelmServe(HelmServeSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmServe(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmServeSettings())); - /// + /// public static IEnumerable<(HelmServeSettings Settings, IReadOnlyCollection Output)> HelmServe(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmServe, degreeOfParallelism, completeOnFailure); ///

This command shows the status of a named release. The status consists of: - last deployment time - k8s namespace in which the release lives - state of the release (can be: UNKNOWN, DEPLOYED, DELETED, SUPERSEDED, FAILED or DELETING) - list of resources that this release consists of, sorted by kind - details on last test suite run, if applicable - additional notes provided by the chart.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <releaseName> via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --output via
  • --revision via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmStatus(HelmStatusSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmStatus(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmStatusSettings())); - /// + /// public static IEnumerable<(HelmStatusSettings Settings, IReadOnlyCollection Output)> HelmStatus(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmStatus, degreeOfParallelism, completeOnFailure); ///

Render chart templates locally and display the output. This does not require Tiller. However, any values that would normally be looked up or retrieved in-cluster will be faked locally. Additionally, none of the server-side testing of chart validity (e.g. whether an API is supported) is done. To render just one template in a chart, use '-x': $ helm template mychart -x templates/deployment.yaml.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • --debug via
  • --execute via
  • --home via
  • --host via
  • --is-upgrade via
  • --kube-context via
  • --kube-version via
  • --kubeconfig via
  • --name via
  • --name-template via
  • --namespace via
  • --notes via
  • --output-dir via
  • --set via
  • --set-file via
  • --set-string via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --values via
public static IReadOnlyCollection HelmTemplate(HelmTemplateSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmTemplate(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmTemplateSettings())); - /// + /// public static IEnumerable<(HelmTemplateSettings Settings, IReadOnlyCollection Output)> HelmTemplate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmTemplate, degreeOfParallelism, completeOnFailure); ///

The test command runs the tests for a release. The argument this command takes is the name of a deployed release. The tests to be run are defined in the chart that was installed.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <release> via
  • --cleanup via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --parallel via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --timeout via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmTest(HelmTestSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmTest(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmTestSettings())); - /// + /// public static IEnumerable<(HelmTestSettings Settings, IReadOnlyCollection Output)> HelmTest(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmTest, degreeOfParallelism, completeOnFailure); ///

This command upgrades a release to a specified version of a chart and/or updates chart values. Required arguments are release and chart. The chart argument can be one of: - a chart reference('stable/mariadb'); use '--version' and '--devel' flags for versions other than latest, - a path to a chart directory, - a packaged chart, - a fully qualified URL. To customize the chart values, use any of - '--values'/'-f' to pass in a yaml file holding settings, - '--set' to provide one or more key=val pairs directly, - '--set-string' to provide key=val forcing val to be stored as a string, - '--set-file' to provide key=path to read a single large value from a file at path. To edit or append to the existing customized values, add the '--reuse-values' flag, otherwise any existing customized values are ignored. If no chart value arguments are provided on the command line, any existing customized values are carried forward. If you want to revert to just the values provided in the chart, use the '--reset-values' flag. You can specify any of the chart value flags multiple times. The priority will be given to the last (right-most) value specified. For example, if both myvalues.yaml and override.yaml contained a key called 'Test', the value set in override.yaml would take precedence: $ helm upgrade -f myvalues.yaml -f override.yaml redis ./redis Note that the key name provided to the '--set', '--set-string' and '--set-file' flags can reference structure elements. Examples: - mybool=TRUE - livenessProbe.timeoutSeconds=10 - metrics.annotations[0]=hey,metrics.annotations[1]=ho which sets the top level key mybool to true, the nested timeoutSeconds to 10, and two array values, respectively. Note that the value side of the key=val provided to '--set' and '--set-string' flags will pass through shell evaluation followed by yaml type parsing to produce the final value. This may alter inputs with special characters in unexpected ways, for example $ helm upgrade --set pwd=3jk$o2,z=f\30.e redis ./redis results in "pwd: 3jk" and "z: f30.e". Use single quotes to avoid shell evaluation and argument delimiters, and use backslash to escape yaml special characters: $ helm upgrade --set pwd='3jk$o2z=f\\30.e' redis ./redis which results in the expected "pwd: 3jk$o2z=f\30.e". If a single quote occurs in your value then follow your shell convention for escaping it; for example in bash: $ helm upgrade --set pwd='3jk$o2z=f\\30with'\''quote' which results in "pwd: 3jk$o2z=f\30with'quote".

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <chart> via
  • <release> via
  • --atomic via
  • --ca-file via
  • --cert-file via
  • --create-namespace via
  • --debug via
  • --description via
  • --devel via
  • --dry-run via
  • --force via
  • --home via
  • --host via
  • --install via
  • --key-file via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --namespace via
  • --no-hooks via
  • --password via
  • --recreate-pods via
  • --render-subchart-notes via
  • --repo via
  • --reset-values via
  • --reuse-values via
  • --set via
  • --set-file via
  • --set-string via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --timeout via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
  • --username via
  • --values via
  • --verify via
  • --version via
  • --wait via
public static IReadOnlyCollection HelmUpgrade(HelmUpgradeSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmUpgrade(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmUpgradeSettings())); - /// + /// public static IEnumerable<(HelmUpgradeSettings Settings, IReadOnlyCollection Output)> HelmUpgrade(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmUpgrade, degreeOfParallelism, completeOnFailure); ///

Verify that the given chart has a valid provenance file. Provenance files provide crytographic verification that a chart has not been tampered with, and was packaged by a trusted provider. This command can be used to verify a local chart. Several other commands provide '--verify' flags that run the same validation. To generate a signed package, use the 'helm package --sign' command.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <path> via
  • --debug via
  • --home via
  • --host via
  • --keyring via
  • --kube-context via
  • --kubeconfig via
  • --tiller-connection-timeout via
  • --tiller-namespace via
public static IReadOnlyCollection HelmVerify(HelmVerifySettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmVerify(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmVerifySettings())); - /// + /// public static IEnumerable<(HelmVerifySettings Settings, IReadOnlyCollection Output)> HelmVerify(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmVerify, degreeOfParallelism, completeOnFailure); ///

Show the client and server versions for Helm and tiller. This will print a representation of the client and server versions of Helm and Tiller. The output will look something like this: Client: &version.Version{SemVer:"v2.0.0", GitCommit:"ff52399e51bb880526e9cd0ed8386f6433b74da1", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.0.0", GitCommit:"b0c113dfb9f612a9add796549da66c0d294508a3", GitTreeState:"clean"} - SemVer is the semantic version of the release. - GitCommit is the SHA for the commit that this version was built from. - GitTreeState is "clean" if there are no local code changes when this binary was built, and "dirty" if the binary was built from locally modified code. To print just the client version, use '--client'. To print just the server version, use '--server'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --client via
  • --debug via
  • --home via
  • --host via
  • --kube-context via
  • --kubeconfig via
  • --server via
  • --short via
  • --template via
  • --tiller-connection-timeout via
  • --tiller-namespace via
  • --tls via
  • --tls-ca-cert via
  • --tls-cert via
  • --tls-hostname via
  • --tls-key via
  • --tls-verify via
public static IReadOnlyCollection HelmVersion(HelmVersionSettings options = null) => new HelmTasks().Run(options); - /// + /// public static IReadOnlyCollection HelmVersion(Configure configurator) => new HelmTasks().Run(configurator.Invoke(new HelmVersionSettings())); - /// + /// public static IEnumerable<(HelmVersionSettings Settings, IReadOnlyCollection Output)> HelmVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(HelmVersion, degreeOfParallelism, completeOnFailure); } #region HelmCompletionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmCompletion), Arguments = "completion")] public partial class HelmCompletionSettings : HelmOptionsBase @@ -331,7 +327,7 @@ public partial class HelmCompletionSettings : HelmOptionsBase } #endregion #region HelmCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmCreate), Arguments = "create")] public partial class HelmCreateSettings : HelmOptionsBase @@ -343,7 +339,7 @@ public partial class HelmCreateSettings : HelmOptionsBase } #endregion #region HelmDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmDelete), Arguments = "delete")] public partial class HelmDeleteSettings : HelmOptionsBase @@ -375,7 +371,7 @@ public partial class HelmDeleteSettings : HelmOptionsBase } #endregion #region HelmDependencyBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmDependencyBuild), Arguments = "dependency build")] public partial class HelmDependencyBuildSettings : HelmOptionsBase @@ -389,7 +385,7 @@ public partial class HelmDependencyBuildSettings : HelmOptionsBase } #endregion #region HelmDependencyListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmDependencyList), Arguments = "dependency list")] public partial class HelmDependencyListSettings : HelmOptionsBase @@ -399,7 +395,7 @@ public partial class HelmDependencyListSettings : HelmOptionsBase } #endregion #region HelmDependencyUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmDependencyUpdate), Arguments = "dependency update")] public partial class HelmDependencyUpdateSettings : HelmOptionsBase @@ -415,7 +411,7 @@ public partial class HelmDependencyUpdateSettings : HelmOptionsBase } #endregion #region HelmFetchSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmFetch), Arguments = "fetch")] public partial class HelmFetchSettings : HelmOptionsBase @@ -453,7 +449,7 @@ public partial class HelmFetchSettings : HelmOptionsBase } #endregion #region HelmGetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmGet), Arguments = "get")] public partial class HelmGetSettings : HelmOptionsBase @@ -477,7 +473,7 @@ public partial class HelmGetSettings : HelmOptionsBase } #endregion #region HelmGetHooksSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmGetHooks), Arguments = "get hooks")] public partial class HelmGetHooksSettings : HelmOptionsBase @@ -501,7 +497,7 @@ public partial class HelmGetHooksSettings : HelmOptionsBase } #endregion #region HelmGetManifestSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmGetManifest), Arguments = "get manifest")] public partial class HelmGetManifestSettings : HelmOptionsBase @@ -525,7 +521,7 @@ public partial class HelmGetManifestSettings : HelmOptionsBase } #endregion #region HelmGetNotesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmGetNotes), Arguments = "get notes")] public partial class HelmGetNotesSettings : HelmOptionsBase @@ -549,7 +545,7 @@ public partial class HelmGetNotesSettings : HelmOptionsBase } #endregion #region HelmGetValuesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmGetValues), Arguments = "get values")] public partial class HelmGetValuesSettings : HelmOptionsBase @@ -577,7 +573,7 @@ public partial class HelmGetValuesSettings : HelmOptionsBase } #endregion #region HelmHistorySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmHistory), Arguments = "history")] public partial class HelmHistorySettings : HelmOptionsBase @@ -605,7 +601,7 @@ public partial class HelmHistorySettings : HelmOptionsBase } #endregion #region HelmHomeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmHome), Arguments = "home")] public partial class HelmHomeSettings : HelmOptionsBase @@ -613,7 +609,7 @@ public partial class HelmHomeSettings : HelmOptionsBase } #endregion #region HelmInitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInit), Arguments = "init")] public partial class HelmInitSettings : HelmOptionsBase @@ -669,7 +665,7 @@ public partial class HelmInitSettings : HelmOptionsBase } #endregion #region HelmInspectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInspect), Arguments = "inspect")] public partial class HelmInspectSettings : HelmOptionsBase @@ -699,7 +695,7 @@ public partial class HelmInspectSettings : HelmOptionsBase } #endregion #region HelmInspectChartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInspectChart), Arguments = "inspect chart")] public partial class HelmInspectChartSettings : HelmOptionsBase @@ -729,7 +725,7 @@ public partial class HelmInspectChartSettings : HelmOptionsBase } #endregion #region HelmInspectReadmeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInspectReadme), Arguments = "inspect readme")] public partial class HelmInspectReadmeSettings : HelmOptionsBase @@ -755,7 +751,7 @@ public partial class HelmInspectReadmeSettings : HelmOptionsBase } #endregion #region HelmInspectValuesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInspectValues), Arguments = "inspect values")] public partial class HelmInspectValuesSettings : HelmOptionsBase @@ -785,7 +781,7 @@ public partial class HelmInspectValuesSettings : HelmOptionsBase } #endregion #region HelmInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmInstall), Arguments = "install")] public partial class HelmInstallSettings : HelmOptionsBase @@ -861,7 +857,7 @@ public partial class HelmInstallSettings : HelmOptionsBase } #endregion #region HelmLintSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmLint), Arguments = "lint")] public partial class HelmLintSettings : HelmOptionsBase @@ -883,7 +879,7 @@ public partial class HelmLintSettings : HelmOptionsBase } #endregion #region HelmListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmList), Arguments = "list")] public partial class HelmListSettings : HelmOptionsBase @@ -935,7 +931,7 @@ public partial class HelmListSettings : HelmOptionsBase } #endregion #region HelmPackageSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmPackage), Arguments = "package")] public partial class HelmPackageSettings : HelmOptionsBase @@ -961,7 +957,7 @@ public partial class HelmPackageSettings : HelmOptionsBase } #endregion #region HelmPluginInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmPluginInstall), Arguments = "plugin install")] public partial class HelmPluginInstallSettings : HelmOptionsBase @@ -975,7 +971,7 @@ public partial class HelmPluginInstallSettings : HelmOptionsBase } #endregion #region HelmPluginListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmPluginList), Arguments = "plugin list")] public partial class HelmPluginListSettings : HelmOptionsBase @@ -983,7 +979,7 @@ public partial class HelmPluginListSettings : HelmOptionsBase } #endregion #region HelmPluginRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmPluginRemove), Arguments = "plugin remove")] public partial class HelmPluginRemoveSettings : HelmOptionsBase @@ -993,7 +989,7 @@ public partial class HelmPluginRemoveSettings : HelmOptionsBase } #endregion #region HelmPluginUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmPluginUpdate), Arguments = "plugin update")] public partial class HelmPluginUpdateSettings : HelmOptionsBase @@ -1003,7 +999,7 @@ public partial class HelmPluginUpdateSettings : HelmOptionsBase } #endregion #region HelmRepoAddSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRepoAdd), Arguments = "repo add")] public partial class HelmRepoAddSettings : HelmOptionsBase @@ -1027,7 +1023,7 @@ public partial class HelmRepoAddSettings : HelmOptionsBase } #endregion #region HelmRepoIndexSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRepoIndex), Arguments = "repo index")] public partial class HelmRepoIndexSettings : HelmOptionsBase @@ -1041,7 +1037,7 @@ public partial class HelmRepoIndexSettings : HelmOptionsBase } #endregion #region HelmRepoListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRepoList), Arguments = "repo list")] public partial class HelmRepoListSettings : HelmOptionsBase @@ -1049,7 +1045,7 @@ public partial class HelmRepoListSettings : HelmOptionsBase } #endregion #region HelmRepoRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRepoRemove), Arguments = "repo remove")] public partial class HelmRepoRemoveSettings : HelmOptionsBase @@ -1059,7 +1055,7 @@ public partial class HelmRepoRemoveSettings : HelmOptionsBase } #endregion #region HelmRepoUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRepoUpdate), Arguments = "repo update")] public partial class HelmRepoUpdateSettings : HelmOptionsBase @@ -1069,7 +1065,7 @@ public partial class HelmRepoUpdateSettings : HelmOptionsBase } #endregion #region HelmResetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmReset), Arguments = "reset")] public partial class HelmResetSettings : HelmOptionsBase @@ -1093,7 +1089,7 @@ public partial class HelmResetSettings : HelmOptionsBase } #endregion #region HelmRollbackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmRollback), Arguments = "rollback")] public partial class HelmRollbackSettings : HelmOptionsBase @@ -1131,7 +1127,7 @@ public partial class HelmRollbackSettings : HelmOptionsBase } #endregion #region HelmSearchSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmSearch), Arguments = "search")] public partial class HelmSearchSettings : HelmOptionsBase @@ -1149,7 +1145,7 @@ public partial class HelmSearchSettings : HelmOptionsBase } #endregion #region HelmServeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmServe), Arguments = "serve")] public partial class HelmServeSettings : HelmOptionsBase @@ -1163,7 +1159,7 @@ public partial class HelmServeSettings : HelmOptionsBase } #endregion #region HelmStatusSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmStatus), Arguments = "status")] public partial class HelmStatusSettings : HelmOptionsBase @@ -1189,7 +1185,7 @@ public partial class HelmStatusSettings : HelmOptionsBase } #endregion #region HelmTemplateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmTemplate), Arguments = "template")] public partial class HelmTemplateSettings : HelmOptionsBase @@ -1223,7 +1219,7 @@ public partial class HelmTemplateSettings : HelmOptionsBase } #endregion #region HelmTestSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmTest), Arguments = "test")] public partial class HelmTestSettings : HelmOptionsBase @@ -1251,7 +1247,7 @@ public partial class HelmTestSettings : HelmOptionsBase } #endregion #region HelmUpgradeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmUpgrade), Arguments = "upgrade")] public partial class HelmUpgradeSettings : HelmOptionsBase @@ -1331,7 +1327,7 @@ public partial class HelmUpgradeSettings : HelmOptionsBase } #endregion #region HelmVerifySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmVerify), Arguments = "verify")] public partial class HelmVerifySettings : HelmOptionsBase @@ -1343,7 +1339,7 @@ public partial class HelmVerifySettings : HelmOptionsBase } #endregion #region HelmVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(HelmTasks), Command = nameof(HelmTasks.HelmVersion), Arguments = "version")] public partial class HelmVersionSettings : HelmOptionsBase @@ -1392,7 +1388,7 @@ public partial class HelmOptionsBase : ToolOptions } #endregion #region HelmCompletionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmCompletionSettingsExtensions { @@ -1407,7 +1403,7 @@ public static partial class HelmCompletionSettingsExtensions } #endregion #region HelmCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmCreateSettingsExtensions { @@ -1430,7 +1426,7 @@ public static partial class HelmCreateSettingsExtensions } #endregion #region HelmDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmDeleteSettingsExtensions { @@ -1593,7 +1589,7 @@ public static partial class HelmDeleteSettingsExtensions } #endregion #region HelmDependencyBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmDependencyBuildSettingsExtensions { @@ -1633,7 +1629,7 @@ public static partial class HelmDependencyBuildSettingsExtensions } #endregion #region HelmDependencyListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmDependencyListSettingsExtensions { @@ -1648,7 +1644,7 @@ public static partial class HelmDependencyListSettingsExtensions } #endregion #region HelmDependencyUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmDependencyUpdateSettingsExtensions { @@ -1705,7 +1701,7 @@ public static partial class HelmDependencyUpdateSettingsExtensions } #endregion #region HelmFetchSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmFetchSettingsExtensions { @@ -1883,7 +1879,7 @@ public static partial class HelmFetchSettingsExtensions } #endregion #region HelmGetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmGetSettingsExtensions { @@ -1972,7 +1968,7 @@ public static partial class HelmGetSettingsExtensions } #endregion #region HelmGetHooksSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmGetHooksSettingsExtensions { @@ -2061,7 +2057,7 @@ public static partial class HelmGetHooksSettingsExtensions } #endregion #region HelmGetManifestSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmGetManifestSettingsExtensions { @@ -2150,7 +2146,7 @@ public static partial class HelmGetManifestSettingsExtensions } #endregion #region HelmGetNotesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmGetNotesSettingsExtensions { @@ -2239,7 +2235,7 @@ public static partial class HelmGetNotesSettingsExtensions } #endregion #region HelmGetValuesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmGetValuesSettingsExtensions { @@ -2353,7 +2349,7 @@ public static partial class HelmGetValuesSettingsExtensions } #endregion #region HelmHistorySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmHistorySettingsExtensions { @@ -2458,14 +2454,14 @@ public static partial class HelmHistorySettingsExtensions } #endregion #region HelmHomeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmHomeSettingsExtensions { } #endregion #region HelmInitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInitSettingsExtensions { @@ -2772,7 +2768,7 @@ public static partial class HelmInitSettingsExtensions } #endregion #region HelmInspectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInspectSettingsExtensions { @@ -2885,7 +2881,7 @@ public static partial class HelmInspectSettingsExtensions } #endregion #region HelmInspectChartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInspectChartSettingsExtensions { @@ -2998,7 +2994,7 @@ public static partial class HelmInspectChartSettingsExtensions } #endregion #region HelmInspectReadmeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInspectReadmeSettingsExtensions { @@ -3095,7 +3091,7 @@ public static partial class HelmInspectReadmeSettingsExtensions } #endregion #region HelmInspectValuesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInspectValuesSettingsExtensions { @@ -3208,7 +3204,7 @@ public static partial class HelmInspectValuesSettingsExtensions } #endregion #region HelmInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmInstallSettingsExtensions { @@ -3637,7 +3633,7 @@ public static partial class HelmInstallSettingsExtensions } #endregion #region HelmLintSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmLintSettingsExtensions { @@ -3751,7 +3747,7 @@ public static partial class HelmLintSettingsExtensions } #endregion #region HelmListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmListSettingsExtensions { @@ -4042,7 +4038,7 @@ public static partial class HelmListSettingsExtensions } #endregion #region HelmPackageSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmPackageSettingsExtensions { @@ -4163,7 +4159,7 @@ public static partial class HelmPackageSettingsExtensions } #endregion #region HelmPluginInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmPluginInstallSettingsExtensions { @@ -4209,14 +4205,14 @@ public static partial class HelmPluginInstallSettingsExtensions } #endregion #region HelmPluginListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmPluginListSettingsExtensions { } #endregion #region HelmPluginRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmPluginRemoveSettingsExtensions { @@ -4246,7 +4242,7 @@ public static partial class HelmPluginRemoveSettingsExtensions } #endregion #region HelmPluginUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmPluginUpdateSettingsExtensions { @@ -4276,7 +4272,7 @@ public static partial class HelmPluginUpdateSettingsExtensions } #endregion #region HelmRepoAddSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRepoAddSettingsExtensions { @@ -4356,7 +4352,7 @@ public static partial class HelmRepoAddSettingsExtensions } #endregion #region HelmRepoIndexSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRepoIndexSettingsExtensions { @@ -4387,14 +4383,14 @@ public static partial class HelmRepoIndexSettingsExtensions } #endregion #region HelmRepoListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRepoListSettingsExtensions { } #endregion #region HelmRepoRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRepoRemoveSettingsExtensions { @@ -4409,7 +4405,7 @@ public static partial class HelmRepoRemoveSettingsExtensions } #endregion #region HelmRepoUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRepoUpdateSettingsExtensions { @@ -4433,7 +4429,7 @@ public static partial class HelmRepoUpdateSettingsExtensions } #endregion #region HelmResetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmResetSettingsExtensions { @@ -4540,7 +4536,7 @@ public static partial class HelmResetSettingsExtensions } #endregion #region HelmRollbackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmRollbackSettingsExtensions { @@ -4730,7 +4726,7 @@ public static partial class HelmRollbackSettingsExtensions } #endregion #region HelmSearchSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmSearchSettingsExtensions { @@ -4795,7 +4791,7 @@ public static partial class HelmSearchSettingsExtensions } #endregion #region HelmServeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmServeSettingsExtensions { @@ -4826,7 +4822,7 @@ public static partial class HelmServeSettingsExtensions } #endregion #region HelmStatusSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmStatusSettingsExtensions { @@ -4923,7 +4919,7 @@ public static partial class HelmStatusSettingsExtensions } #endregion #region HelmTemplateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmTemplateSettingsExtensions { @@ -5103,7 +5099,7 @@ public static partial class HelmTemplateSettingsExtensions } #endregion #region HelmTestSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmTestSettingsExtensions { @@ -5226,7 +5222,7 @@ public static partial class HelmTestSettingsExtensions } #endregion #region HelmUpgradeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmUpgradeSettingsExtensions { @@ -5698,7 +5694,7 @@ public static partial class HelmUpgradeSettingsExtensions } #endregion #region HelmVerifySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmVerifySettingsExtensions { @@ -5721,7 +5717,7 @@ public static partial class HelmVerifySettingsExtensions } #endregion #region HelmVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class HelmVersionSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Helm/Helm.json b/src/Fallout.Application.Tools/Helm/Helm.json similarity index 100% rename from src/Fallout.Common/Tools/Helm/Helm.json rename to src/Fallout.Application.Tools/Helm/Helm.json diff --git a/src/Fallout.Common/Tools/ILRepack/ILRepack.Generated.cs b/src/Fallout.Application.Tools/ILRepack/ILRepack.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/ILRepack/ILRepack.Generated.cs rename to src/Fallout.Application.Tools/ILRepack/ILRepack.Generated.cs index 62ad73738..0e893a0cf 100644 --- a/src/Fallout.Common/Tools/ILRepack/ILRepack.Generated.cs +++ b/src/Fallout.Application.Tools/ILRepack/ILRepack.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/ILRepack/ILRepack.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.ILRepack; +namespace Fallout.Application.Tools.ILRepack; ///

ILRepack is meant at replacing ILMerge / Mono.Merge.The former being closed-source (now open-sourced), impossible to customize, slow, resource consuming and many more. The later being deprecated, unsupported, and based on an old version of Mono.Cecil.Here we're using latest (slightly modified) Cecil sources (0.9), you can find the fork here. Mono.Posix is also required (build only, it gets merged afterwards) for executable bit set on target file.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class ILRepackTasks : ToolTasks, IRequireNuGetPackage ///

ILRepack is meant at replacing ILMerge / Mono.Merge.The former being closed-source (now open-sourced), impossible to customize, slow, resource consuming and many more. The later being deprecated, unsupported, and based on an old version of Mono.Cecil.Here we're using latest (slightly modified) Cecil sources (0.9), you can find the fork here. Mono.Posix is also required (build only, it gets merged afterwards) for executable bit set on target file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <assemblies> via
  • --allowdup via
  • --allowduplicateresources via
  • --allowMultiple via
  • --attr via
  • --copyattrs via
  • --delaysign via
  • --internalize via
  • --internalize via
  • --keycontainer via
  • --keyfile via
  • --lib via
  • --log via
  • --ndebug via
  • --out via
  • --parallel via
  • --pause via
  • --renameInternalized via
  • --repackdrop:AttributeClass via
  • --target via
  • --targetplatform via
  • --union via
  • --ver via
  • --verbose via
  • --wildcards via
  • --xmldocs via
  • --zeropekind via
public static IReadOnlyCollection ILRepack(ILRepackSettings options = null) => new ILRepackTasks().Run(options); - /// + /// public static IReadOnlyCollection ILRepack(Configure configurator) => new ILRepackTasks().Run(configurator.Invoke(new ILRepackSettings())); - /// + /// public static IEnumerable<(ILRepackSettings Settings, IReadOnlyCollection Output)> ILRepack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ILRepack, degreeOfParallelism, completeOnFailure); } #region ILRepackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ILRepackTasks), Command = nameof(ILRepackTasks.ILRepack))] public partial class ILRepackSettings : ToolOptions @@ -97,7 +92,7 @@ public partial class ILRepackSettings : ToolOptions } #endregion #region ILRepackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ILRepackSettingsExtensions { diff --git a/src/Fallout.Common/Tools/ILRepack/ILRepack.json b/src/Fallout.Application.Tools/ILRepack/ILRepack.json similarity index 100% rename from src/Fallout.Common/Tools/ILRepack/ILRepack.json rename to src/Fallout.Application.Tools/ILRepack/ILRepack.json diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetup.Generated.cs b/src/Fallout.Application.Tools/InnoSetup/InnoSetup.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetup.Generated.cs rename to src/Fallout.Application.Tools/InnoSetup/InnoSetup.Generated.cs index 3199c7007..dc3e91282 100644 --- a/src/Fallout.Common/Tools/InnoSetup/InnoSetup.Generated.cs +++ b/src/Fallout.Application.Tools/InnoSetup/InnoSetup.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/InnoSetup/InnoSetup.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.InnoSetup; +namespace Fallout.Application.Tools.InnoSetup; ///

Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +23,13 @@ public partial class InnoSetupTasks : ToolTasks, IRequirePathTool ///

Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <scriptFile> via
  • /D via
  • /D via
  • /F via
  • /O via
  • /O via
  • /Q via
  • /Qp via
  • /S via
  • /V via
public static IReadOnlyCollection InnoSetup(InnoSetupSettings options = null) => new InnoSetupTasks().Run(options); - /// + /// public static IReadOnlyCollection InnoSetup(Configure configurator) => new InnoSetupTasks().Run(configurator.Invoke(new InnoSetupSettings())); - /// + /// public static IEnumerable<(InnoSetupSettings Settings, IReadOnlyCollection Output)> InnoSetup(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(InnoSetup, degreeOfParallelism, completeOnFailure); } #region InnoSetupSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(InnoSetupTasks), Command = nameof(InnoSetupTasks.InnoSetup))] public partial class InnoSetupSettings : ToolOptions @@ -62,7 +57,7 @@ public partial class InnoSetupSettings : ToolOptions } #endregion #region InnoSetupSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class InnoSetupSettingsExtensions { diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetup.json b/src/Fallout.Application.Tools/InnoSetup/InnoSetup.json similarity index 100% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetup.json rename to src/Fallout.Application.Tools/InnoSetup/InnoSetup.json diff --git a/src/Fallout.Common/Tools/InnoSetup/InnoSetupSettings.cs b/src/Fallout.Application.Tools/InnoSetup/InnoSetupSettings.cs similarity index 84% rename from src/Fallout.Common/Tools/InnoSetup/InnoSetupSettings.cs rename to src/Fallout.Application.Tools/InnoSetup/InnoSetupSettings.cs index 9e55bf1be..b18e67825 100644 --- a/src/Fallout.Common/Tools/InnoSetup/InnoSetupSettings.cs +++ b/src/Fallout.Application.Tools/InnoSetup/InnoSetupSettings.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tools.InnoSetup; +namespace Fallout.Application.Tools.InnoSetup; public partial class InnoSetupSettings { diff --git a/src/Fallout.Common/Tools/Kubernetes/Kubernetes.Generated.cs b/src/Fallout.Application.Tools/Kubernetes/Kubernetes.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Kubernetes/Kubernetes.Generated.cs rename to src/Fallout.Application.Tools/Kubernetes/Kubernetes.Generated.cs index 066b5240c..629cff212 100644 --- a/src/Fallout.Common/Tools/Kubernetes/Kubernetes.Generated.cs +++ b/src/Fallout.Application.Tools/Kubernetes/Kubernetes.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Kubernetes/Kubernetes.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Kubernetes; +namespace Fallout.Application.Tools.Kubernetes; ///

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,321 +23,321 @@ public partial class KubernetesTasks : ToolTasks, IRequirePathTool ///

Print the supported API resources on the server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --api-group via
  • --as via
  • --as-group via
  • --cache-dir via
  • --cached via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --namespaced via
  • --no-headers via
  • --output via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --verbs via
  • --vmodule via
public static IReadOnlyCollection KubernetesApiResources(KubernetesApiResourcesSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesApiResources(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesApiResourcesSettings())); - /// + /// public static IEnumerable<(KubernetesApiResourcesSettings Settings, IReadOnlyCollection Output)> KubernetesApiResources(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesApiResources, degreeOfParallelism, completeOnFailure); ///

Drain node in preparation for maintenance. The given node will be marked unschedulable to prevent new pods from arriving. 'drain' evicts the pods if the APIServer supports eviction (http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal DELETE to delete the pods. The 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through the API server). If there are DaemonSet-managed pods, drain will not proceed without --ignore-daemonsets, and regardless it will not delete any DaemonSet-managed pods, because those pods would be immediately replaced by the DaemonSet controller, which ignores unschedulable markings. If there are any pods that are neither mirror pods nor managed by ReplicationController, ReplicaSet, DaemonSet, StatefulSet or Job, then drain will not delete any pods unless you use --force. --force will also allow deletion to proceed if the managing resource of one or more pods is missing. 'drain' waits for graceful termination. You should not operate on the machine until the command completes. When you are ready to put the node back into service, use kubectl uncordon, which will make the node schedulable again. ! http://kubernetes.io/images/docs/kubectl_drain.svg.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --delete-local-data via
  • --dry-run via
  • --force via
  • --grace-period via
  • --ignore-daemonsets via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --pod-selector via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesDrain(KubernetesDrainSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesDrain(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesDrainSettings())); - /// + /// public static IEnumerable<(KubernetesDrainSettings Settings, IReadOnlyCollection Output)> KubernetesDrain(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesDrain, degreeOfParallelism, completeOnFailure); ///

Create and run a particular image, possibly replicated. Creates a deployment or job to manage the created container(s).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --attach via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --command via
  • --context via
  • --dry-run via
  • --env via
  • --expose via
  • --filename via
  • --force via
  • --generator via
  • --grace-period via
  • --hostport via
  • --image via
  • --image-pull-policy via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --labels via
  • --leave-stdin-open via
  • --limits via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --overrides via
  • --pod-running-timeout via
  • --port via
  • --quiet via
  • --record via
  • --recursive via
  • --replicas via
  • --request-timeout via
  • --requests via
  • --restart via
  • --rm via
  • --save-config via
  • --schedule via
  • --server via
  • --service-generator via
  • --service-overrides via
  • --serviceaccount via
  • --stderrthreshold via
  • --stdin via
  • --template via
  • --timeout via
  • --token via
  • --tty via
  • --user via
  • --v via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesRun(KubernetesRunSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesRun(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesRunSettings())); - /// + /// public static IEnumerable<(KubernetesRunSettings Settings, IReadOnlyCollection Output)> KubernetesRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesRun, degreeOfParallelism, completeOnFailure); ///

Display one or many resources Prints a table of the most important information about the specified resources. You can filter the list using a label selector and the --selector flag. If the desired resource type is namespaced you will only see results in your current namespace unless you pass --all-namespaces. Uninitialized objects are not shown unless --include-uninitialized is passed. By specifying the output as 'template' and providing a Go template as the value of the --template flag, you can filter the attributes of the fetched resources.Use "kubectl api-resources" for a complete list of supported resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --all-namespaces via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --chunk-size via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --export via
  • --field-selector via
  • --filename via
  • --ignore-not-found via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --label-columns via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --no-headers via
  • --output via
  • --raw via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --server-print via
  • --show-all via
  • --show-kind via
  • --show-labels via
  • --sort-by via
  • --stderrthreshold via
  • --template via
  • --token via
  • --use-openapi-print-columns via
  • --user via
  • --v via
  • --vmodule via
  • --watch via
  • --watch-only via
public static IReadOnlyCollection KubernetesGet(KubernetesGetSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesGet(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesGetSettings())); - /// + /// public static IEnumerable<(KubernetesGetSettings Settings, IReadOnlyCollection Output)> KubernetesGet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesGet, degreeOfParallelism, completeOnFailure); ///

Print the client and server version information for the current context.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --request-timeout via
  • --server via
  • --short via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesVersion(KubernetesVersionSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesVersion(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesVersionSettings())); - /// + /// public static IEnumerable<(KubernetesVersionSettings Settings, IReadOnlyCollection Output)> KubernetesVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesVersion, degreeOfParallelism, completeOnFailure); ///

Display Resource (CPU/Memory/Storage) usage. The top command allows you to see the resource consumption for nodes or pods. This command requires Heapster to be correctly configured and working on the server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesTop(KubernetesTopSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesTop(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesTopSettings())); - /// + /// public static IEnumerable<(KubernetesTopSettings Settings, IReadOnlyCollection Output)> KubernetesTop(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesTop, degreeOfParallelism, completeOnFailure); ///

Modify kubeconfig files using subcommands like "kubectl config set current-context my-context" The loading order follows these rules: 1. If the --kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takes place. 2. If $KUBECONFIG environment variable is set, then it is used a list of paths (normal path delimitting rules for your system). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When a value is created, it is created in the first file that exists. If no files in the chain exist, then it creates the last file in the list. 3. Otherwise, ${HOME}/.kube/config is used and no merging takes place.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesConfig(KubernetesConfigSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesConfig(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesConfigSettings())); - /// + /// public static IEnumerable<(KubernetesConfigSettings Settings, IReadOnlyCollection Output)> KubernetesConfig(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesConfig, degreeOfParallelism, completeOnFailure); ///

Execute a command in a container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <arguments> via
  • <podName> via
  • -- via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --container via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --pod via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --stdin via
  • --token via
  • --tty via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesExec(KubernetesExecSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesExec(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesExecSettings())); - /// + /// public static IEnumerable<(KubernetesExecSettings Settings, IReadOnlyCollection Output)> KubernetesExec(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesExec, degreeOfParallelism, completeOnFailure); ///

Perform a rolling update of the given ReplicationController. Replaces the specified replication controller with a new replication controller by updating one pod at a time to use the new PodTemplate. The new-controller.json must specify the same namespace as the existing replication controller and overwrite at least one (common) label in its replicaSelector. ! http://kubernetes.io/images/docs/kubectl_rollingupdate.svg.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --container via
  • --context via
  • --deployment-label-key via
  • --dry-run via
  • --filename via
  • --image via
  • --image-pull-policy via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --poll-interval via
  • --request-timeout via
  • --rollback via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --update-period via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
public static IReadOnlyCollection KubernetesRollingUpdate(KubernetesRollingUpdateSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesRollingUpdate(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesRollingUpdateSettings())); - /// + /// public static IEnumerable<(KubernetesRollingUpdateSettings Settings, IReadOnlyCollection Output)> KubernetesRollingUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesRollingUpdate, degreeOfParallelism, completeOnFailure); ///

Update the labels on a resource. * A label key and value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 63 characters each. * Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app * If --overwrite is true, then existing labels can be overwritten, otherwise attempting to overwrite a label will result in an error. * If --resource-version is specified, then updates will use this resource version, otherwise the existing resource-version will be used.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <labels> via
  • <typeName> via
  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --field-selector via
  • --filename via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --list via
  • --local via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --overwrite via
  • --record via
  • --recursive via
  • --request-timeout via
  • --resource-version via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesLabel(KubernetesLabelSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesLabel(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesLabelSettings())); - /// + /// public static IEnumerable<(KubernetesLabelSettings Settings, IReadOnlyCollection Output)> KubernetesLabel(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesLabel, degreeOfParallelism, completeOnFailure); ///

Update the annotations on one or more resources All Kubernetes objects support the ability to store additional data with the object as annotations. Annotations are key/value pairs that can be larger than labels and include arbitrary string values such as structured JSON. Tools and system extensions may use annotations to store their own data. Attempting to set an annotation that already exists will fail unless --overwrite is set. If --resource-version is specified and does not match the current resource version on the server the command will fail.Use "kubectl api-resources" for a complete list of supported resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <annotations> via
  • <typeName> via
  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --field-selector via
  • --filename via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --local via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --overwrite via
  • --record via
  • --recursive via
  • --request-timeout via
  • --resource-version via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesAnnotate(KubernetesAnnotateSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesAnnotate(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesAnnotateSettings())); - /// + /// public static IEnumerable<(KubernetesAnnotateSettings Settings, IReadOnlyCollection Output)> KubernetesAnnotate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesAnnotate, degreeOfParallelism, completeOnFailure); ///

Delete resources by filenames, stdin, resources and names, or by resources and label selector. JSON and YAML formats are accepted. Only one type of the arguments may be specified: filenames, resources and names, or resources and label selector. Some resources, such as pods, support graceful deletion. These resources define a default period before they are forcibly terminated (the grace period) but you may override that value with the --grace-period flag, or pass --now to set a grace-period of 1. Because these resources often represent entities in the cluster, deletion may not be acknowledged immediately. If the node hosting a pod is down or cannot reach the API server, termination may take significantly longer than the grace period. To force delete a resource, you must pass a grace period of 0 and specify the --force flag. IMPORTANT: Force deleting pods does not wait for confirmation that the pod's processes have been terminated, which can leave those processes running until the node detects the deletion and completes graceful deletion. If your processes use shared storage or talk to a remote API and depend on the name of the pod to identify themselves, force deleting those pods may result in multiple processes running on different machines using the same identification which may lead to data corruption or inconsistency. Only force delete pods when you are sure the pod is terminated, or if your application can tolerate multiple copies of the same pod running at once. Also, if you force delete pods the scheduler may place new pods on those nodes before the node has released those resources and causing those pods to be evicted immediately. Note that the delete command does NOT do resource version checks, so if someone submits an update to a resource right when you submit a delete, their update will be lost along with the rest of the resource.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --all via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --field-selector via
  • --filename via
  • --force via
  • --grace-period via
  • --ignore-not-found via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --now via
  • --output via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesDelete(KubernetesDeleteSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesDelete(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesDeleteSettings())); - /// + /// public static IEnumerable<(KubernetesDeleteSettings Settings, IReadOnlyCollection Output)> KubernetesDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesDelete, degreeOfParallelism, completeOnFailure); ///

Expose a resource as a new Kubernetes service. Looks up a deployment, service, replica set, replication controller or pod by name and uses the selector for that resource as the selector for a new service on the specified port. A deployment or replica set will be exposed as a service only if its selector is convertible to a selector that service supports, i.e. when the selector contains only the matchLabels component. Note that if no port is specified via --port and the exposed resource has multiple ports, all will be re-used by the new service. Also if no labels are specified, the new service will re-use the labels from the resource it exposes. Possible resources include (case insensitive): pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --cluster-ip via
  • --container-port via
  • --context via
  • --dry-run via
  • --external-ip via
  • --filename via
  • --generator via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --labels via
  • --load-balancer-ip via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --name via
  • --namespace via
  • --output via
  • --overrides via
  • --port via
  • --protocol via
  • --record via
  • --recursive via
  • --request-timeout via
  • --save-config via
  • --selector via
  • --server via
  • --session-affinity via
  • --stderrthreshold via
  • --target-port via
  • --template via
  • --token via
  • --type via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesExpose(KubernetesExposeSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesExpose(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesExposeSettings())); - /// + /// public static IEnumerable<(KubernetesExposeSettings Settings, IReadOnlyCollection Output)> KubernetesExpose(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesExpose, degreeOfParallelism, completeOnFailure); ///

Print the list of flags inherited by all commands.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesOptions(KubernetesOptionsSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesOptions(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesOptionsSettings())); - /// + /// public static IEnumerable<(KubernetesOptionsSettings Settings, IReadOnlyCollection Output)> KubernetesOptions(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesOptions, degreeOfParallelism, completeOnFailure); ///

Attach to a process that is already running inside an existing container.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <pod> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --container via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --pod-running-timeout via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --stdin via
  • --token via
  • --tty via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesAttach(KubernetesAttachSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesAttach(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesAttachSettings())); - /// + /// public static IEnumerable<(KubernetesAttachSettings Settings, IReadOnlyCollection Output)> KubernetesAttach(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesAttach, degreeOfParallelism, completeOnFailure); ///

Creates a proxy server or application-level gateway between localhost and the Kubernetes API Server. It also allows serving static content over specified HTTP path. All incoming data enters through one port and gets forwarded to the remote kubernetes API Server port, except for the path matching the static content path.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --accept-hosts via
  • --accept-paths via
  • --address via
  • --alsologtostderr via
  • --api-prefix via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --disable-filter via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --port via
  • --reject-methods via
  • --reject-paths via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --unix-socket via
  • --user via
  • --v via
  • --vmodule via
  • --www via
  • --www-prefix via
public static IReadOnlyCollection KubernetesProxy(KubernetesProxySettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesProxy(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesProxySettings())); - /// + /// public static IEnumerable<(KubernetesProxySettings Settings, IReadOnlyCollection Output)> KubernetesProxy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesProxy, degreeOfParallelism, completeOnFailure); ///

These commands correspond to alpha features that are not enabled in Kubernetes clusters by default.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesAlpha(KubernetesAlphaSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesAlpha(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesAlphaSettings())); - /// + /// public static IEnumerable<(KubernetesAlphaSettings Settings, IReadOnlyCollection Output)> KubernetesAlpha(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesAlpha, degreeOfParallelism, completeOnFailure); ///

kubectl controls the Kubernetes cluster manager. Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection Kubernetes(KubernetesSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection Kubernetes(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesSettings())); - /// + /// public static IEnumerable<(KubernetesSettings Settings, IReadOnlyCollection Output)> Kubernetes(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Kubernetes, degreeOfParallelism, completeOnFailure); ///

Output shell completion code for the specified shell (bash or zsh). The shell code must be evaluated to provide interactive completion of kubectl commands. This can be done by sourcing it from the .bash _profile. Detailed instructions on how to do this are available here: https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion Note for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesCompletion(KubernetesCompletionSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesCompletion(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesCompletionSettings())); - /// + /// public static IEnumerable<(KubernetesCompletionSettings Settings, IReadOnlyCollection Output)> KubernetesCompletion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesCompletion, degreeOfParallelism, completeOnFailure); ///

Update field(s) of a resource using strategic merge patch, a JSON merge patch, or a JSON patch. JSON and YAML formats are accepted. Please refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --filename via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --local via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --patch via
  • --record via
  • --recursive via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --type via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesPatch(KubernetesPatchSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesPatch(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesPatchSettings())); - /// + /// public static IEnumerable<(KubernetesPatchSettings Settings, IReadOnlyCollection Output)> KubernetesPatch(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesPatch, degreeOfParallelism, completeOnFailure); ///

Replace a resource by filename or stdin. JSON and YAML formats are accepted. If replacing an existing resource, the complete resource spec must be provided. This can be obtained by $ kubectl get TYPE NAME -o yaml Please refer to the models in https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/docs/api-reference/v1/definitions.html to find if a field is mutable.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --filename via
  • --force via
  • --grace-period via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --recursive via
  • --request-timeout via
  • --save-config via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesReplace(KubernetesReplaceSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesReplace(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesReplaceSettings())); - /// + /// public static IEnumerable<(KubernetesReplaceSettings Settings, IReadOnlyCollection Output)> KubernetesReplace(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesReplace, degreeOfParallelism, completeOnFailure); ///

Update the taints on one or more nodes. * A taint consists of a key, value, and effect. As an argument here, it is expressed as key=value:effect. * The key must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 253 characters. * Optionally, the key can begin with a DNS subdomain prefix and a single '/', like example.com/my-app * The value must begin with a letter or number, and may contain letters, numbers, hyphens, dots, and underscores, up to 63 characters. * The effect must be NoSchedule, PreferNoSchedule or NoExecute. * Currently taint can only apply to node.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <taintEffects> via
  • <typeName> via
  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --overwrite via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
public static IReadOnlyCollection KubernetesTaint(KubernetesTaintSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesTaint(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesTaintSettings())); - /// + /// public static IEnumerable<(KubernetesTaintSettings Settings, IReadOnlyCollection Output)> KubernetesTaint(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesTaint, degreeOfParallelism, completeOnFailure); ///

Show details of a specific resource or group of resources Print a detailed description of the selected resources, including related resources such as events or controllers. You may select a single object by name, all objects of that type, provide a name prefix, or label selector. For example: $ kubectl describe TYPE NAME_PREFIX will first check for an exact match on TYPE and NAME PREFIX. If no such resource exists, it will output details for every resource that has a name prefixed with NAME PREFIX.Use "kubectl api-resources" for a complete list of supported resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --all-namespaces via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --filename via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --show-events via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesDescribe(KubernetesDescribeSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesDescribe(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesDescribeSettings())); - /// + /// public static IEnumerable<(KubernetesDescribeSettings Settings, IReadOnlyCollection Output)> KubernetesDescribe(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesDescribe, degreeOfParallelism, completeOnFailure); ///

Configure application resources These commands help you make changes to existing application resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <subcommand> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesSet(KubernetesSetSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesSet(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesSetSettings())); - /// + /// public static IEnumerable<(KubernetesSetSettings Settings, IReadOnlyCollection Output)> KubernetesSet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesSet, degreeOfParallelism, completeOnFailure); ///

Inspect authorization.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <subcommand> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesAuth(KubernetesAuthSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesAuth(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesAuthSettings())); - /// + /// public static IEnumerable<(KubernetesAuthSettings Settings, IReadOnlyCollection Output)> KubernetesAuth(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesAuth, degreeOfParallelism, completeOnFailure); ///

Modify certificate resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <subcommand> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesCertificate(KubernetesCertificateSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesCertificate(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesCertificateSettings())); - /// + /// public static IEnumerable<(KubernetesCertificateSettings Settings, IReadOnlyCollection Output)> KubernetesCertificate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesCertificate, degreeOfParallelism, completeOnFailure); ///

Manage the rollout of a resource. Valid resource types include: * deployments * daemonsets * statefulsets.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <subcommand> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesRollout(KubernetesRolloutSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesRollout(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesRolloutSettings())); - /// + /// public static IEnumerable<(KubernetesRolloutSettings Settings, IReadOnlyCollection Output)> KubernetesRollout(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesRollout, degreeOfParallelism, completeOnFailure); ///

Apply a configuration to a resource by filename or stdin. The resource name must be specified. This resource will be created if it doesn't exist yet. To use 'apply', always create the resource initially with either 'apply' or 'create --save-config'. JSON and YAML formats are accepted. Alpha Disclaimer: the --prune functionality is not yet complete. Do not use unless you are aware of what the current state is. See https://issues.k8s.io/34274.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --filename via
  • --force via
  • --grace-period via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --openapi-patch via
  • --output via
  • --overwrite via
  • --prune via
  • --prune-whitelist via
  • --record via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesApply(KubernetesApplySettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesApply(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesApplySettings())); - /// + /// public static IEnumerable<(KubernetesApplySettings Settings, IReadOnlyCollection Output)> KubernetesApply(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesApply, degreeOfParallelism, completeOnFailure); ///

Apply a configuration to a resource by using kustomize. The resource name must be specified. This resource will be created if it doesn't exist yet. To use 'apply', always create the resource initially with either 'apply' or 'create --save-config'. JSON and YAML formats are accepted. Alpha Disclaimer: the --prune functionality is not yet complete. Do not use unless you are aware of what the current state is. See https://issues.k8s.io/34274.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <kustomize> via
  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --filename via
  • --force via
  • --grace-period via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --openapi-patch via
  • --output via
  • --overwrite via
  • --prune via
  • --prune-whitelist via
  • --record via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesApplyKustomize(KubernetesApplyKustomizeSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesApplyKustomize(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesApplyKustomizeSettings())); - /// + /// public static IEnumerable<(KubernetesApplyKustomizeSettings Settings, IReadOnlyCollection Output)> KubernetesApplyKustomize(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesApplyKustomize, degreeOfParallelism, completeOnFailure); ///

Mark node as unschedulable.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <node> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesCordon(KubernetesCordonSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesCordon(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesCordonSettings())); - /// + /// public static IEnumerable<(KubernetesCordonSettings Settings, IReadOnlyCollection Output)> KubernetesCordon(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesCordon, degreeOfParallelism, completeOnFailure); ///

Copy files and directories to and from containers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <destFileSpec> via
  • <srcFileSpec> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --container via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesCp(KubernetesCpSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesCp(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesCpSettings())); - /// + /// public static IEnumerable<(KubernetesCpSettings Settings, IReadOnlyCollection Output)> KubernetesCp(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesCp, degreeOfParallelism, completeOnFailure); ///

Print the supported API versions on the server, in the form of "group/version".

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesApiVersions(KubernetesApiVersionsSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesApiVersions(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesApiVersionsSettings())); - /// + /// public static IEnumerable<(KubernetesApiVersionsSettings Settings, IReadOnlyCollection Output)> KubernetesApiVersions(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesApiVersions, degreeOfParallelism, completeOnFailure); ///

Mark node as schedulable.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <node> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesUncordon(KubernetesUncordonSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesUncordon(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesUncordonSettings())); - /// + /// public static IEnumerable<(KubernetesUncordonSettings Settings, IReadOnlyCollection Output)> KubernetesUncordon(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesUncordon, degreeOfParallelism, completeOnFailure); ///

Creates an autoscaler that automatically chooses and sets the number of pods that run in a kubernetes cluster. Looks up a Deployment, ReplicaSet, or ReplicationController by name and creates an autoscaler that uses the given resource as a reference. An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --cpu-percent via
  • --dry-run via
  • --filename via
  • --generator via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --max via
  • --min via
  • --name via
  • --namespace via
  • --output via
  • --record via
  • --recursive via
  • --request-timeout via
  • --save-config via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesAutoscale(KubernetesAutoscaleSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesAutoscale(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesAutoscaleSettings())); - /// + /// public static IEnumerable<(KubernetesAutoscaleSettings Settings, IReadOnlyCollection Output)> KubernetesAutoscale(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesAutoscale, degreeOfParallelism, completeOnFailure); ///

Runs a command-line plugin. Plugins are subcommands that are not part of the major command-line distribution and can even be provided by third-parties. Please refer to the documentation and examples for more information about how to install and write your own plugins.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesPlugin(KubernetesPluginSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesPlugin(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesPluginSettings())); - /// + /// public static IEnumerable<(KubernetesPluginSettings Settings, IReadOnlyCollection Output)> KubernetesPlugin(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesPlugin, degreeOfParallelism, completeOnFailure); ///

Display addresses of the master and services with label kubernetes.io/cluster-service=true To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesClusterInfo(KubernetesClusterInfoSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesClusterInfo(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesClusterInfoSettings())); - /// + /// public static IEnumerable<(KubernetesClusterInfoSettings Settings, IReadOnlyCollection Output)> KubernetesClusterInfo(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesClusterInfo, degreeOfParallelism, completeOnFailure); ///

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all-namespaces via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --filename via
  • --for via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --recursive via
  • --request-timeout via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesWait(KubernetesWaitSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesWait(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesWaitSettings())); - /// + /// public static IEnumerable<(KubernetesWaitSettings Settings, IReadOnlyCollection Output)> KubernetesWait(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesWait, degreeOfParallelism, completeOnFailure); ///

Convert config files between different API versions. Both YAML and JSON formats are accepted. The command takes filename, directory, or URL as input, and convert it into format of version specified by --output-version flag. If target version is not specified or not supported, convert to latest version. The default output will be printed to stdout in YAML format. One can use -o option to change to output destination.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --filename via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --local via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --output-version via
  • --recursive via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
public static IReadOnlyCollection KubernetesConvert(KubernetesConvertSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesConvert(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesConvertSettings())); - /// + /// public static IEnumerable<(KubernetesConvertSettings Settings, IReadOnlyCollection Output)> KubernetesConvert(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesConvert, degreeOfParallelism, completeOnFailure); ///

Create a resource from a file or from stdin. JSON and YAML formats are accepted.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --dry-run via
  • --edit via
  • --filename via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --raw via
  • --record via
  • --recursive via
  • --request-timeout via
  • --save-config via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
  • --windows-line-endings via
public static IReadOnlyCollection KubernetesCreate(KubernetesCreateSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesCreate(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesCreateSettings())); - /// + /// public static IEnumerable<(KubernetesCreateSettings Settings, IReadOnlyCollection Output)> KubernetesCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesCreate, degreeOfParallelism, completeOnFailure); ///

Forward one or more local ports to a pod. Use resource type/name such as deployment/mydeployment to select a pod. Resource type defaults to 'pod' if omitted. If there are multiple pods matching the criteria, a pod will be selected automatically. The forwarding session ends when the selected pod terminates, and rerun of the command is needed to resume forwarding.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <ports> via
  • <typeName> via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --pod-running-timeout via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesPortForward(KubernetesPortForwardSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesPortForward(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesPortForwardSettings())); - /// + /// public static IEnumerable<(KubernetesPortForwardSettings Settings, IReadOnlyCollection Output)> KubernetesPortForward(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesPortForward, degreeOfParallelism, completeOnFailure); ///

Create and run a particular image, possibly replicated. Creates a deployment or job to manage the created container(s).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --attach via
  • --cache-dir via
  • --cascade via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --command via
  • --context via
  • --dry-run via
  • --env via
  • --expose via
  • --filename via
  • --force via
  • --generator via
  • --grace-period via
  • --hostport via
  • --image via
  • --image-pull-policy via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --labels via
  • --leave-stdin-open via
  • --limits via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --overrides via
  • --pod-running-timeout via
  • --port via
  • --quiet via
  • --record via
  • --recursive via
  • --replicas via
  • --request-timeout via
  • --requests via
  • --restart via
  • --rm via
  • --save-config via
  • --schedule via
  • --server via
  • --service-generator via
  • --service-overrides via
  • --serviceaccount via
  • --stderrthreshold via
  • --stdin via
  • --template via
  • --timeout via
  • --token via
  • --tty via
  • --user via
  • --v via
  • --vmodule via
  • --wait via
public static IReadOnlyCollection KubernetesRunContainer(KubernetesRunContainerSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesRunContainer(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesRunContainerSettings())); - /// + /// public static IEnumerable<(KubernetesRunContainerSettings Settings, IReadOnlyCollection Output)> KubernetesRunContainer(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesRunContainer, degreeOfParallelism, completeOnFailure); ///

Edit a resource from the default editor. The edit command allows you to directly edit any API resource you can retrieve via the command line tools. It will open the editor defined by your KUBE _EDITOR, or EDITOR environment variables, or fall back to 'vi' for Linux or 'notepad' for Windows. You can edit multiple objects, although changes are applied one at a time. The command accepts filenames as well as command line arguments, although the files you point to must be previously saved versions of resources. Editing is done with the API version used to fetch the resource. To edit using a specific API version, fully-qualify the resource, version, and group. The default format is YAML. To edit in JSON, specify "-o json". The flag --windows-line-endings can be used to force Windows line endings, otherwise the default for your operating system will be used. In the event an error occurs while updating, a temporary file will be created on disk that contains your unapplied changes. The most common error when updating a resource is another editor changing the resource on the server. When this occurs, you will have to apply your changes to the newer version of the resource, or update your temporary saved copy to include the latest resource version.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --filename via
  • --include-uninitialized via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --output-patch via
  • --record via
  • --recursive via
  • --request-timeout via
  • --save-config via
  • --server via
  • --stderrthreshold via
  • --template via
  • --token via
  • --user via
  • --v via
  • --validate via
  • --vmodule via
  • --windows-line-endings via
public static IReadOnlyCollection KubernetesEdit(KubernetesEditSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesEdit(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesEditSettings())); - /// + /// public static IEnumerable<(KubernetesEditSettings Settings, IReadOnlyCollection Output)> KubernetesEdit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesEdit, degreeOfParallelism, completeOnFailure); ///

Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet. Scale also allows users to specify one or more preconditions for the scale action. If --current-replicas or --resource-version is specified, it is validated before the scale is attempted, and it is guaranteed that the precondition holds true when the scale is sent to the server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --allow-missing-template-keys via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --current-replicas via
  • --filename via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --output via
  • --record via
  • --recursive via
  • --replicas via
  • --request-timeout via
  • --resource-version via
  • --selector via
  • --server via
  • --stderrthreshold via
  • --template via
  • --timeout via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesScale(KubernetesScaleSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesScale(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesScaleSettings())); - /// + /// public static IEnumerable<(KubernetesScaleSettings Settings, IReadOnlyCollection Output)> KubernetesScale(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesScale, degreeOfParallelism, completeOnFailure); ///

List the fields for supported resources This command describes the fields associated with each supported API resource. Fields are identified via a simple JSONPath identifier: <type>.<fieldName>[.<fieldName>] Add the --recursive flag to display all of the fields at once without descriptions. Information about each field is retrieved from the server in OpenAPI format.Use "kubectl api-resources" for a complete list of supported resources.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <resource> via
  • --alsologtostderr via
  • --api-version via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --context via
  • --insecure-skip-tls-verify via
  • --kubeconfig via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --recursive via
  • --request-timeout via
  • --server via
  • --stderrthreshold via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesExplain(KubernetesExplainSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesExplain(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesExplainSettings())); - /// + /// public static IEnumerable<(KubernetesExplainSettings Settings, IReadOnlyCollection Output)> KubernetesExplain(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesExplain, degreeOfParallelism, completeOnFailure); ///

Print the logs for a container in a pod or specified resource. If the pod has only one container, the container name is optional.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <typeName> via
  • --all-containers via
  • --alsologtostderr via
  • --as via
  • --as-group via
  • --cache-dir via
  • --certificate-authority via
  • --client-certificate via
  • --client-key via
  • --cluster via
  • --container via
  • --context via
  • --follow via
  • --insecure-skip-tls-verify via
  • --interactive via
  • --kubeconfig via
  • --limit-bytes via
  • --log-backtrace-at via
  • --log-dir via
  • --logtostderr via
  • --match-server-version via
  • --namespace via
  • --pod-running-timeout via
  • --previous via
  • --request-timeout via
  • --selector via
  • --server via
  • --since via
  • --since-time via
  • --stderrthreshold via
  • --tail via
  • --timestamps via
  • --token via
  • --user via
  • --v via
  • --vmodule via
public static IReadOnlyCollection KubernetesLogs(KubernetesLogsSettings options = null) => new KubernetesTasks().Run(options); - /// + /// public static IReadOnlyCollection KubernetesLogs(Configure configurator) => new KubernetesTasks().Run(configurator.Invoke(new KubernetesLogsSettings())); - /// + /// public static IEnumerable<(KubernetesLogsSettings Settings, IReadOnlyCollection Output)> KubernetesLogs(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(KubernetesLogs, degreeOfParallelism, completeOnFailure); } #region KubernetesApiResourcesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesApiResources), Arguments = "api-resources")] public partial class KubernetesApiResourcesSettings : KubernetesOptionsBase @@ -362,7 +357,7 @@ public partial class KubernetesApiResourcesSettings : KubernetesOptionsBase } #endregion #region KubernetesDrainSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesDrain), Arguments = "drain")] public partial class KubernetesDrainSettings : KubernetesOptionsBase @@ -386,7 +381,7 @@ public partial class KubernetesDrainSettings : KubernetesOptionsBase } #endregion #region KubernetesRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesRun), Arguments = "run")] public partial class KubernetesRunSettings : KubernetesOptionsBase @@ -472,7 +467,7 @@ public partial class KubernetesRunSettings : KubernetesOptionsBase } #endregion #region KubernetesGetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesGet), Arguments = "get")] public partial class KubernetesGetSettings : KubernetesOptionsBase @@ -528,7 +523,7 @@ public partial class KubernetesGetSettings : KubernetesOptionsBase } #endregion #region KubernetesVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesVersion), Arguments = "version")] public partial class KubernetesVersionSettings : KubernetesOptionsBase @@ -542,7 +537,7 @@ public partial class KubernetesVersionSettings : KubernetesOptionsBase } #endregion #region KubernetesTopSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesTop), Arguments = "top")] public partial class KubernetesTopSettings : KubernetesOptionsBase @@ -550,7 +545,7 @@ public partial class KubernetesTopSettings : KubernetesOptionsBase } #endregion #region KubernetesConfigSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesConfig), Arguments = "config")] public partial class KubernetesConfigSettings : KubernetesOptionsBase @@ -558,7 +553,7 @@ public partial class KubernetesConfigSettings : KubernetesOptionsBase } #endregion #region KubernetesExecSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesExec), Arguments = "exec")] public partial class KubernetesExecSettings : KubernetesOptionsBase @@ -580,7 +575,7 @@ public partial class KubernetesExecSettings : KubernetesOptionsBase } #endregion #region KubernetesRollingUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesRollingUpdate), Arguments = "rolling-update")] public partial class KubernetesRollingUpdateSettings : KubernetesOptionsBase @@ -616,7 +611,7 @@ public partial class KubernetesRollingUpdateSettings : KubernetesOptionsBase } #endregion #region KubernetesLabelSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesLabel), Arguments = "label")] public partial class KubernetesLabelSettings : KubernetesOptionsBase @@ -658,7 +653,7 @@ public partial class KubernetesLabelSettings : KubernetesOptionsBase } #endregion #region KubernetesAnnotateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesAnnotate), Arguments = "annotate")] public partial class KubernetesAnnotateSettings : KubernetesOptionsBase @@ -698,7 +693,7 @@ public partial class KubernetesAnnotateSettings : KubernetesOptionsBase } #endregion #region KubernetesDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesDelete), Arguments = "delete")] public partial class KubernetesDeleteSettings : KubernetesOptionsBase @@ -736,7 +731,7 @@ public partial class KubernetesDeleteSettings : KubernetesOptionsBase } #endregion #region KubernetesExposeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesExpose), Arguments = "expose")] public partial class KubernetesExposeSettings : KubernetesOptionsBase @@ -788,7 +783,7 @@ public partial class KubernetesExposeSettings : KubernetesOptionsBase } #endregion #region KubernetesOptionsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesOptions), Arguments = "options")] public partial class KubernetesOptionsSettings : KubernetesOptionsBase @@ -796,7 +791,7 @@ public partial class KubernetesOptionsSettings : KubernetesOptionsBase } #endregion #region KubernetesAttachSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesAttach), Arguments = "attach")] public partial class KubernetesAttachSettings : KubernetesOptionsBase @@ -814,7 +809,7 @@ public partial class KubernetesAttachSettings : KubernetesOptionsBase } #endregion #region KubernetesProxySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesProxy), Arguments = "proxy")] public partial class KubernetesProxySettings : KubernetesOptionsBase @@ -844,7 +839,7 @@ public partial class KubernetesProxySettings : KubernetesOptionsBase } #endregion #region KubernetesAlphaSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesAlpha), Arguments = "alpha")] public partial class KubernetesAlphaSettings : KubernetesOptionsBase @@ -852,7 +847,7 @@ public partial class KubernetesAlphaSettings : KubernetesOptionsBase } #endregion #region KubernetesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.Kubernetes), Arguments = "kubectl")] public partial class KubernetesSettings : KubernetesOptionsBase @@ -860,7 +855,7 @@ public partial class KubernetesSettings : KubernetesOptionsBase } #endregion #region KubernetesCompletionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesCompletion), Arguments = "completion")] public partial class KubernetesCompletionSettings : KubernetesOptionsBase @@ -868,7 +863,7 @@ public partial class KubernetesCompletionSettings : KubernetesOptionsBase } #endregion #region KubernetesPatchSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesPatch), Arguments = "patch")] public partial class KubernetesPatchSettings : KubernetesOptionsBase @@ -898,7 +893,7 @@ public partial class KubernetesPatchSettings : KubernetesOptionsBase } #endregion #region KubernetesReplaceSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesReplace), Arguments = "replace")] public partial class KubernetesReplaceSettings : KubernetesOptionsBase @@ -930,7 +925,7 @@ public partial class KubernetesReplaceSettings : KubernetesOptionsBase } #endregion #region KubernetesTaintSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesTaint), Arguments = "taint")] public partial class KubernetesTaintSettings : KubernetesOptionsBase @@ -956,7 +951,7 @@ public partial class KubernetesTaintSettings : KubernetesOptionsBase } #endregion #region KubernetesDescribeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesDescribe), Arguments = "describe")] public partial class KubernetesDescribeSettings : KubernetesOptionsBase @@ -978,7 +973,7 @@ public partial class KubernetesDescribeSettings : KubernetesOptionsBase } #endregion #region KubernetesSetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesSet), Arguments = "set")] public partial class KubernetesSetSettings : KubernetesOptionsBase @@ -988,7 +983,7 @@ public partial class KubernetesSetSettings : KubernetesOptionsBase } #endregion #region KubernetesAuthSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesAuth), Arguments = "auth")] public partial class KubernetesAuthSettings : KubernetesOptionsBase @@ -998,7 +993,7 @@ public partial class KubernetesAuthSettings : KubernetesOptionsBase } #endregion #region KubernetesCertificateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesCertificate), Arguments = "certificate")] public partial class KubernetesCertificateSettings : KubernetesOptionsBase @@ -1008,7 +1003,7 @@ public partial class KubernetesCertificateSettings : KubernetesOptionsBase } #endregion #region KubernetesRolloutSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesRollout), Arguments = "rollout")] public partial class KubernetesRolloutSettings : KubernetesOptionsBase @@ -1018,7 +1013,7 @@ public partial class KubernetesRolloutSettings : KubernetesOptionsBase } #endregion #region KubernetesApplySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesApply), Arguments = "apply")] public partial class KubernetesApplySettings : KubernetesOptionsBase @@ -1066,7 +1061,7 @@ public partial class KubernetesApplySettings : KubernetesOptionsBase } #endregion #region KubernetesApplyKustomizeSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesApplyKustomize), Arguments = "apply -k")] public partial class KubernetesApplyKustomizeSettings : KubernetesOptionsBase @@ -1116,7 +1111,7 @@ public partial class KubernetesApplyKustomizeSettings : KubernetesOptionsBase } #endregion #region KubernetesCordonSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesCordon), Arguments = "cordon")] public partial class KubernetesCordonSettings : KubernetesOptionsBase @@ -1130,7 +1125,7 @@ public partial class KubernetesCordonSettings : KubernetesOptionsBase } #endregion #region KubernetesCpSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesCp), Arguments = "cp")] public partial class KubernetesCpSettings : KubernetesOptionsBase @@ -1144,7 +1139,7 @@ public partial class KubernetesCpSettings : KubernetesOptionsBase } #endregion #region KubernetesApiVersionsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesApiVersions), Arguments = "api-versions")] public partial class KubernetesApiVersionsSettings : KubernetesOptionsBase @@ -1152,7 +1147,7 @@ public partial class KubernetesApiVersionsSettings : KubernetesOptionsBase } #endregion #region KubernetesUncordonSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesUncordon), Arguments = "uncordon")] public partial class KubernetesUncordonSettings : KubernetesOptionsBase @@ -1166,7 +1161,7 @@ public partial class KubernetesUncordonSettings : KubernetesOptionsBase } #endregion #region KubernetesAutoscaleSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesAutoscale), Arguments = "autoscale")] public partial class KubernetesAutoscaleSettings : KubernetesOptionsBase @@ -1200,7 +1195,7 @@ public partial class KubernetesAutoscaleSettings : KubernetesOptionsBase } #endregion #region KubernetesPluginSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesPlugin), Arguments = "plugin")] public partial class KubernetesPluginSettings : KubernetesOptionsBase @@ -1210,7 +1205,7 @@ public partial class KubernetesPluginSettings : KubernetesOptionsBase } #endregion #region KubernetesClusterInfoSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesClusterInfo), Arguments = "cluster-info")] public partial class KubernetesClusterInfoSettings : KubernetesOptionsBase @@ -1218,7 +1213,7 @@ public partial class KubernetesClusterInfoSettings : KubernetesOptionsBase } #endregion #region KubernetesWaitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesWait), Arguments = "wait")] public partial class KubernetesWaitSettings : KubernetesOptionsBase @@ -1244,7 +1239,7 @@ public partial class KubernetesWaitSettings : KubernetesOptionsBase } #endregion #region KubernetesConvertSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesConvert), Arguments = "convert")] public partial class KubernetesConvertSettings : KubernetesOptionsBase @@ -1268,7 +1263,7 @@ public partial class KubernetesConvertSettings : KubernetesOptionsBase } #endregion #region KubernetesCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesCreate), Arguments = "create")] public partial class KubernetesCreateSettings : KubernetesOptionsBase @@ -1304,7 +1299,7 @@ public partial class KubernetesCreateSettings : KubernetesOptionsBase } #endregion #region KubernetesPortForwardSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesPortForward), Arguments = "port-forward")] public partial class KubernetesPortForwardSettings : KubernetesOptionsBase @@ -1318,7 +1313,7 @@ public partial class KubernetesPortForwardSettings : KubernetesOptionsBase } #endregion #region KubernetesRunContainerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesRunContainer), Arguments = "run-container")] public partial class KubernetesRunContainerSettings : KubernetesOptionsBase @@ -1402,7 +1397,7 @@ public partial class KubernetesRunContainerSettings : KubernetesOptionsBase } #endregion #region KubernetesEditSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesEdit), Arguments = "edit")] public partial class KubernetesEditSettings : KubernetesOptionsBase @@ -1434,7 +1429,7 @@ public partial class KubernetesEditSettings : KubernetesOptionsBase } #endregion #region KubernetesScaleSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesScale), Arguments = "scale")] public partial class KubernetesScaleSettings : KubernetesOptionsBase @@ -1466,7 +1461,7 @@ public partial class KubernetesScaleSettings : KubernetesOptionsBase } #endregion #region KubernetesExplainSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesExplain), Arguments = "explain")] public partial class KubernetesExplainSettings : KubernetesOptionsBase @@ -1480,7 +1475,7 @@ public partial class KubernetesExplainSettings : KubernetesOptionsBase } #endregion #region KubernetesLogsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(KubernetesTasks), Command = nameof(KubernetesTasks.KubernetesLogs), Arguments = "logs")] public partial class KubernetesLogsSettings : KubernetesOptionsBase @@ -1567,7 +1562,7 @@ public partial class KubernetesOptionsBase : ToolOptions } #endregion #region KubernetesApiResourcesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesApiResourcesSettingsExtensions { @@ -1664,7 +1659,7 @@ public static partial class KubernetesApiResourcesSettingsExtensions } #endregion #region KubernetesDrainSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesDrainSettingsExtensions { @@ -1771,7 +1766,7 @@ public static partial class KubernetesDrainSettingsExtensions } #endregion #region KubernetesRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesRunSettingsExtensions { @@ -2264,7 +2259,7 @@ public static partial class KubernetesRunSettingsExtensions } #endregion #region KubernetesGetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesGetSettingsExtensions { @@ -2634,7 +2629,7 @@ public static partial class KubernetesGetSettingsExtensions } #endregion #region KubernetesVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesVersionSettingsExtensions { @@ -2683,21 +2678,21 @@ public static partial class KubernetesVersionSettingsExtensions } #endregion #region KubernetesTopSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesTopSettingsExtensions { } #endregion #region KubernetesConfigSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesConfigSettingsExtensions { } #endregion #region KubernetesExecSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesExecSettingsExtensions { @@ -2793,7 +2788,7 @@ public static partial class KubernetesExecSettingsExtensions } #endregion #region KubernetesRollingUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesRollingUpdateSettingsExtensions { @@ -2963,7 +2958,7 @@ public static partial class KubernetesRollingUpdateSettingsExtensions } #endregion #region KubernetesLabelSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesLabelSettingsExtensions { @@ -3226,7 +3221,7 @@ public static partial class KubernetesLabelSettingsExtensions } #endregion #region KubernetesAnnotateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesAnnotateSettingsExtensions { @@ -3472,7 +3467,7 @@ public static partial class KubernetesAnnotateSettingsExtensions } #endregion #region KubernetesDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesDeleteSettingsExtensions { @@ -3701,7 +3696,7 @@ public static partial class KubernetesDeleteSettingsExtensions } #endregion #region KubernetesExposeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesExposeSettingsExtensions { @@ -3944,14 +3939,14 @@ public static partial class KubernetesExposeSettingsExtensions } #endregion #region KubernetesOptionsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesOptionsSettingsExtensions { } #endregion #region KubernetesAttachSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesAttachSettingsExtensions { @@ -4031,7 +4026,7 @@ public static partial class KubernetesAttachSettingsExtensions } #endregion #region KubernetesProxySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesProxySettingsExtensions { @@ -4135,28 +4130,28 @@ public static partial class KubernetesProxySettingsExtensions } #endregion #region KubernetesAlphaSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesAlphaSettingsExtensions { } #endregion #region KubernetesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesSettingsExtensions { } #endregion #region KubernetesCompletionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesCompletionSettingsExtensions { } #endregion #region KubernetesPatchSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesPatchSettingsExtensions { @@ -4326,7 +4321,7 @@ public static partial class KubernetesPatchSettingsExtensions } #endregion #region KubernetesReplaceSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesReplaceSettingsExtensions { @@ -4507,7 +4502,7 @@ public static partial class KubernetesReplaceSettingsExtensions } #endregion #region KubernetesTaintSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesTaintSettingsExtensions { @@ -4646,7 +4641,7 @@ public static partial class KubernetesTaintSettingsExtensions } #endregion #region KubernetesDescribeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesDescribeSettingsExtensions { @@ -4775,7 +4770,7 @@ public static partial class KubernetesDescribeSettingsExtensions } #endregion #region KubernetesSetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesSetSettingsExtensions { @@ -4805,7 +4800,7 @@ public static partial class KubernetesSetSettingsExtensions } #endregion #region KubernetesAuthSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesAuthSettingsExtensions { @@ -4820,7 +4815,7 @@ public static partial class KubernetesAuthSettingsExtensions } #endregion #region KubernetesCertificateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesCertificateSettingsExtensions { @@ -4850,7 +4845,7 @@ public static partial class KubernetesCertificateSettingsExtensions } #endregion #region KubernetesRolloutSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesRolloutSettingsExtensions { @@ -4880,7 +4875,7 @@ public static partial class KubernetesRolloutSettingsExtensions } #endregion #region KubernetesApplySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesApplySettingsExtensions { @@ -5194,7 +5189,7 @@ public static partial class KubernetesApplySettingsExtensions } #endregion #region KubernetesApplyKustomizeSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesApplyKustomizeSettingsExtensions { @@ -5516,7 +5511,7 @@ public static partial class KubernetesApplyKustomizeSettingsExtensions } #endregion #region KubernetesCordonSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesCordonSettingsExtensions { @@ -5556,7 +5551,7 @@ public static partial class KubernetesCordonSettingsExtensions } #endregion #region KubernetesCpSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesCpSettingsExtensions { @@ -5587,14 +5582,14 @@ public static partial class KubernetesCpSettingsExtensions } #endregion #region KubernetesApiVersionsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesApiVersionsSettingsExtensions { } #endregion #region KubernetesUncordonSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesUncordonSettingsExtensions { @@ -5634,7 +5629,7 @@ public static partial class KubernetesUncordonSettingsExtensions } #endregion #region KubernetesAutoscaleSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesAutoscaleSettingsExtensions { @@ -5805,7 +5800,7 @@ public static partial class KubernetesAutoscaleSettingsExtensions } #endregion #region KubernetesPluginSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesPluginSettingsExtensions { @@ -5820,14 +5815,14 @@ public static partial class KubernetesPluginSettingsExtensions } #endregion #region KubernetesClusterInfoSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesClusterInfoSettingsExtensions { } #endregion #region KubernetesWaitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesWaitSettingsExtensions { @@ -5948,7 +5943,7 @@ public static partial class KubernetesWaitSettingsExtensions } #endregion #region KubernetesConvertSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesConvertSettingsExtensions { @@ -6070,7 +6065,7 @@ public static partial class KubernetesConvertSettingsExtensions } #endregion #region KubernetesCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesCreateSettingsExtensions { @@ -6291,7 +6286,7 @@ public static partial class KubernetesCreateSettingsExtensions } #endregion #region KubernetesPortForwardSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesPortForwardSettingsExtensions { @@ -6346,7 +6341,7 @@ public static partial class KubernetesPortForwardSettingsExtensions } #endregion #region KubernetesRunContainerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesRunContainerSettingsExtensions { @@ -6831,7 +6826,7 @@ public static partial class KubernetesRunContainerSettingsExtensions } #endregion #region KubernetesEditSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesEditSettingsExtensions { @@ -7036,7 +7031,7 @@ public static partial class KubernetesEditSettingsExtensions } #endregion #region KubernetesScaleSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesScaleSettingsExtensions { @@ -7190,7 +7185,7 @@ public static partial class KubernetesScaleSettingsExtensions } #endregion #region KubernetesExplainSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesExplainSettingsExtensions { @@ -7245,7 +7240,7 @@ public static partial class KubernetesExplainSettingsExtensions } #endregion #region KubernetesLogsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class KubernetesLogsSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Kubernetes/Kubernetes.json b/src/Fallout.Application.Tools/Kubernetes/Kubernetes.json similarity index 100% rename from src/Fallout.Common/Tools/Kubernetes/Kubernetes.json rename to src/Fallout.Application.Tools/Kubernetes/Kubernetes.json diff --git a/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs b/src/Fallout.Application.Tools/LatestGitHubReleaseAttribute.cs similarity index 88% rename from src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs rename to src/Fallout.Application.Tools/LatestGitHubReleaseAttribute.cs index 5149b0cfb..cb618ce47 100644 --- a/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs +++ b/src/Fallout.Application.Tools/LatestGitHubReleaseAttribute.cs @@ -1,14 +1,14 @@ -using System; +using System; using System.Linq; using System.Reflection; using System.Text.RegularExpressions; using NuGet.Versioning; -using Fallout.Common.Git; -using Fallout.Common.Tools.GitHub; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application.Git; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LatestGitHubReleaseAttribute : ValueInjectionAttributeBase { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuild.Generated.cs b/src/Fallout.Application.Tools/MSBuild/MSBuild.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/MSBuild/MSBuild.Generated.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuild.Generated.cs index 62315f2be..18955bda8 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuild.Generated.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuild.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/MSBuild/MSBuild.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; ///

The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but it doesn't depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed. Visual Studio uses MSBuild to load and build managed projects. The project files in Visual Studio (.csproj,.vbproj, vcxproj, and others) contain MSBuild XML code that executes when you build a project by using the IDE. Visual Studio projects import all the necessary settings and build processes to do typical development work, but you can extend or modify them from within Visual Studio or by using an XML editor.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -26,13 +21,13 @@ public partial class MSBuildTasks : ToolTasks ///

The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but it doesn't depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed. Visual Studio uses MSBuild to load and build managed projects. The project files in Visual Studio (.csproj,.vbproj, vcxproj, and others) contain MSBuild XML code that executes when you build a project by using the IDE. Visual Studio projects import all the necessary settings and build processes to do typical development work, but you can extend or modify them from within Visual Studio or by using an XML editor.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • /detailedsummary via
  • /logger via
  • /maxcpucount via
  • /noconsolelogger via
  • /nodeReuse via
  • /nologo via
  • /p via
  • /p:Platform via
  • /restore via
  • /target via
  • /toolsversion via
  • /verbosity via
public static IReadOnlyCollection MSBuild(MSBuildSettings options = null) => new MSBuildTasks().Run(options); - /// + /// public static IReadOnlyCollection MSBuild(Configure configurator) => new MSBuildTasks().Run(configurator.Invoke(new MSBuildSettings())); - /// + /// public static IEnumerable<(MSBuildSettings Settings, IReadOnlyCollection Output)> MSBuild(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MSBuild, degreeOfParallelism, completeOnFailure); } #region MSBuildSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MSBuildTasks), Command = nameof(MSBuildTasks.MSBuild))] public partial class MSBuildSettings : ToolOptions @@ -70,7 +65,7 @@ public partial class MSBuildSettings : ToolOptions } #endregion #region MSBuildSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MSBuildSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuild.json b/src/Fallout.Application.Tools/MSBuild/MSBuild.json similarity index 100% rename from src/Fallout.Common/Tools/MSBuild/MSBuild.json rename to src/Fallout.Application.Tools/MSBuild/MSBuild.json diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildPlatform.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildPlatform.cs similarity index 96% rename from src/Fallout.Common/Tools/MSBuild/MSBuildPlatform.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildPlatform.cs index 05f0b0e01..b333c347d 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildPlatform.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildPlatform.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; /// ///

The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but it doesn't depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed. Visual Studio uses MSBuild to load and build managed projects. The project files in Visual Studio (.csproj,.vbproj, vcxproj, and others) contain MSBuild XML code that executes when you build a project by using the IDE. Visual Studio projects import all the necessary settings and build processes to do typical development work, but you can extend or modify them from within Visual Studio or by using an XML editor.

diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildProject.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildProject.cs similarity index 93% rename from src/Fallout.Common/Tools/MSBuild/MSBuildProject.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildProject.cs index 049307af1..6024c584f 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildProject.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildProject.cs @@ -3,7 +3,7 @@ using System.Dynamic; using System.Linq; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; public class MSBuildProject : DynamicObject { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildSettingsExtensions.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildSettingsExtensions.cs similarity index 93% rename from src/Fallout.Common/Tools/MSBuild/MSBuildSettingsExtensions.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildSettingsExtensions.cs index 4daa75529..b2cdccf6c 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildSettingsExtensions.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildSettingsExtensions.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; public static partial class MSBuildSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildTasks.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildTasks.cs similarity index 94% rename from src/Fallout.Common/Tools/MSBuild/MSBuildTasks.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildTasks.cs index 09bad0fa1..7c50d6fd8 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildTasks.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildTasks.cs @@ -1,10 +1,10 @@ using System; using System.Linq; using System.Reflection; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; public class MSBuildVerbosityMappingAttribute : VerbosityMappingAttribute { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildToolPathResolver.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildToolPathResolver.cs similarity index 98% rename from src/Fallout.Common/Tools/MSBuild/MSBuildToolPathResolver.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildToolPathResolver.cs index d547b3063..b4d63cdca 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildToolPathResolver.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildToolPathResolver.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; public static class MSBuildToolPathResolver { diff --git a/src/Fallout.Common/Tools/MSBuild/MSBuildVersion.cs b/src/Fallout.Application.Tools/MSBuild/MSBuildVersion.cs similarity index 96% rename from src/Fallout.Common/Tools/MSBuild/MSBuildVersion.cs rename to src/Fallout.Application.Tools/MSBuild/MSBuildVersion.cs index 532859952..3dafba5e7 100644 --- a/src/Fallout.Common/Tools/MSBuild/MSBuildVersion.cs +++ b/src/Fallout.Application.Tools/MSBuild/MSBuildVersion.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Tools.MSBuild; +namespace Fallout.Application.Tools.MSBuild; /// ///

The Microsoft Build Engine is a platform for building applications. This engine, which is also known as MSBuild, provides an XML schema for a project file that controls how the build platform processes and builds software. Visual Studio uses MSBuild, but it doesn't depend on Visual Studio. By invoking msbuild.exe on your project or solution file, you can orchestrate and build products in environments where Visual Studio isn't installed. Visual Studio uses MSBuild to load and build managed projects. The project files in Visual Studio (.csproj,.vbproj, vcxproj, and others) contain MSBuild XML code that executes when you build a project by using the IDE. Visual Studio projects import all the necessary settings and build processes to do typical development work, but you can extend or modify them from within Visual Studio or by using an XML editor.

diff --git a/src/Fallout.Common/Tools/MSpec/MSpec.Generated.cs b/src/Fallout.Application.Tools/MSpec/MSpec.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/MSpec/MSpec.Generated.cs rename to src/Fallout.Application.Tools/MSpec/MSpec.Generated.cs index 4f1e524a1..39d869270 100644 --- a/src/Fallout.Common/Tools/MSpec/MSpec.Generated.cs +++ b/src/Fallout.Application.Tools/MSpec/MSpec.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/MSpec/MSpec.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MSpec; +namespace Fallout.Application.Tools.MSpec; ///

MSpec is called a 'context/specification' test framework because of the 'grammar' that is used in describing and coding the tests or 'specs'.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +23,13 @@ public partial class MSpecTasks : ToolTasks, IRequireNuGetPackage ///

MSpec is called a 'context/specification' test framework because of the 'grammar' that is used in describing and coding the tests or 'specs'.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <assemblies> via
  • --appveyor via
  • --html via
  • --no-appveyor-autodetect via
  • --no-color via
  • --no-teamcity-autodetect via
  • --progress via
  • --silent via
  • --teamcity via
  • --timeinfo via
  • --xml via
  • -exclude via
  • -filters via
  • -include via
public static IReadOnlyCollection MSpec(MSpecSettings options = null) => new MSpecTasks().Run(options); - /// + /// public static IReadOnlyCollection MSpec(Configure configurator) => new MSpecTasks().Run(configurator.Invoke(new MSpecSettings())); - /// + /// public static IEnumerable<(MSpecSettings Settings, IReadOnlyCollection Output)> MSpec(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MSpec, degreeOfParallelism, completeOnFailure); } #region MSpecSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MSpecTasks), Command = nameof(MSpecTasks.MSpec))] public partial class MSpecSettings : ToolOptions @@ -70,7 +65,7 @@ public partial class MSpecSettings : ToolOptions } #endregion #region MSpecSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MSpecSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MSpec/MSpec.json b/src/Fallout.Application.Tools/MSpec/MSpec.json similarity index 100% rename from src/Fallout.Common/Tools/MSpec/MSpec.json rename to src/Fallout.Application.Tools/MSpec/MSpec.json diff --git a/src/Fallout.Common/Tools/MSpec/MSpecTasks.cs b/src/Fallout.Application.Tools/MSpec/MSpecTasks.cs similarity index 57% rename from src/Fallout.Common/Tools/MSpec/MSpecTasks.cs rename to src/Fallout.Application.Tools/MSpec/MSpecTasks.cs index 6f4b05689..4e27830cb 100644 --- a/src/Fallout.Common/Tools/MSpec/MSpecTasks.cs +++ b/src/Fallout.Application.Tools/MSpec/MSpecTasks.cs @@ -1,14 +1,15 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.MSpec; +namespace Fallout.Application.Tools.MSpec; partial class MSpecTasks { protected override string GetToolPath(ToolOptions options = null) { - return NuGetToolPathResolver.GetPackageExecutable( + return ToolingServices.ToolPaths.GetPackageExecutable( PackageId, EnvironmentInfo.Is64Bit ? "mspec-clr4.exe" : "mspec-x86-clr4.exe"); } diff --git a/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.Generated.cs b/src/Fallout.Application.Tools/MakeNsis/MakeNSIS.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/MakeNsis/MakeNSIS.Generated.cs rename to src/Fallout.Application.Tools/MakeNsis/MakeNSIS.Generated.cs index e3209c7e5..7098232b4 100644 --- a/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.Generated.cs +++ b/src/Fallout.Application.Tools/MakeNsis/MakeNSIS.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MakeNSIS; +namespace Fallout.Application.Tools.MakeNSIS; ///

NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because it's based on script files you can fully control every part of your installer.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +23,13 @@ public partial class MakeNSISTasks : ToolTasks, IRequirePathTool ///

NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because it's based on script files you can fully control every part of your installer.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <scriptFile> via
  • /D via
  • /INPUTCHARSET via
  • /NOCD via
  • /NOCONFIG via
  • /O via
  • /OUTPUTCHARSET via
  • /P via
  • /PPO via
  • /SAFEPPO via
  • /V via
  • /WX via
  • /X via
  • /X via
public static IReadOnlyCollection MakeNSIS(MakeNSISSettings options = null) => new MakeNSISTasks().Run(options); - /// + /// public static IReadOnlyCollection MakeNSIS(Configure configurator) => new MakeNSISTasks().Run(configurator.Invoke(new MakeNSISSettings())); - /// + /// public static IEnumerable<(MakeNSISSettings Settings, IReadOnlyCollection Output)> MakeNSIS(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MakeNSIS, degreeOfParallelism, completeOnFailure); } #region MakeNSISSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MakeNSISTasks), Command = nameof(MakeNSISTasks.MakeNSIS))] public partial class MakeNSISSettings : ToolOptions @@ -70,7 +65,7 @@ public partial class MakeNSISSettings : ToolOptions } #endregion #region MakeNSISSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MakeNSISSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MakeNsis/MakeNSIS.json b/src/Fallout.Application.Tools/MakeNsis/MakeNSIS.json similarity index 100% rename from src/Fallout.Common/Tools/MakeNsis/MakeNSIS.json rename to src/Fallout.Application.Tools/MakeNsis/MakeNSIS.json diff --git a/src/Fallout.Common/Tools/Mastodon/Mastodon.Generated.cs b/src/Fallout.Application.Tools/Mastodon/Mastodon.Generated.cs similarity index 92% rename from src/Fallout.Common/Tools/Mastodon/Mastodon.Generated.cs rename to src/Fallout.Application.Tools/Mastodon/Mastodon.Generated.cs index 5fd158545..af9e1dba6 100644 --- a/src/Fallout.Common/Tools/Mastodon/Mastodon.Generated.cs +++ b/src/Fallout.Application.Tools/Mastodon/Mastodon.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Mastodon/Mastodon.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Mastodon; +namespace Fallout.Application.Tools.Mastodon; #region MastodonStatus /// Used within . diff --git a/src/Fallout.Common/Tools/Mastodon/Mastodon.json b/src/Fallout.Application.Tools/Mastodon/Mastodon.json similarity index 100% rename from src/Fallout.Common/Tools/Mastodon/Mastodon.json rename to src/Fallout.Application.Tools/Mastodon/Mastodon.json diff --git a/src/Fallout.Common/Tools/Mastodon/MastodonTasks.cs b/src/Fallout.Application.Tools/Mastodon/MastodonTasks.cs similarity index 92% rename from src/Fallout.Common/Tools/Mastodon/MastodonTasks.cs rename to src/Fallout.Application.Tools/Mastodon/MastodonTasks.cs index 310027f1f..a252c4419 100644 --- a/src/Fallout.Common/Tools/Mastodon/MastodonTasks.cs +++ b/src/Fallout.Application.Tools/Mastodon/MastodonTasks.cs @@ -3,11 +3,11 @@ using System.Linq; using System.Net.Http; using System.Threading.Tasks; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Net; +using Fallout.Application.Tooling; +using Fallout.Kernel.Net; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Mastodon; +namespace Fallout.Application.Tools.Mastodon; public static class MastodonTasks { diff --git a/src/Fallout.Common/Tools/MauiCheck/MauiCheck.Generated.cs b/src/Fallout.Application.Tools/MauiCheck/MauiCheck.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/MauiCheck/MauiCheck.Generated.cs rename to src/Fallout.Application.Tools/MauiCheck/MauiCheck.Generated.cs index 077767fe4..c3d534797 100644 --- a/src/Fallout.Common/Tools/MauiCheck/MauiCheck.Generated.cs +++ b/src/Fallout.Application.Tools/MauiCheck/MauiCheck.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/MauiCheck/MauiCheck.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MauiCheck; +namespace Fallout.Application.Tools.MauiCheck; ///

A dotnet tool for helping set up your .NET MAUI environment.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +24,20 @@ public partial class MauiCheckTasks : ToolTasks, IRequireNuGetPackage ///

A dotnet tool for helping set up your .NET MAUI environment.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --ci via
  • --fix via
  • --manifest via
  • --non-interactive via
  • --preview via
  • --skip via
public static IReadOnlyCollection MauiCheck(MauiCheckSettings options = null) => new MauiCheckTasks().Run(options); - /// + /// public static IReadOnlyCollection MauiCheck(Configure configurator) => new MauiCheckTasks().Run(configurator.Invoke(new MauiCheckSettings())); - /// + /// public static IEnumerable<(MauiCheckSettings Settings, IReadOnlyCollection Output)> MauiCheck(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MauiCheck, degreeOfParallelism, completeOnFailure); ///

A dotnet tool for helping set up your .NET MAUI environment.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --dotnet-pre via
  • --dotnet-rollForward via
  • --dotnet-version via
  • --nuget-sources via
public static IReadOnlyCollection MauiCheckConfig(MauiCheckConfigSettings options = null) => new MauiCheckTasks().Run(options); - /// + /// public static IReadOnlyCollection MauiCheckConfig(Configure configurator) => new MauiCheckTasks().Run(configurator.Invoke(new MauiCheckConfigSettings())); - /// + /// public static IEnumerable<(MauiCheckConfigSettings Settings, IReadOnlyCollection Output)> MauiCheckConfig(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MauiCheckConfig, degreeOfParallelism, completeOnFailure); } #region MauiCheckSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MauiCheckTasks), Command = nameof(MauiCheckTasks.MauiCheck))] public partial class MauiCheckSettings : ToolOptions @@ -62,7 +57,7 @@ public partial class MauiCheckSettings : ToolOptions } #endregion #region MauiCheckConfigSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MauiCheckTasks), Command = nameof(MauiCheckTasks.MauiCheckConfig), Arguments = "config")] public partial class MauiCheckConfigSettings : ToolOptions @@ -78,7 +73,7 @@ public partial class MauiCheckConfigSettings : ToolOptions } #endregion #region MauiCheckSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MauiCheckSettingsExtensions { @@ -184,7 +179,7 @@ public static partial class MauiCheckSettingsExtensions } #endregion #region MauiCheckConfigSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MauiCheckConfigSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MauiCheck/MauiCheck.json b/src/Fallout.Application.Tools/MauiCheck/MauiCheck.json similarity index 100% rename from src/Fallout.Common/Tools/MauiCheck/MauiCheck.json rename to src/Fallout.Application.Tools/MauiCheck/MauiCheck.json diff --git a/src/Fallout.Common/Tools/MinVer/MinVer.Generated.cs b/src/Fallout.Application.Tools/MinVer/MinVer.Generated.cs similarity index 93% rename from src/Fallout.Common/Tools/MinVer/MinVer.Generated.cs rename to src/Fallout.Application.Tools/MinVer/MinVer.Generated.cs index 29bd510fb..18c09dc6f 100644 --- a/src/Fallout.Common/Tools/MinVer/MinVer.Generated.cs +++ b/src/Fallout.Application.Tools/MinVer/MinVer.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/MinVer/MinVer.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MinVer; +namespace Fallout.Application.Tools.MinVer; ///

Minimalistic versioning using Git tags.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class MinVerTasks : ToolTasks, IRequireNuGetPackage ///

Minimalistic versioning using Git tags.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --auto-increment via
  • --build-metadata via
  • --default-pre-release-identifiers via
  • --minimum-major-minor via
  • --tag-prefix via
  • --verbosity via
public static (MinVer Result, IReadOnlyCollection Output) MinVer(MinVerSettings options = null) => new MinVerTasks().Run(options); - /// + /// public static (MinVer Result, IReadOnlyCollection Output) MinVer(Configure configurator) => new MinVerTasks().Run(configurator.Invoke(new MinVerSettings())); - /// + /// public static IEnumerable<(MinVerSettings Settings, MinVer Result, IReadOnlyCollection Output)> MinVer(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(MinVer, degreeOfParallelism, completeOnFailure); } #region MinVerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(MinVerTasks), Command = nameof(MinVerTasks.MinVer))] public partial class MinVerSettings : ToolOptions, IToolOptionsWithFramework @@ -55,7 +50,7 @@ public partial class MinVerSettings : ToolOptions, IToolOptionsWithFramework } #endregion #region MinVerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class MinVerSettingsExtensions { diff --git a/src/Fallout.Common/Tools/MinVer/MinVer.json b/src/Fallout.Application.Tools/MinVer/MinVer.json similarity index 100% rename from src/Fallout.Common/Tools/MinVer/MinVer.json rename to src/Fallout.Application.Tools/MinVer/MinVer.json diff --git a/src/Fallout.Common/Tools/MinVer/MinVerAttribute.cs b/src/Fallout.Application.Tools/MinVer/MinVerAttribute.cs similarity index 58% rename from src/Fallout.Common/Tools/MinVer/MinVerAttribute.cs rename to src/Fallout.Application.Tools/MinVer/MinVerAttribute.cs index 00a9d34b9..2bfda4bc8 100644 --- a/src/Fallout.Common/Tools/MinVer/MinVerAttribute.cs +++ b/src/Fallout.Application.Tools/MinVer/MinVerAttribute.cs @@ -1,13 +1,11 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Tooling; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MinVer; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.MinVer; /// /// Injects an instance of based on the local repository. @@ -26,9 +24,9 @@ public override object GetValue(MemberInfo member, object instance) if (UpdateBuildNumber) { - AzurePipelines.Instance?.UpdateBuildNumber(version.Version); - TeamCity.Instance?.SetBuildNumber(version.Version); - AppVeyor.Instance?.UpdateBuildVersion(version.Version); + CiHost.AzurePipelines?.UpdateBuildNumber(version.Version); + CiHost.TeamCity?.SetBuildNumber(version.Version); + CiHost.AppVeyor?.UpdateBuildVersion(version.Version); } return version; diff --git a/src/Fallout.Common/Tools/MinVer/MinVerTasks.cs b/src/Fallout.Application.Tools/MinVer/MinVerTasks.cs similarity index 92% rename from src/Fallout.Common/Tools/MinVer/MinVerTasks.cs rename to src/Fallout.Application.Tools/MinVer/MinVerTasks.cs index 8db835a42..74d4f9b47 100644 --- a/src/Fallout.Common/Tools/MinVer/MinVerTasks.cs +++ b/src/Fallout.Application.Tools/MinVer/MinVerTasks.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.MinVer; +namespace Fallout.Application.Tools.MinVer; partial class MinVerTasks { diff --git a/src/Fallout.Common/Tools/NSwag/NSwag.Generated.cs b/src/Fallout.Application.Tools/NSwag/NSwag.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/NSwag/NSwag.Generated.cs rename to src/Fallout.Application.Tools/NSwag/NSwag.Generated.cs index c0a2d9234..135a61e9a 100644 --- a/src/Fallout.Common/Tools/NSwag/NSwag.Generated.cs +++ b/src/Fallout.Application.Tools/NSwag/NSwag.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/NSwag/NSwag.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NSwag; +namespace Fallout.Application.Tools.NSwag; ///

The project combines the functionality of Swashbuckle (Swagger generation) and AutoRest (client generation) in one toolchain. This way a lot of incompatibilites can be avoided and features which are not well described by the Swagger specification or JSON Schema are better supported (e.g. inheritance, enum and reference handling). The NSwag project heavily uses NJsonSchema for .NET for JSON Schema handling and C#/TypeScript class/interface generation.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,139 +24,139 @@ public partial class NSwagTasks : ToolTasks, IRequireNuGetPackage ///

Prints the toolchain version.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

public static IReadOnlyCollection NSwagVersion(NSwagVersionSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagVersion(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagVersionSettings())); - /// + /// public static IEnumerable<(NSwagVersionSettings Settings, IReadOnlyCollection Output)> NSwagVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagVersion, degreeOfParallelism, completeOnFailure); ///

List all types for the given assembly and settings.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /Assembly via
  • /AssemblyConfig via
  • /File via
  • /ReferencePaths via
  • /UseNuGetCache via
  • /Variables via
public static IReadOnlyCollection NSwagListTypes(NSwagListTypesSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagListTypes(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagListTypesSettings())); - /// + /// public static IEnumerable<(NSwagListTypesSettings Settings, IReadOnlyCollection Output)> NSwagListTypes(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagListTypes, degreeOfParallelism, completeOnFailure); ///

List all controllers classes for the given assembly and settings.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /Assembly via
  • /AssemblyConfig via
  • /File via
  • /ReferencePaths via
  • /UseNuGetCache via
  • /Variables via
public static IReadOnlyCollection NSwagListWebApiControllers(NSwagListWebApiControllersSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagListWebApiControllers(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagListWebApiControllersSettings())); - /// + /// public static IEnumerable<(NSwagListWebApiControllersSettings Settings, IReadOnlyCollection Output)> NSwagListWebApiControllers(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagListWebApiControllers, degreeOfParallelism, completeOnFailure); ///

The project combines the functionality of Swashbuckle (Swagger generation) and AutoRest (client generation) in one toolchain. This way a lot of incompatibilites can be avoided and features which are not well described by the Swagger specification or JSON Schema are better supported (e.g. inheritance, enum and reference handling). The NSwag project heavily uses NJsonSchema for .NET for JSON Schema handling and C#/TypeScript class/interface generation.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /Assembly via
  • /AssemblyConfig via
  • /Output via
  • /OutputType via
  • /ReferencePaths via
  • /UseNuGetCache via
public static IReadOnlyCollection NSwagTypesToOpenApi(NSwagTypesToOpenApiSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagTypesToOpenApi(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagTypesToOpenApiSettings())); - /// + /// public static IEnumerable<(NSwagTypesToOpenApiSettings Settings, IReadOnlyCollection Output)> NSwagTypesToOpenApi(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagTypesToOpenApi, degreeOfParallelism, completeOnFailure); ///

The project combines the functionality of Swashbuckle (Swagger generation) and AutoRest (client generation) in one toolchain. This way a lot of incompatibilites can be avoided and features which are not well described by the Swagger specification or JSON Schema are better supported (e.g. inheritance, enum and reference handling). The NSwag project heavily uses NJsonSchema for .NET for JSON Schema handling and C#/TypeScript class/interface generation.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AllowReferencesWithProperties via
  • /Assembly via
  • /AssemblyConfig via
  • /ClassNames via
  • /DefaultDictionaryValueReferenceTypeNullHandling via
  • /DefaultEnumHandling via
  • /DefaultPropertyNameHandling via
  • /DefaultReferenceTypeNullHandling via
  • /FlattenInheritanceHierarchy via
  • /GenerateKnownTypes via
  • /GenerateXmlObjects via
  • /IgnoreObsoleteProperties via
  • /Output via
  • /OutputType via
  • /ReferencePaths via
  • /UseNuGetCache via
public static IReadOnlyCollection NSwagTypesToSwagger(NSwagTypesToSwaggerSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagTypesToSwagger(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagTypesToSwaggerSettings())); - /// + /// public static IEnumerable<(NSwagTypesToSwaggerSettings Settings, IReadOnlyCollection Output)> NSwagTypesToSwagger(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagTypesToSwagger, degreeOfParallelism, completeOnFailure); ///

Generates a Swagger/OpenAPI specification for a controller or controlles contained in a .NET Web API assembly.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AllowNullableBodyParameters via
  • /AllowReferencesWithProperties via
  • /AspNetCoreEnvironment via
  • /Assembly via
  • /AssemblyConfig via
  • /ContractResolver via
  • /CreateWebHostBuilderMethod via
  • /DefaultDictionaryValueReferenceTypeNullHandling via
  • /DefaultEnumHandling via
  • /DefaultPropertyNameHandling via
  • /DefaultReferenceTypeNullHandling via
  • /DefaultResponseReferenceTypeNullHandling via
  • /DocumentName via
  • /DocumentProcessors via
  • /DocumentTemplate via
  • /ExcludedTypeNames via
  • /FlattenInheritanceHierarchy via
  • /GenerateAbstractProperties via
  • /GenerateAbstractSchemas via
  • /GenerateEnumMappingDescription via
  • /GenerateKnownTypes via
  • /GenerateXmlObjects via
  • /IgnoreObsoleteProperties via
  • /InfoDescription via
  • /InfoTitle via
  • /InfoVersion via
  • /OperationProcessors via
  • /Output via
  • /OutputType via
  • /ReferencePaths via
  • /SchemaNameGenerator via
  • /SerializerSettings via
  • /ServiceBasePath via
  • /ServiceHost via
  • /ServiceSchemes via
  • /Startup via
  • /TypeNameGenerator via
  • /UseDocumentProvider via
  • /UseNuGetCache via
public static IReadOnlyCollection NSwagWebApiToOpenApi(NSwagWebApiToOpenApiSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagWebApiToOpenApi(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagWebApiToOpenApiSettings())); - /// + /// public static IEnumerable<(NSwagWebApiToOpenApiSettings Settings, IReadOnlyCollection Output)> NSwagWebApiToOpenApi(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagWebApiToOpenApi, degreeOfParallelism, completeOnFailure); ///

Generates a Swagger/OpenAPI specification for a controller or controlles contained in a .NET Web API assembly (obsolete: use webapi2openapi instead).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AddMissingPathParameters via
  • /AllowNullableBodyParameters via
  • /AllowReferencesWithProperties via
  • /AspNetCore via
  • /AspNetCoreEnvironment via
  • /Assembly via
  • /AssemblyConfig via
  • /ContractResolver via
  • /Controller via
  • /Controllers via
  • /CreateWebHostBuilderMethod via
  • /DefaultDictionaryValueReferenceTypeNullHandling via
  • /DefaultEnumHandling via
  • /DefaultPropertyNameHandling via
  • /DefaultReferenceTypeNullHandling via
  • /DefaultResponseReferenceTypeNullHandling via
  • /DefaultUrlTemplate via
  • /DocumentName via
  • /DocumentProcessors via
  • /DocumentTemplate via
  • /ExcludedTypeNames via
  • /FlattenInheritanceHierarchy via
  • /GenerateAbstractProperties via
  • /GenerateAbstractSchemas via
  • /GenerateEnumMappingDescription via
  • /GenerateKnownTypes via
  • /GenerateXmlObjects via
  • /IgnoreObsoleteProperties via
  • /IncludedVersions via
  • /InfoDescription via
  • /InfoTitle via
  • /InfoVersion via
  • /OperationProcessors via
  • /Output via
  • /OutputType via
  • /ReferencePaths via
  • /ResolveJsonOptions via
  • /SchemaNameGenerator via
  • /SerializerSettings via
  • /ServiceBasePath via
  • /ServiceHost via
  • /ServiceSchemes via
  • /Startup via
  • /TypeNameGenerator via
  • /UseDocumentProvider via
  • /UseNuGetCache via
public static IReadOnlyCollection NSwagWebApiToSwagger(NSwagWebApiToSwaggerSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagWebApiToSwagger(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagWebApiToSwaggerSettings())); - /// + /// public static IEnumerable<(NSwagWebApiToSwaggerSettings Settings, IReadOnlyCollection Output)> NSwagWebApiToSwagger(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagWebApiToSwagger, degreeOfParallelism, completeOnFailure); ///

Generates a Swagger specification ASP.NET Core Mvc application using ApiExplorer.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AllowNullableBodyParameters via
  • /AllowReferencesWithProperties via
  • /AspNetCoreEnvironment via
  • /Assembly via
  • /AssemblyConfig via
  • /ContractResolver via
  • /CreateWebHostBuilderMethod via
  • /DefaultDictionaryValueReferenceTypeNullHandling via
  • /DefaultEnumHandling via
  • /DefaultPropertyNameHandling via
  • /DefaultReferenceTypeNullHandling via
  • /DefaultResponseReferenceTypeNullHandling via
  • /DocumentName via
  • /DocumentProcessors via
  • /DocumentTemplate via
  • /ExcludedTypeNames via
  • /FlattenInheritanceHierarchy via
  • /GenerateAbstractProperties via
  • /GenerateAbstractSchemas via
  • /GenerateEnumMappingDescription via
  • /GenerateKnownTypes via
  • /GenerateXmlObjects via
  • /IgnoreObsoleteProperties via
  • /InfoDescription via
  • /InfoTitle via
  • /InfoVersion via
  • /OperationProcessors via
  • /Output via
  • /OutputType via
  • /ReferencePaths via
  • /SchemaNameGenerator via
  • /SerializerSettings via
  • /ServiceBasePath via
  • /ServiceHost via
  • /ServiceSchemes via
  • /Startup via
  • /TypeNameGenerator via
  • /UseDocumentProvider via
  • /UseNuGetCache via
public static IReadOnlyCollection NSwagAspNetCoreToOpenApi(NSwagAspNetCoreToOpenApiSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagAspNetCoreToOpenApi(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagAspNetCoreToOpenApiSettings())); - /// + /// public static IEnumerable<(NSwagAspNetCoreToOpenApiSettings Settings, IReadOnlyCollection Output)> NSwagAspNetCoreToOpenApi(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagAspNetCoreToOpenApi, degreeOfParallelism, completeOnFailure); ///

Generates a Swagger specification ASP.NET Core Mvc application using ApiExplorer (obsolete: use aspnetcore2openapi instead).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AllowNullableBodyParameters via
  • /AllowReferencesWithProperties via
  • /ApiGroupNames via
  • /AspNetCoreEnvironment via
  • /Assembly via
  • /AssemblyConfig via
  • /Configuration via
  • /ContractResolver via
  • /CreateWebHostBuilderMethod via
  • /DefaultDictionaryValueReferenceTypeNullHandling via
  • /DefaultEnumHandling via
  • /DefaultPropertyNameHandling via
  • /DefaultReferenceTypeNullHandling via
  • /DefaultResponseReferenceTypeNullHandling via
  • /DocumentName via
  • /DocumentProcessors via
  • /DocumentTemplate via
  • /ExcludedTypeNames via
  • /FlattenInheritanceHierarchy via
  • /GenerateAbstractProperties via
  • /GenerateAbstractSchemas via
  • /GenerateEnumMappingDescription via
  • /GenerateKnownTypes via
  • /GenerateXmlObjects via
  • /IgnoreObsoleteProperties via
  • /InfoDescription via
  • /InfoTitle via
  • /InfoVersion via
  • /MSBuildProjectExtensionsPath via
  • /NoBuild via
  • /OperationProcessors via
  • /Output via
  • /OutputType via
  • /Project via
  • /ReferencePaths via
  • /RequireParametersWithoutDefault via
  • /Runtime via
  • /SchemaNameGenerator via
  • /SerializerSettings via
  • /ServiceBasePath via
  • /ServiceHost via
  • /ServiceSchemes via
  • /Startup via
  • /TargetFramework via
  • /TypeNameGenerator via
  • /UseDocumentProvider via
  • /UseNuGetCache via
  • /Verbose via
  • /WorkingDirectory via
public static IReadOnlyCollection NSwagAspNetCoreToSwagger(NSwagAspNetCoreToSwaggerSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagAspNetCoreToSwagger(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagAspNetCoreToSwaggerSettings())); - /// + /// public static IEnumerable<(NSwagAspNetCoreToSwaggerSettings Settings, IReadOnlyCollection Output)> NSwagAspNetCoreToSwagger(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagAspNetCoreToSwagger, degreeOfParallelism, completeOnFailure); ///

Creates a new nswag.json file in the current directory.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

public static IReadOnlyCollection NSwagCreateDocument(NSwagCreateDocumentSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagCreateDocument(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagCreateDocumentSettings())); - /// + /// public static IEnumerable<(NSwagCreateDocumentSettings Settings, IReadOnlyCollection Output)> NSwagCreateDocument(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagCreateDocument, degreeOfParallelism, completeOnFailure); ///

Executes an .nswag file. If 'input' is not specified then all *.nswag files and the nswag.json file is executed.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /Input via
  • /Variables via
public static IReadOnlyCollection NSwagExecuteDocument(NSwagExecuteDocumentSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagExecuteDocument(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagExecuteDocumentSettings())); - /// + /// public static IEnumerable<(NSwagExecuteDocumentSettings Settings, IReadOnlyCollection Output)> NSwagExecuteDocument(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagExecuteDocument, degreeOfParallelism, completeOnFailure); ///

Generates CSharp classes from a JSON Schema.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AnyType via
  • /ArrayInstanceType via
  • /ArrayType via
  • /DateTimeType via
  • /DictionaryInstanceType via
  • /DictionaryType via
  • /GenerateOptionalPropertiesAsNullable via
  • /Input via
  • /Name via
  • /Namespace via
  • /Output via
  • /RequiredPropertiesMustBeDefined via
  • /ServiceHost via
  • /ServiceSchemes via
public static IReadOnlyCollection NSwagJsonSchemaToCSharp(NSwagJsonSchemaToCSharpSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagJsonSchemaToCSharp(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagJsonSchemaToCSharpSettings())); - /// + /// public static IEnumerable<(NSwagJsonSchemaToCSharpSettings Settings, IReadOnlyCollection Output)> NSwagJsonSchemaToCSharp(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagJsonSchemaToCSharp, degreeOfParallelism, completeOnFailure); ///

Generates TypeScript interfaces from a JSON Schema.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /Input via
  • /Name via
  • /Output via
  • /ServiceHost via
  • /ServiceSchemes via
public static IReadOnlyCollection NSwagJsonSchemaToTypeScript(NSwagJsonSchemaToTypeScriptSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagJsonSchemaToTypeScript(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagJsonSchemaToTypeScriptSettings())); - /// + /// public static IEnumerable<(NSwagJsonSchemaToTypeScriptSettings Settings, IReadOnlyCollection Output)> NSwagJsonSchemaToTypeScript(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagJsonSchemaToTypeScript, degreeOfParallelism, completeOnFailure); ///

Generates CSharp client code from a Swagger/OpenAPI specification.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AdditionalContractNamespaceUsages via
  • /AdditionalNamespaceUsages via
  • /AnyType via
  • /ArrayBaseType via
  • /ArrayInstanceType via
  • /ArrayType via
  • /ClassName via
  • /ClassStyle via
  • /DateTimeType via
  • /DateType via
  • /DictionaryBaseType via
  • /DictionaryInstanceType via
  • /DictionaryType via
  • /EnforceFlagEnums via
  • /EnumNameGeneratorType via
  • /ExcludedParameterNames via
  • /ExcludedTypeNames via
  • /GenerateDataAnnotations via
  • /GenerateDefaultValues via
  • /GenerateDtoTypes via
  • /GenerateImmutableArrayProperties via
  • /GenerateImmutableDictionaryProperties via
  • /GenerateJsonMethods via
  • /GenerateOptionalParameters via
  • /GenerateOptionalPropertiesAsNullable via
  • /GenerateResponseClasses via
  • /HandleReferences via
  • /InlineNamedAny via
  • /InlineNamedArrays via
  • /InlineNamedDictionaries via
  • /InlineNamedTuples via
  • /Input via
  • /JsonConverters via
  • /JsonSerializerSettingsTransformationMethod via
  • /Namespace via
  • /OperationGenerationMode via
  • /Output via
  • /ParameterArrayType via
  • /ParameterDictionaryType via
  • /PropertyNameGeneratorType via
  • /RequiredPropertiesMustBeDefined via
  • /ResponseArrayType via
  • /ResponseClass via
  • /ResponseDictionaryType via
  • /ServiceHost via
  • /ServiceSchemes via
  • /TemplateDirectory via
  • /TimeSpanType via
  • /TimeType via
  • /TypeNameGenerator via
  • /WrapResponseMethods via
  • /WrapResponses via
public static IReadOnlyCollection NSwagOpenApiToCSharpClient(NSwagOpenApiToCSharpClientSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagOpenApiToCSharpClient(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagOpenApiToCSharpClientSettings())); - /// + /// public static IEnumerable<(NSwagOpenApiToCSharpClientSettings Settings, IReadOnlyCollection Output)> NSwagOpenApiToCSharpClient(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagOpenApiToCSharpClient, degreeOfParallelism, completeOnFailure); ///

Generates CSharp client code from a Swagger/OpenAPI specification (obsolete: use openapi2csclient instead).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AdditionalContractNamespaceUsages via
  • /AdditionalNamespaceUsages via
  • /AnyType via
  • /ArrayBaseType via
  • /ArrayInstanceType via
  • /ArrayType via
  • /ClassName via
  • /ClassStyle via
  • /ClientBaseClass via
  • /ClientClassAccessModifier via
  • /ConfigurationClass via
  • /ContractsNamespace via
  • /ContractsOutput via
  • /DateTimeType via
  • /DateType via
  • /DictionaryBaseType via
  • /DictionaryInstanceType via
  • /DictionaryType via
  • /DisposeHttpClient via
  • /EnforceFlagEnums via
  • /EnumNameGeneratorType via
  • /ExceptionClass via
  • /ExcludedParameterNames via
  • /ExcludedTypeNames via
  • /ExposeJsonSerializerSettings via
  • /GenerateBaseUrlProperty via
  • /GenerateClientClasses via
  • /GenerateClientInterfaces via
  • /GenerateContractsOutput via
  • /GenerateDataAnnotations via
  • /GenerateDefaultValues via
  • /GenerateDtoTypes via
  • /GenerateExceptionClasses via
  • /GenerateImmutableArrayProperties via
  • /GenerateImmutableDictionaryProperties via
  • /GenerateJsonMethods via
  • /GenerateOptionalParameters via
  • /GenerateOptionalPropertiesAsNullable via
  • /GenerateResponseClasses via
  • /GenerateSyncMethods via
  • /GenerateUpdateJsonSerializerSettingsMethod via
  • /HandleReferences via
  • /HttpClientType via
  • /InjectHttpClient via
  • /InlineNamedAny via
  • /InlineNamedArrays via
  • /InlineNamedDictionaries via
  • /InlineNamedTuples via
  • /Input via
  • /JsonConverters via
  • /JsonSerializerSettingsTransformationMethod via
  • /Namespace via
  • /OperationGenerationMode via
  • /Output via
  • /ParameterArrayType via
  • /ParameterDateFormat via
  • /ParameterDateTimeFormat via
  • /ParameterDictionaryType via
  • /PropertyNameGeneratorType via
  • /ProtectedMethods via
  • /QueryNullValue via
  • /RequiredPropertiesMustBeDefined via
  • /ResponseArrayType via
  • /ResponseClass via
  • /ResponseDictionaryType via
  • /SerializeTypeInformation via
  • /ServiceHost via
  • /ServiceSchemes via
  • /TemplateDirectory via
  • /TimeSpanType via
  • /TimeType via
  • /TypeAccessModifier via
  • /TypeNameGenerator via
  • /UseBaseUrl via
  • /UseHttpClientCreationMethod via
  • /UseHttpRequestMessageCreationMethod via
  • /WrapDtoExceptions via
  • /WrapResponseMethods via
  • /WrapResponses via
public static IReadOnlyCollection NSwagSwaggerToCSharpClient(NSwagSwaggerToCSharpClientSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagSwaggerToCSharpClient(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagSwaggerToCSharpClientSettings())); - /// + /// public static IEnumerable<(NSwagSwaggerToCSharpClientSettings Settings, IReadOnlyCollection Output)> NSwagSwaggerToCSharpClient(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagSwaggerToCSharpClient, degreeOfParallelism, completeOnFailure); ///

Generates CSharp Web API controller code from a Swagger/OpenAPI specification.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AdditionalContractNamespaceUsages via
  • /AdditionalNamespaceUsages via
  • /AnyType via
  • /ArrayBaseType via
  • /ArrayInstanceType via
  • /ArrayType via
  • /ClassName via
  • /ClassStyle via
  • /DateTimeType via
  • /DateType via
  • /DictionaryBaseType via
  • /DictionaryInstanceType via
  • /DictionaryType via
  • /EnforceFlagEnums via
  • /EnumNameGeneratorType via
  • /ExcludedParameterNames via
  • /ExcludedTypeNames via
  • /GenerateDataAnnotations via
  • /GenerateDefaultValues via
  • /GenerateDtoTypes via
  • /GenerateImmutableArrayProperties via
  • /GenerateImmutableDictionaryProperties via
  • /GenerateJsonMethods via
  • /GenerateOptionalParameters via
  • /GenerateOptionalPropertiesAsNullable via
  • /GenerateResponseClasses via
  • /HandleReferences via
  • /InlineNamedAny via
  • /InlineNamedArrays via
  • /InlineNamedDictionaries via
  • /InlineNamedTuples via
  • /Input via
  • /JsonConverters via
  • /JsonSerializerSettingsTransformationMethod via
  • /Namespace via
  • /OperationGenerationMode via
  • /Output via
  • /ParameterArrayType via
  • /ParameterDictionaryType via
  • /PropertyNameGeneratorType via
  • /RequiredPropertiesMustBeDefined via
  • /ResponseArrayType via
  • /ResponseClass via
  • /ResponseDictionaryType via
  • /ServiceHost via
  • /ServiceSchemes via
  • /TemplateDirectory via
  • /TimeSpanType via
  • /TimeType via
  • /TypeNameGenerator via
  • /WrapResponseMethods via
  • /WrapResponses via
public static IReadOnlyCollection NSwagOpenApiToCSharpController(NSwagOpenApiToCSharpControllerSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagOpenApiToCSharpController(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagOpenApiToCSharpControllerSettings())); - /// + /// public static IEnumerable<(NSwagOpenApiToCSharpControllerSettings Settings, IReadOnlyCollection Output)> NSwagOpenApiToCSharpController(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagOpenApiToCSharpController, degreeOfParallelism, completeOnFailure); ///

Generates CSharp Web API controller code from a Swagger/OpenAPI specification (obsolete: use openapi2cscontroller instead).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /AdditionalContractNamespaceUsages via
  • /AdditionalNamespaceUsages via
  • /AnyType via
  • /ArrayBaseType via
  • /ArrayInstanceType via
  • /ArrayType via
  • /BasePath via
  • /ClassName via
  • /ClassStyle via
  • /ControllerBaseClass via
  • /ControllerStyle via
  • /ControllerTarget via
  • /DateTimeType via
  • /DateType via
  • /DictionaryBaseType via
  • /DictionaryInstanceType via
  • /DictionaryType via
  • /EnforceFlagEnums via
  • /EnumNameGeneratorType via
  • /ExcludedParameterNames via
  • /ExcludedTypeNames via
  • /GenerateDataAnnotations via
  • /GenerateDefaultValues via
  • /GenerateDtoTypes via
  • /GenerateImmutableArrayProperties via
  • /GenerateImmutableDictionaryProperties via
  • /GenerateJsonMethods via
  • /GenerateModelValidationAttributes via
  • /GenerateOptionalParameters via
  • /GenerateOptionalPropertiesAsNullable via
  • /GenerateResponseClasses via
  • /HandleReferences via
  • /InlineNamedAny via
  • /InlineNamedArrays via
  • /InlineNamedDictionaries via
  • /InlineNamedTuples via
  • /Input via
  • /JsonConverters via
  • /JsonSerializerSettingsTransformationMethod via
  • /Namespace via
  • /OperationGenerationMode via
  • /Output via
  • /ParameterArrayType via
  • /ParameterDictionaryType via
  • /PropertyNameGeneratorType via
  • /RequiredPropertiesMustBeDefined via
  • /ResponseArrayType via
  • /ResponseClass via
  • /ResponseDictionaryType via
  • /RouteNamingStrategy via
  • /ServiceHost via
  • /ServiceSchemes via
  • /TemplateDirectory via
  • /TimeSpanType via
  • /TimeType via
  • /TypeNameGenerator via
  • /UseActionResultType via
  • /UseCancellationToken via
  • /WrapResponseMethods via
  • /WrapResponses via
public static IReadOnlyCollection NSwagSwaggerToCSharpController(NSwagSwaggerToCSharpControllerSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagSwaggerToCSharpController(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagSwaggerToCSharpControllerSettings())); - /// + /// public static IEnumerable<(NSwagSwaggerToCSharpControllerSettings Settings, IReadOnlyCollection Output)> NSwagSwaggerToCSharpController(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagSwaggerToCSharpController, degreeOfParallelism, completeOnFailure); ///

Generates TypeScript client code from a Swagger/OpenAPI specification.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /EnumNameGeneratorType via
  • /Input via
  • /Output via
  • /PropertyNameGeneratorType via
  • /ServiceHost via
  • /ServiceSchemes via
  • /TemplateDirectory via
  • /TypeNameGenerator via
public static IReadOnlyCollection NSwagOpenApiToTypeScriptClient(NSwagOpenApiToTypeScriptClientSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagOpenApiToTypeScriptClient(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagOpenApiToTypeScriptClientSettings())); - /// + /// public static IEnumerable<(NSwagOpenApiToTypeScriptClientSettings Settings, IReadOnlyCollection Output)> NSwagOpenApiToTypeScriptClient(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagOpenApiToTypeScriptClient, degreeOfParallelism, completeOnFailure); ///

Generates TypeScript client code from a Swagger/OpenAPI specification (obsolete: use openapi2tsclient instead).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /BaseUrlTokenName via
  • /ClassName via
  • /ClassTypes via
  • /ClientBaseClass via
  • /ConfigurationClass via
  • /ConvertConstructorInterfaceData via
  • /DateTimeType via
  • /EnumNameGeneratorType via
  • /ExceptionClass via
  • /ExcludedParameterNames via
  • /ExcludedTypeNames via
  • /ExportTypes via
  • /ExtendedClasses via
  • /ExtensionCode via
  • /GenerateClientClasses via
  • /GenerateClientInterfaces via
  • /GenerateCloneMethod via
  • /GenerateConstructorInterface via
  • /GenerateDefaultValues via
  • /GenerateDtoTypes via
  • /GenerateOptionalParameters via
  • /GenerateResponseClasses via
  • /HandleReferences via
  • /HttpClass via
  • /ImportRequiredTypes via
  • /InjectionTokenType via
  • /InlineNamedAny via
  • /InlineNamedDictionaries via
  • /Input via
  • /MarkOptionalProperties via
  • /ModuleName via
  • /Namespace via
  • /NullValue via
  • /OperationGenerationMode via
  • /Output via
  • /PromiseType via
  • /PropertyNameGeneratorType via
  • /ProtectedMethods via
  • /QueryNullValue via
  • /ResponseClass via
  • /RxJsVersion via
  • /ServiceHost via
  • /ServiceSchemes via
  • /Template via
  • /TemplateDirectory via
  • /TypeNameGenerator via
  • /TypeScriptVersion via
  • /TypeStyle via
  • /UseGetBaseUrlMethod via
  • /UseSingletonProvider via
  • /UseTransformOptionsMethod via
  • /UseTransformResultMethod via
  • /WrapDtoExceptions via
  • /WrapResponseMethods via
  • /WrapResponses via
public static IReadOnlyCollection NSwagSwaggerToTypeScriptClient(NSwagSwaggerToTypeScriptClientSettings options = null) => new NSwagTasks().Run(options); - /// + /// public static IReadOnlyCollection NSwagSwaggerToTypeScriptClient(Configure configurator) => new NSwagTasks().Run(configurator.Invoke(new NSwagSwaggerToTypeScriptClientSettings())); - /// + /// public static IEnumerable<(NSwagSwaggerToTypeScriptClientSettings Settings, IReadOnlyCollection Output)> NSwagSwaggerToTypeScriptClient(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NSwagSwaggerToTypeScriptClient, degreeOfParallelism, completeOnFailure); } #region NSwagVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagVersion), Arguments = "version")] public partial class NSwagVersionSettings : ToolOptions, IToolOptionsWithFramework @@ -169,7 +164,7 @@ public partial class NSwagVersionSettings : ToolOptions, IToolOptionsWithFramewo } #endregion #region NSwagListTypesSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagListTypes), Arguments = "list-types")] public partial class NSwagListTypesSettings : ToolOptions, IToolOptionsWithFramework @@ -189,7 +184,7 @@ public partial class NSwagListTypesSettings : ToolOptions, IToolOptionsWithFrame } #endregion #region NSwagListWebApiControllersSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagListWebApiControllers), Arguments = "list-controllers")] public partial class NSwagListWebApiControllersSettings : ToolOptions, IToolOptionsWithFramework @@ -209,7 +204,7 @@ public partial class NSwagListWebApiControllersSettings : ToolOptions, IToolOpti } #endregion #region NSwagTypesToOpenApiSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagTypesToOpenApi), Arguments = "types2openapi")] public partial class NSwagTypesToOpenApiSettings : ToolOptions, IToolOptionsWithFramework @@ -229,7 +224,7 @@ public partial class NSwagTypesToOpenApiSettings : ToolOptions, IToolOptionsWith } #endregion #region NSwagTypesToSwaggerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagTypesToSwagger), Arguments = "types2swagger")] public partial class NSwagTypesToSwaggerSettings : ToolOptions, IToolOptionsWithFramework @@ -269,7 +264,7 @@ public partial class NSwagTypesToSwaggerSettings : ToolOptions, IToolOptionsWith } #endregion #region NSwagWebApiToOpenApiSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagWebApiToOpenApi), Arguments = "webapi2openapi")] public partial class NSwagWebApiToOpenApiSettings : ToolOptions, IToolOptionsWithFramework @@ -355,7 +350,7 @@ public partial class NSwagWebApiToOpenApiSettings : ToolOptions, IToolOptionsWit } #endregion #region NSwagWebApiToSwaggerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagWebApiToSwagger), Arguments = "webapi2swagger")] public partial class NSwagWebApiToSwaggerSettings : ToolOptions, IToolOptionsWithFramework @@ -455,7 +450,7 @@ public partial class NSwagWebApiToSwaggerSettings : ToolOptions, IToolOptionsWit } #endregion #region NSwagAspNetCoreToOpenApiSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagAspNetCoreToOpenApi), Arguments = "aspnetcore2openapi")] public partial class NSwagAspNetCoreToOpenApiSettings : ToolOptions, IToolOptionsWithFramework @@ -541,7 +536,7 @@ public partial class NSwagAspNetCoreToOpenApiSettings : ToolOptions, IToolOption } #endregion #region NSwagAspNetCoreToSwaggerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagAspNetCoreToSwagger), Arguments = "aspnetcore2swagger")] public partial class NSwagAspNetCoreToSwaggerSettings : ToolOptions, IToolOptionsWithFramework @@ -647,7 +642,7 @@ public partial class NSwagAspNetCoreToSwaggerSettings : ToolOptions, IToolOption } #endregion #region NSwagCreateDocumentSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagCreateDocument), Arguments = "new")] public partial class NSwagCreateDocumentSettings : ToolOptions, IToolOptionsWithFramework @@ -655,7 +650,7 @@ public partial class NSwagCreateDocumentSettings : ToolOptions, IToolOptionsWith } #endregion #region NSwagExecuteDocumentSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagExecuteDocument), Arguments = "run")] public partial class NSwagExecuteDocumentSettings : ToolOptions, IToolOptionsWithFramework @@ -667,7 +662,7 @@ public partial class NSwagExecuteDocumentSettings : ToolOptions, IToolOptionsWit } #endregion #region NSwagJsonSchemaToCSharpSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagJsonSchemaToCSharp), Arguments = "jsonschema2csclient")] public partial class NSwagJsonSchemaToCSharpSettings : ToolOptions, IToolOptionsWithFramework @@ -703,7 +698,7 @@ public partial class NSwagJsonSchemaToCSharpSettings : ToolOptions, IToolOptions } #endregion #region NSwagJsonSchemaToTypeScriptSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagJsonSchemaToTypeScript), Arguments = "jsonschema2tsclient")] public partial class NSwagJsonSchemaToTypeScriptSettings : ToolOptions, IToolOptionsWithFramework @@ -721,7 +716,7 @@ public partial class NSwagJsonSchemaToTypeScriptSettings : ToolOptions, IToolOpt } #endregion #region NSwagOpenApiToCSharpClientSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagOpenApiToCSharpClient), Arguments = "openapi2csclient")] public partial class NSwagOpenApiToCSharpClientSettings : ToolOptions, IToolOptionsWithFramework @@ -833,7 +828,7 @@ public partial class NSwagOpenApiToCSharpClientSettings : ToolOptions, IToolOpti } #endregion #region NSwagSwaggerToCSharpClientSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagSwaggerToCSharpClient), Arguments = "swagger2csclient")] public partial class NSwagSwaggerToCSharpClientSettings : ToolOptions, IToolOptionsWithFramework @@ -999,7 +994,7 @@ public partial class NSwagSwaggerToCSharpClientSettings : ToolOptions, IToolOpti } #endregion #region NSwagOpenApiToCSharpControllerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagOpenApiToCSharpController), Arguments = "openapi2cscontroller")] public partial class NSwagOpenApiToCSharpControllerSettings : ToolOptions, IToolOptionsWithFramework @@ -1111,7 +1106,7 @@ public partial class NSwagOpenApiToCSharpControllerSettings : ToolOptions, ITool } #endregion #region NSwagSwaggerToCSharpControllerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagSwaggerToCSharpController), Arguments = "swagger2cscontroller")] public partial class NSwagSwaggerToCSharpControllerSettings : ToolOptions, IToolOptionsWithFramework @@ -1239,7 +1234,7 @@ public partial class NSwagSwaggerToCSharpControllerSettings : ToolOptions, ITool } #endregion #region NSwagOpenApiToTypeScriptClientSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagOpenApiToTypeScriptClient), Arguments = "openapi2tsclient")] public partial class NSwagOpenApiToTypeScriptClientSettings : ToolOptions, IToolOptionsWithFramework @@ -1263,7 +1258,7 @@ public partial class NSwagOpenApiToTypeScriptClientSettings : ToolOptions, ITool } #endregion #region NSwagSwaggerToTypeScriptClientSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NSwagTasks), Command = nameof(NSwagTasks.NSwagSwaggerToTypeScriptClient), Arguments = "swagger2tsclient")] public partial class NSwagSwaggerToTypeScriptClientSettings : ToolOptions, IToolOptionsWithFramework @@ -1381,14 +1376,14 @@ public partial class NSwagSwaggerToTypeScriptClientSettings : ToolOptions, ITool } #endregion #region NSwagVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagVersionSettingsExtensions { } #endregion #region NSwagListTypesSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagListTypesSettingsExtensions { @@ -1491,7 +1486,7 @@ public static partial class NSwagListTypesSettingsExtensions } #endregion #region NSwagListWebApiControllersSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagListWebApiControllersSettingsExtensions { @@ -1594,7 +1589,7 @@ public static partial class NSwagListWebApiControllersSettingsExtensions } #endregion #region NSwagTypesToOpenApiSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagTypesToOpenApiSettingsExtensions { @@ -1688,7 +1683,7 @@ public static partial class NSwagTypesToOpenApiSettingsExtensions } #endregion #region NSwagTypesToSwaggerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagTypesToSwaggerSettingsExtensions { @@ -1922,7 +1917,7 @@ public static partial class NSwagTypesToSwaggerSettingsExtensions } #endregion #region NSwagWebApiToOpenApiSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagWebApiToOpenApiSettingsExtensions { @@ -2430,7 +2425,7 @@ public static partial class NSwagWebApiToOpenApiSettingsExtensions } #endregion #region NSwagWebApiToSwaggerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagWebApiToSwaggerSettingsExtensions { @@ -3051,7 +3046,7 @@ public static partial class NSwagWebApiToSwaggerSettingsExtensions } #endregion #region NSwagAspNetCoreToOpenApiSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagAspNetCoreToOpenApiSettingsExtensions { @@ -3559,7 +3554,7 @@ public static partial class NSwagAspNetCoreToOpenApiSettingsExtensions } #endregion #region NSwagAspNetCoreToSwaggerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagAspNetCoreToSwaggerSettingsExtensions { @@ -4189,14 +4184,14 @@ public static partial class NSwagAspNetCoreToSwaggerSettingsExtensions } #endregion #region NSwagCreateDocumentSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagCreateDocumentSettingsExtensions { } #endregion #region NSwagExecuteDocumentSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagExecuteDocumentSettingsExtensions { @@ -4228,7 +4223,7 @@ public static partial class NSwagExecuteDocumentSettingsExtensions } #endregion #region NSwagJsonSchemaToCSharpSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagJsonSchemaToCSharpSettingsExtensions { @@ -4380,7 +4375,7 @@ public static partial class NSwagJsonSchemaToCSharpSettingsExtensions } #endregion #region NSwagJsonSchemaToTypeScriptSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagJsonSchemaToTypeScriptSettingsExtensions { @@ -4442,7 +4437,7 @@ public static partial class NSwagJsonSchemaToTypeScriptSettingsExtensions } #endregion #region NSwagOpenApiToCSharpClientSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagOpenApiToCSharpClientSettingsExtensions { @@ -5123,7 +5118,7 @@ public static partial class NSwagOpenApiToCSharpClientSettingsExtensions } #endregion #region NSwagSwaggerToCSharpClientSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagSwaggerToCSharpClientSettingsExtensions { @@ -6170,7 +6165,7 @@ public static partial class NSwagSwaggerToCSharpClientSettingsExtensions } #endregion #region NSwagOpenApiToCSharpControllerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagOpenApiToCSharpControllerSettingsExtensions { @@ -6851,7 +6846,7 @@ public static partial class NSwagOpenApiToCSharpControllerSettingsExtensions } #endregion #region NSwagSwaggerToCSharpControllerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagSwaggerToCSharpControllerSettingsExtensions { @@ -7623,7 +7618,7 @@ public static partial class NSwagSwaggerToCSharpControllerSettingsExtensions } #endregion #region NSwagOpenApiToTypeScriptClientSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagOpenApiToTypeScriptClientSettingsExtensions { @@ -7709,7 +7704,7 @@ public static partial class NSwagOpenApiToTypeScriptClientSettingsExtensions } #endregion #region NSwagSwaggerToTypeScriptClientSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NSwagSwaggerToTypeScriptClientSettingsExtensions { diff --git a/src/Fallout.Common/Tools/NSwag/NSwag.json b/src/Fallout.Application.Tools/NSwag/NSwag.json similarity index 100% rename from src/Fallout.Common/Tools/NSwag/NSwag.json rename to src/Fallout.Application.Tools/NSwag/NSwag.json diff --git a/src/Fallout.Common/Tools/NUnit/NUnit.Generated.cs b/src/Fallout.Application.Tools/NUnit/NUnit.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/NUnit/NUnit.Generated.cs rename to src/Fallout.Application.Tools/NUnit/NUnit.Generated.cs index c3e888756..b48405b08 100644 --- a/src/Fallout.Common/Tools/NUnit/NUnit.Generated.cs +++ b/src/Fallout.Application.Tools/NUnit/NUnit.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/NUnit/NUnit.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NUnit; +namespace Fallout.Application.Tools.NUnit; ///

NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 3.0, has been completely rewritten with many new features and support for a wide range of .NET platforms.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class NUnitTasks : ToolTasks, IRequireNuGetPackage ///

NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 3.0, has been completely rewritten with many new features and support for a wide range of .NET platforms.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <inputFiles> via
  • --agents via
  • --config via
  • --debug via
  • --debug-agent via
  • --dispose-runners via
  • --domain via
  • --encoding via
  • --err via
  • --explore via
  • --framework via
  • --inprocess via
  • --labels via
  • --list-extensions via
  • --loaduserprofile via
  • --nocolor via
  • --noheader via
  • --noresult via
  • --output via
  • --pause via
  • --process via
  • --result via
  • --seed via
  • --set-principal-policy via
  • --shadowcopy via
  • --skipnontestassemblies via
  • --stoponerror via
  • --teamcity via
  • --test via
  • --testlist via
  • --testparam via
  • --timeout via
  • --trace via
  • --wait via
  • --where via
  • --work via
  • --workers via
  • --x86 via
public static IReadOnlyCollection NUnit3(NUnit3Settings options = null) => new NUnitTasks().Run(options); - /// + /// public static IReadOnlyCollection NUnit3(Configure configurator) => new NUnitTasks().Run(configurator.Invoke(new NUnit3Settings())); - /// + /// public static IEnumerable<(NUnit3Settings Settings, IReadOnlyCollection Output)> NUnit3(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NUnit3, degreeOfParallelism, completeOnFailure); } #region NUnit3Settings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NUnitTasks), Command = nameof(NUnitTasks.NUnit3))] public partial class NUnit3Settings : ToolOptions @@ -119,7 +114,7 @@ public partial class NUnit3Settings : ToolOptions } #endregion #region NUnit3SettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NUnit3SettingsExtensions { diff --git a/src/Fallout.Common/Tools/NUnit/NUnit.json b/src/Fallout.Application.Tools/NUnit/NUnit.json similarity index 100% rename from src/Fallout.Common/Tools/NUnit/NUnit.json rename to src/Fallout.Application.Tools/NUnit/NUnit.json diff --git a/src/Fallout.Common/Tools/NUnit/NUnitTasks.cs b/src/Fallout.Application.Tools/NUnit/NUnitTasks.cs similarity index 82% rename from src/Fallout.Common/Tools/NUnit/NUnitTasks.cs rename to src/Fallout.Application.Tools/NUnit/NUnitTasks.cs index 8a742dc17..2b1008944 100644 --- a/src/Fallout.Common/Tools/NUnit/NUnitTasks.cs +++ b/src/Fallout.Application.Tools/NUnit/NUnitTasks.cs @@ -1,6 +1,6 @@ -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NUnit; +namespace Fallout.Application.Tools.NUnit; public class NUnitVerbosityMappingAttribute : VerbosityMappingAttribute { diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs similarity index 94% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs rename to src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs index adc22564f..2c4cf174f 100644 --- a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs +++ b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioning.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NerdbankGitVersioning; +namespace Fallout.Application.Tools.NerdbankGitVersioning; ///

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,55 +24,55 @@ public partial class NerdbankGitVersioningTasks : ToolTasks, IRequireNuGetPackag ///

Prepares a project to have version stamps applied using Nerdbank.GitVersioning.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --path via
  • --source via
  • --version via
public static IReadOnlyCollection NerdbankGitVersioningInstall(NerdbankGitVersioningInstallSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningInstall(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningInstallSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningInstallSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningInstall, degreeOfParallelism, completeOnFailure); ///

Gets the version information for a project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --format via
  • --metadata via
  • --project via
  • --variable via
public static (NerdbankGitVersioning Result, IReadOnlyCollection Output) NerdbankGitVersioningGetVersion(NerdbankGitVersioningGetVersionSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static (NerdbankGitVersioning Result, IReadOnlyCollection Output) NerdbankGitVersioningGetVersion(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningGetVersionSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningGetVersionSettings Settings, NerdbankGitVersioning Result, IReadOnlyCollection Output)> NerdbankGitVersioningGetVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningGetVersion, degreeOfParallelism, completeOnFailure); ///

Updates the version stamp that is applied to a project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --project via
public static IReadOnlyCollection NerdbankGitVersioningSetVersion(NerdbankGitVersioningSetVersionSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningSetVersion(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningSetVersionSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningSetVersionSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningSetVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningSetVersion, degreeOfParallelism, completeOnFailure); ///

Creates a git tag to mark a version.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --project via
public static IReadOnlyCollection NerdbankGitVersioningTag(NerdbankGitVersioningTagSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningTag(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningTagSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningTagSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningTag(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningTag, degreeOfParallelism, completeOnFailure); ///

Gets the commit(s) that match a given version.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --project via
  • --quiet via
public static IReadOnlyCollection NerdbankGitVersioningGetCommits(NerdbankGitVersioningGetCommitsSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningGetCommits(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningGetCommitsSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningGetCommitsSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningGetCommits(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningGetCommits, degreeOfParallelism, completeOnFailure); ///

Communicates with the ambient cloud build to set the build number and/or other cloud build variables.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all-vars via
  • --ci-system via
  • --common-vars via
  • --define via
  • --metadata via
  • --project via
  • --version via
public static IReadOnlyCollection NerdbankGitVersioningCloud(NerdbankGitVersioningCloudSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningCloud(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningCloudSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningCloudSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningCloud(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningCloud, degreeOfParallelism, completeOnFailure); ///

Prepares a release by creating a release branch for the current version and adjusting the version on the current branch.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -- via
  • --nextVersion via
  • --project via
  • --versionIncrement via
public static IReadOnlyCollection NerdbankGitVersioningPrepareRelease(NerdbankGitVersioningPrepareReleaseSettings options = null) => new NerdbankGitVersioningTasks().Run(options); - /// + /// public static IReadOnlyCollection NerdbankGitVersioningPrepareRelease(Configure configurator) => new NerdbankGitVersioningTasks().Run(configurator.Invoke(new NerdbankGitVersioningPrepareReleaseSettings())); - /// + /// public static IEnumerable<(NerdbankGitVersioningPrepareReleaseSettings Settings, IReadOnlyCollection Output)> NerdbankGitVersioningPrepareRelease(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NerdbankGitVersioningPrepareRelease, degreeOfParallelism, completeOnFailure); } #region NerdbankGitVersioningInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningInstall), Arguments = "install")] public partial class NerdbankGitVersioningInstallSettings : ToolOptions @@ -91,7 +86,7 @@ public partial class NerdbankGitVersioningInstallSettings : ToolOptions } #endregion #region NerdbankGitVersioningGetVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningGetVersion), Arguments = "get-version")] public partial class NerdbankGitVersioningGetVersionSettings : ToolOptions @@ -109,7 +104,7 @@ public partial class NerdbankGitVersioningGetVersionSettings : ToolOptions } #endregion #region NerdbankGitVersioningSetVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningSetVersion), Arguments = "set-version")] public partial class NerdbankGitVersioningSetVersionSettings : ToolOptions @@ -121,7 +116,7 @@ public partial class NerdbankGitVersioningSetVersionSettings : ToolOptions } #endregion #region NerdbankGitVersioningTagSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningTag), Arguments = "tag")] public partial class NerdbankGitVersioningTagSettings : ToolOptions @@ -133,7 +128,7 @@ public partial class NerdbankGitVersioningTagSettings : ToolOptions } #endregion #region NerdbankGitVersioningGetCommitsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningGetCommits), Arguments = "get-commits")] public partial class NerdbankGitVersioningGetCommitsSettings : ToolOptions @@ -147,7 +142,7 @@ public partial class NerdbankGitVersioningGetCommitsSettings : ToolOptions } #endregion #region NerdbankGitVersioningCloudSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningCloud), Arguments = "cloud")] public partial class NerdbankGitVersioningCloudSettings : ToolOptions @@ -169,7 +164,7 @@ public partial class NerdbankGitVersioningCloudSettings : ToolOptions } #endregion #region NerdbankGitVersioningPrepareReleaseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NerdbankGitVersioningTasks), Command = nameof(NerdbankGitVersioningTasks.NerdbankGitVersioningPrepareRelease), Arguments = "prepare-release")] public partial class NerdbankGitVersioningPrepareReleaseSettings : ToolOptions @@ -185,7 +180,7 @@ public partial class NerdbankGitVersioningPrepareReleaseSettings : ToolOptions } #endregion #region NerdbankGitVersioningInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningInstallSettingsExtensions { @@ -231,7 +226,7 @@ public static partial class NerdbankGitVersioningInstallSettingsExtensions } #endregion #region NerdbankGitVersioningGetVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningGetVersionSettingsExtensions { @@ -278,7 +273,7 @@ public static partial class NerdbankGitVersioningGetVersionSettingsExtensions } #endregion #region NerdbankGitVersioningSetVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningSetVersionSettingsExtensions { @@ -301,7 +296,7 @@ public static partial class NerdbankGitVersioningSetVersionSettingsExtensions } #endregion #region NerdbankGitVersioningTagSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningTagSettingsExtensions { @@ -324,7 +319,7 @@ public static partial class NerdbankGitVersioningTagSettingsExtensions } #endregion #region NerdbankGitVersioningGetCommitsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningGetCommitsSettingsExtensions { @@ -364,7 +359,7 @@ public static partial class NerdbankGitVersioningGetCommitsSettingsExtensions } #endregion #region NerdbankGitVersioningCloudSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningCloudSettingsExtensions { @@ -454,7 +449,7 @@ public static partial class NerdbankGitVersioningCloudSettingsExtensions } #endregion #region NerdbankGitVersioningPrepareReleaseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NerdbankGitVersioningPrepareReleaseSettingsExtensions { diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.json b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioning.json similarity index 100% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioning.json rename to src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioning.json diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs similarity index 58% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs rename to src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs index ff235424e..650525815 100644 --- a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs +++ b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningAttribute.cs @@ -1,12 +1,10 @@ using System; using System.Reflection; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Tooling; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NerdbankGitVersioning; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.NerdbankGitVersioning; /// /// Injects an instance of based on the local repository. @@ -24,9 +22,9 @@ public override object GetValue(MemberInfo member, object instance) if (UpdateBuildNumber) { - AzurePipelines.Instance?.UpdateBuildNumber(version.SemVer2); - TeamCity.Instance?.SetBuildNumber(version.SemVer2); - AppVeyor.Instance?.UpdateBuildVersion($"{version.SemVer2}.build.{AppVeyor.Instance.BuildNumber}"); + CiHost.AzurePipelines?.UpdateBuildNumber(version.SemVer2); + CiHost.TeamCity?.SetBuildNumber(version.SemVer2); + CiHost.AppVeyor?.UpdateBuildVersion($"{version.SemVer2}.build.{CiHost.AppVeyor.BuildNumber}"); } return version; diff --git a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs similarity index 90% rename from src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs rename to src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs index d9a560516..6e129c922 100644 --- a/src/Fallout.Common/Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs +++ b/src/Fallout.Application.Tools/NerdbankGitVersioning/NerdbankGitVersioningTasks.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tools.NerdbankGitVersioning; +namespace Fallout.Application.Tools.NerdbankGitVersioning; partial class NerdbankGitVersioningTasks { diff --git a/src/Fallout.Common/Tools/Netlify/Netlify.Generated.cs b/src/Fallout.Application.Tools/Netlify/Netlify.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/Netlify/Netlify.Generated.cs rename to src/Fallout.Application.Tools/Netlify/Netlify.Generated.cs index 91e1073e4..e0bbd1b38 100644 --- a/src/Fallout.Common/Tools/Netlify/Netlify.Generated.cs +++ b/src/Fallout.Application.Tools/Netlify/Netlify.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Netlify/Netlify.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Netlify; +namespace Fallout.Application.Tools.Netlify; ///

Netlify’s command line interface (CLI) lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,27 +24,27 @@ public partial class NetlifyTasks : ToolTasks, IRequirePathTool ///

Netlify’s command line interface (CLI) lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --alias via
  • --auth via
  • --branch via
  • --build via
  • --debug via
  • --dir via
  • --functions via
  • --httpProxy via
  • --httpProxyCertificateFilename via
  • --json via
  • --message via
  • --open via
  • --prod via
  • --prodIfUnlocked via
  • --site via
  • --timeout via
  • --trigger via
public static IReadOnlyCollection NetlifyDeploy(NetlifyDeploySettings options = null) => new NetlifyTasks().Run(options); - /// + /// public static IReadOnlyCollection NetlifyDeploy(Configure configurator) => new NetlifyTasks().Run(configurator.Invoke(new NetlifyDeploySettings())); - /// + /// public static IEnumerable<(NetlifyDeploySettings Settings, IReadOnlyCollection Output)> NetlifyDeploy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NetlifyDeploy, degreeOfParallelism, completeOnFailure); ///

Netlify’s command line interface (CLI) lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --account-slug via
  • --debug via
  • --httpProxy via
  • --httpProxyCertificateFilename via
  • --manual via
  • --name via
  • --with-ci via
public static (string Result, IReadOnlyCollection Output) NetlifySitesCreate(NetlifySitesCreateSettings options = null) => new NetlifyTasks().Run(options); - /// + /// public static (string Result, IReadOnlyCollection Output) NetlifySitesCreate(Configure configurator) => new NetlifyTasks().Run(configurator.Invoke(new NetlifySitesCreateSettings())); - /// + /// public static IEnumerable<(NetlifySitesCreateSettings Settings, string Result, IReadOnlyCollection Output)> NetlifySitesCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NetlifySitesCreate, degreeOfParallelism, completeOnFailure); ///

Netlify’s command line interface (CLI) lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <siteId> via
  • --debug via
  • --force via
  • --httpProxy via
  • --httpProxyCertificateFilename via
public static IReadOnlyCollection NetlifySitesDelete(NetlifySitesDeleteSettings options = null) => new NetlifyTasks().Run(options); - /// + /// public static IReadOnlyCollection NetlifySitesDelete(Configure configurator) => new NetlifyTasks().Run(configurator.Invoke(new NetlifySitesDeleteSettings())); - /// + /// public static IEnumerable<(NetlifySitesDeleteSettings Settings, IReadOnlyCollection Output)> NetlifySitesDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NetlifySitesDelete, degreeOfParallelism, completeOnFailure); } #region NetlifyDeploySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NetlifyTasks), Command = nameof(NetlifyTasks.NetlifyDeploy), Arguments = "netlify deploy")] public partial class NetlifyDeploySettings : ToolOptions @@ -90,7 +86,7 @@ public partial class NetlifyDeploySettings : ToolOptions } #endregion #region NetlifySitesCreateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NetlifyTasks), Command = nameof(NetlifyTasks.NetlifySitesCreate), Arguments = "netlify sites:create")] public partial class NetlifySitesCreateSettings : ToolOptions @@ -112,7 +108,7 @@ public partial class NetlifySitesCreateSettings : ToolOptions } #endregion #region NetlifySitesDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NetlifyTasks), Command = nameof(NetlifyTasks.NetlifySitesDelete), Arguments = "netlify sites:delete")] public partial class NetlifySitesDeleteSettings : ToolOptions @@ -130,7 +126,7 @@ public partial class NetlifySitesDeleteSettings : ToolOptions } #endregion #region NetlifyDeploySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NetlifyDeploySettingsExtensions { @@ -336,7 +332,7 @@ public static partial class NetlifyDeploySettingsExtensions } #endregion #region NetlifySitesCreateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NetlifySitesCreateSettingsExtensions { @@ -426,7 +422,7 @@ public static partial class NetlifySitesCreateSettingsExtensions } #endregion #region NetlifySitesDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NetlifySitesDeleteSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Netlify/Netlify.json b/src/Fallout.Application.Tools/Netlify/Netlify.json similarity index 100% rename from src/Fallout.Common/Tools/Netlify/Netlify.json rename to src/Fallout.Application.Tools/Netlify/Netlify.json diff --git a/src/Fallout.Common/Tools/Netlify/NetlifyTasks.cs b/src/Fallout.Application.Tools/Netlify/NetlifyTasks.cs similarity index 81% rename from src/Fallout.Common/Tools/Netlify/NetlifyTasks.cs rename to src/Fallout.Application.Tools/Netlify/NetlifyTasks.cs index 0c2ee173c..6d2315c6c 100644 --- a/src/Fallout.Common/Tools/Netlify/NetlifyTasks.cs +++ b/src/Fallout.Application.Tools/Netlify/NetlifyTasks.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Netlify; +namespace Fallout.Application.Tools.Netlify; partial class NetlifyTasks { diff --git a/src/Fallout.Common/Tools/Npm/Npm.Generated.cs b/src/Fallout.Application.Tools/Npm/Npm.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/Npm/Npm.Generated.cs rename to src/Fallout.Application.Tools/Npm/Npm.Generated.cs index 334e5896e..e59281cbd 100644 --- a/src/Fallout.Common/Tools/Npm/Npm.Generated.cs +++ b/src/Fallout.Application.Tools/Npm/Npm.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Npm/Npm.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Npm; +namespace Fallout.Application.Tools.Npm; ///

npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.It is extremely configurable to support a wide variety of use cases. Most commonly, it is used to publish, discover, install, and develop node programs.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,27 +23,27 @@ public partial class NpmTasks : ToolTasks, IRequirePathTool ///

Install a project with a clean slate. This command is similar to npm install, except it's meant to be used in automated environments such as test platforms, continuous integration, and deployment or any situation where you want to make sure you're doing a clean install of your dependencies. It can be significantly faster than a regular npm install by skipping certain user-oriented features. It is also more strict than a regular install, which can help catch errors or inconsistencies caused by the incrementally-installed local environments of most npm users.

In short, the main differences between using npm install and npm ci are:

  • The project must have an existing package-lock.json or npm-shrinkwrap.json.
  • If dependencies in the package lock do not match those in package.json, npm ci will exit with an error, instead of updating the package lock.
  • npm ci can only install entire projects at a time: individual dependencies cannot be added with this command.
  • If a node_modules is already present, it will be automatically removed before npm ci begins its install.
  • It will never write to package.json or any of the package-locks: installs are essentially frozen.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

public static IReadOnlyCollection NpmCi(NpmCiSettings options = null) => new NpmTasks().Run(options); - /// + /// public static IReadOnlyCollection NpmCi(Configure configurator) => new NpmTasks().Run(configurator.Invoke(new NpmCiSettings())); - /// + /// public static IEnumerable<(NpmCiSettings Settings, IReadOnlyCollection Output)> NpmCi(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NpmCi, degreeOfParallelism, completeOnFailure); ///

Installs a package, and any packages that it depends on. If the package has a package-lock or shrinkwrap file, the installation of dependencies will be driven by that, with an npm-shrinkwrap.json taking precedence if both files exist. See package-lock.json and npm-shrinkwrap.A package is:

  • a) A folder containing a program described by a package.json file
  • b) A gzipped tarball containing (b)
  • c) A url that resolves to (b)
  • d) a <name>@<version> that is published on the registry (see npm-registry) with (c)
  • e) a <name>@<tag> (see npm-dist-tag) that points to (d)
  • f) a <name> that has a "latest" tag satisfying (e)
  • g) a <git remote url> that resolves to (a)

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packages> via
  • --force via
  • --global via
  • --global-style via
  • --ignore-scripts via
  • --legacy-bundling via
  • --link via
  • --no-bin-links via
  • --no-optional via
  • --no-shrinkwrap via
  • --nodedir via
  • --only via
  • --production via
public static IReadOnlyCollection NpmInstall(NpmInstallSettings options = null) => new NpmTasks().Run(options); - /// + /// public static IReadOnlyCollection NpmInstall(Configure configurator) => new NpmTasks().Run(configurator.Invoke(new NpmInstallSettings())); - /// + /// public static IEnumerable<(NpmInstallSettings Settings, IReadOnlyCollection Output)> NpmInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NpmInstall, degreeOfParallelism, completeOnFailure); ///

Runs an arbitrary command from a package's "scripts" object. If no "command" is provided, it will list the available scripts. run[-script] is used by the test, start, restart, and stop commands, but can be called directly, as well. When the scripts in the package are printed out, they're separated into lifecycle (test, start, restart) and directly-run scripts."

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <command> via
  • -- via
public static IReadOnlyCollection NpmRun(NpmRunSettings options = null) => new NpmTasks().Run(options); - /// + /// public static IReadOnlyCollection NpmRun(Configure configurator) => new NpmTasks().Run(configurator.Invoke(new NpmRunSettings())); - /// + /// public static IEnumerable<(NpmRunSettings Settings, IReadOnlyCollection Output)> NpmRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NpmRun, degreeOfParallelism, completeOnFailure); } #region NpmCiSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NpmTasks), Command = nameof(NpmTasks.NpmCi), Arguments = "ci")] public partial class NpmCiSettings : ToolOptions @@ -56,7 +51,7 @@ public partial class NpmCiSettings : ToolOptions } #endregion #region NpmInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NpmTasks), Command = nameof(NpmTasks.NpmInstall), Arguments = "install")] public partial class NpmInstallSettings : ToolOptions @@ -90,7 +85,7 @@ public partial class NpmInstallSettings : ToolOptions } #endregion #region NpmRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NpmTasks), Command = nameof(NpmTasks.NpmRun), Arguments = "run")] public partial class NpmRunSettings : ToolOptions @@ -102,14 +97,14 @@ public partial class NpmRunSettings : ToolOptions } #endregion #region NpmCiSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NpmCiSettingsExtensions { } #endregion #region NpmInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NpmInstallSettingsExtensions { @@ -325,7 +320,7 @@ public static partial class NpmInstallSettingsExtensions } #endregion #region NpmRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NpmRunSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Npm/Npm.json b/src/Fallout.Application.Tools/Npm/Npm.json similarity index 100% rename from src/Fallout.Common/Tools/Npm/Npm.json rename to src/Fallout.Application.Tools/Npm/Npm.json diff --git a/src/Fallout.Common/Tools/Npm/NpmTasks.cs b/src/Fallout.Application.Tools/Npm/NpmTasks.cs similarity index 65% rename from src/Fallout.Common/Tools/Npm/NpmTasks.cs rename to src/Fallout.Application.Tools/Npm/NpmTasks.cs index badac614e..b722d5578 100644 --- a/src/Fallout.Common/Tools/Npm/NpmTasks.cs +++ b/src/Fallout.Application.Tools/Npm/NpmTasks.cs @@ -1,8 +1,8 @@ -using System; -using Fallout.Common.Tooling; +using System; using Serilog.Events; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Npm; +namespace Fallout.Application.Tools.Npm; [LogLevelPattern(LogEventLevel.Warning, "^(npmWARN|npm WARN)")] [LogLevelPattern(LogEventLevel.Debug, "^(npm notice)")] diff --git a/src/Fallout.Common/Tools/NuGet/NuGet.Generated.cs b/src/Fallout.Application.Tools/NuGet/NuGet.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/NuGet/NuGet.Generated.cs rename to src/Fallout.Application.Tools/NuGet/NuGet.Generated.cs index e673705d4..4242d6395 100644 --- a/src/Fallout.Common/Tools/NuGet/NuGet.Generated.cs +++ b/src/Fallout.Application.Tools/NuGet/NuGet.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/NuGet/NuGet.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NuGet; +namespace Fallout.Application.Tools.NuGet; ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,97 +25,97 @@ public partial class NuGetTasks : ToolTasks, IRequireNuGetPackage ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • -ApiKey via
  • -ConfigFile via
  • -DisableBuffering via
  • -ForceEnglishOutput via
  • -NonInteractive via
  • -NoSymbols via
  • -Source via
  • -SymbolApiKey via
  • -SymbolSource via
  • -Timeout via
  • -Verbosity via
public static IReadOnlyCollection NuGetPush(NuGetPushSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetPush(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetPushSettings())); - /// + /// public static IEnumerable<(NuGetPushSettings Settings, IReadOnlyCollection Output)> NuGetPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetPush, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageId> via
  • <packageVersion> via
  • -ApiKey via
  • -ConfigFile via
  • -ForceEnglishOutput via
  • -NonInteractive via
  • -NoPrompt via
  • -Source via
  • -Verbosity via
public static IReadOnlyCollection NuGetDelete(NuGetDeleteSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetDelete(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetDeleteSettings())); - /// + /// public static IEnumerable<(NuGetDeleteSettings Settings, IReadOnlyCollection Output)> NuGetDelete(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetDelete, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • -CertificateFingerprint via
  • -CertificatePassword via
  • -CertificatePath via
  • -CertificateStoreLocation via
  • -CertificateStoreName via
  • -CertificateSubjectName via
  • -ConfigFile via
  • -ForceEnglishOutput via
  • -HashAlgorithm via
  • -NonInteractive via
  • -OutputDirectory via
  • -Overwrite via
  • -Timestamper via
  • -TimestampHashAlgorithm via
  • -Verbosity via
public static IReadOnlyCollection NuGetSign(NuGetSignSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSign(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSignSettings())); - /// + /// public static IEnumerable<(NuGetSignSettings Settings, IReadOnlyCollection Output)> NuGetSign(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSign, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -CertificateFingerprint via
  • -ConfigFile via
  • -ForceEnglishOutput via
  • -NonInteractive via
  • -Signatures via
  • -Verbosity via
public static IReadOnlyCollection NuGetVerify(NuGetVerifySettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetVerify(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetVerifySettings())); - /// + /// public static IEnumerable<(NuGetVerifySettings Settings, IReadOnlyCollection Output)> NuGetVerify(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetVerify, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • -BasePath via
  • -Build via
  • -Exclude via
  • -ExcludeEmptyDirectories via
  • -ForceEnglishOutput via
  • -IncludeReferencedProjects via
  • -MinClientVersion via
  • -MSBuildPath via
  • -MSBuildVersion via
  • -NoDefaultExcludes via
  • -NoPackageAnalysis via
  • -OutputDirectory via
  • -Properties via
  • -Suffix via
  • -SymbolPackageFormat via
  • -Symbols via
  • -Tool via
  • -Verbosity via
  • -Version via
public static IReadOnlyCollection NuGetPack(NuGetPackSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetPack(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetPackSettings())); - /// + /// public static IEnumerable<(NuGetPackSettings Settings, IReadOnlyCollection Output)> NuGetPack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetPack, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetPath> via
  • -ConfigFile via
  • -DirectDownload via
  • -DisableParallelProcessing via
  • -FallbackSource via
  • -ForceEnglishOutput via
  • -MSBuildPath via
  • -MSBuildVersion via
  • -NoCache via
  • -NonInteractive via
  • -OutputDirectory via
  • -PackageSaveMode via
  • -PackagesDirectory via
  • -Project2ProjectTimeOut via
  • -Recursive via
  • -RequireConsent via
  • -SolutionDirectory via
  • -Source via
  • -Verbosity via
public static IReadOnlyCollection NuGetRestore(NuGetRestoreSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetRestore(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetRestoreSettings())); - /// + /// public static IEnumerable<(NuGetRestoreSettings Settings, IReadOnlyCollection Output)> NuGetRestore(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetRestore, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageID> via
  • -ConfigFile via
  • -DependencyVersion via
  • -DisableParallelProcessing via
  • -ExcludeVersion via
  • -FallbackSource via
  • -ForceEnglishOutput via
  • -Framework via
  • -NoCache via
  • -NonInteractive via
  • -OutputDirectory via
  • -PackageSaveMode via
  • -PreRelease via
  • -RequireConsent via
  • -SolutionDirectory via
  • -Source via
  • -Verbosity via
  • -Version via
public static IReadOnlyCollection NuGetInstall(NuGetInstallSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetInstall(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetInstallSettings())); - /// + /// public static IEnumerable<(NuGetInstallSettings Settings, IReadOnlyCollection Output)> NuGetInstall(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetInstall, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Name via
  • -NonInteractive via
  • -Password via
  • -Source via
  • -StorePasswordInClearText via
  • -UserName via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesAdd(NuGetSourcesAddSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesAdd(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesAddSettings())); - /// + /// public static IEnumerable<(NuGetSourcesAddSettings Settings, IReadOnlyCollection Output)> NuGetSourcesAdd(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesAdd, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Name via
  • -NonInteractive via
  • -Password via
  • -Source via
  • -StorePasswordInClearText via
  • -UserName via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesUpdate(NuGetSourcesUpdateSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesUpdate(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesUpdateSettings())); - /// + /// public static IEnumerable<(NuGetSourcesUpdateSettings Settings, IReadOnlyCollection Output)> NuGetSourcesUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesUpdate, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Name via
  • -NonInteractive via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesRemove(NuGetSourcesRemoveSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesRemove(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesRemoveSettings())); - /// + /// public static IEnumerable<(NuGetSourcesRemoveSettings Settings, IReadOnlyCollection Output)> NuGetSourcesRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesRemove, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Name via
  • -NonInteractive via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesEnable(NuGetSourcesEnableSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesEnable(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesEnableSettings())); - /// + /// public static IEnumerable<(NuGetSourcesEnableSettings Settings, IReadOnlyCollection Output)> NuGetSourcesEnable(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesEnable, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Name via
  • -NonInteractive via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesDisable(NuGetSourcesDisableSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesDisable(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesDisableSettings())); - /// + /// public static IEnumerable<(NuGetSourcesDisableSettings Settings, IReadOnlyCollection Output)> NuGetSourcesDisable(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesDisable, degreeOfParallelism, completeOnFailure); ///

The NuGet Command Line Interface (CLI) provides the full extent of NuGet functionality to install, create, publish, and manage packages.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -ConfigFile via
  • -ForceEnglishOutput via
  • -Format via
  • -NonInteractive via
  • -Verbosity via
public static IReadOnlyCollection NuGetSourcesList(NuGetSourcesListSettings options = null) => new NuGetTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetSourcesList(Configure configurator) => new NuGetTasks().Run(configurator.Invoke(new NuGetSourcesListSettings())); - /// + /// public static IEnumerable<(NuGetSourcesListSettings Settings, IReadOnlyCollection Output)> NuGetSourcesList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetSourcesList, degreeOfParallelism, completeOnFailure); } #region NuGetPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetPush), Arguments = "push")] public partial class NuGetPushSettings : ToolOptions @@ -151,7 +147,7 @@ public partial class NuGetPushSettings : ToolOptions } #endregion #region NuGetDeleteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetDelete), Arguments = "delete")] public partial class NuGetDeleteSettings : ToolOptions @@ -177,7 +173,7 @@ public partial class NuGetDeleteSettings : ToolOptions } #endregion #region NuGetSignSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSign), Arguments = "sign")] public partial class NuGetSignSettings : ToolOptions @@ -217,7 +213,7 @@ public partial class NuGetSignSettings : ToolOptions } #endregion #region NuGetVerifySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetVerify), Arguments = "verify")] public partial class NuGetVerifySettings : ToolOptions @@ -237,7 +233,7 @@ public partial class NuGetVerifySettings : ToolOptions } #endregion #region NuGetPackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetPack), Arguments = "pack")] public partial class NuGetPackSettings : ToolOptions @@ -285,7 +281,7 @@ public partial class NuGetPackSettings : ToolOptions } #endregion #region NuGetRestoreSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetRestore), Arguments = "restore")] public partial class NuGetRestoreSettings : ToolOptions @@ -331,7 +327,7 @@ public partial class NuGetRestoreSettings : ToolOptions } #endregion #region NuGetInstallSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetInstall), Arguments = "install")] public partial class NuGetInstallSettings : ToolOptions @@ -375,7 +371,7 @@ public partial class NuGetInstallSettings : ToolOptions } #endregion #region NuGetSourcesAddSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesAdd), Arguments = "sources add")] public partial class NuGetSourcesAddSettings : ToolOptions @@ -401,7 +397,7 @@ public partial class NuGetSourcesAddSettings : ToolOptions } #endregion #region NuGetSourcesUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesUpdate), Arguments = "sources update")] public partial class NuGetSourcesUpdateSettings : ToolOptions @@ -427,7 +423,7 @@ public partial class NuGetSourcesUpdateSettings : ToolOptions } #endregion #region NuGetSourcesRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesRemove), Arguments = "sources remove")] public partial class NuGetSourcesRemoveSettings : ToolOptions @@ -445,7 +441,7 @@ public partial class NuGetSourcesRemoveSettings : ToolOptions } #endregion #region NuGetSourcesEnableSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesEnable), Arguments = "sources enable")] public partial class NuGetSourcesEnableSettings : ToolOptions @@ -463,7 +459,7 @@ public partial class NuGetSourcesEnableSettings : ToolOptions } #endregion #region NuGetSourcesDisableSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesDisable), Arguments = "sources disable")] public partial class NuGetSourcesDisableSettings : ToolOptions @@ -481,7 +477,7 @@ public partial class NuGetSourcesDisableSettings : ToolOptions } #endregion #region NuGetSourcesListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetTasks), Command = nameof(NuGetTasks.NuGetSourcesList), Arguments = "sources list")] public partial class NuGetSourcesListSettings : ToolOptions @@ -499,7 +495,7 @@ public partial class NuGetSourcesListSettings : ToolOptions } #endregion #region NuGetPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetPushSettingsExtensions { @@ -638,7 +634,7 @@ public static partial class NuGetPushSettingsExtensions } #endregion #region NuGetDeleteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetDeleteSettingsExtensions { @@ -744,7 +740,7 @@ public static partial class NuGetDeleteSettingsExtensions } #endregion #region NuGetSignSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSignSettingsExtensions { @@ -906,7 +902,7 @@ public static partial class NuGetSignSettingsExtensions } #endregion #region NuGetVerifySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetVerifySettingsExtensions { @@ -979,7 +975,7 @@ public static partial class NuGetVerifySettingsExtensions } #endregion #region NuGetPackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetPackSettingsExtensions { @@ -1244,7 +1240,7 @@ public static partial class NuGetPackSettingsExtensions } #endregion #region NuGetRestoreSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetRestoreSettingsExtensions { @@ -1511,7 +1507,7 @@ public static partial class NuGetRestoreSettingsExtensions } #endregion #region NuGetInstallSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetInstallSettingsExtensions { @@ -1770,7 +1766,7 @@ public static partial class NuGetInstallSettingsExtensions } #endregion #region NuGetSourcesAddSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesAddSettingsExtensions { @@ -1876,7 +1872,7 @@ public static partial class NuGetSourcesAddSettingsExtensions } #endregion #region NuGetSourcesUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesUpdateSettingsExtensions { @@ -1982,7 +1978,7 @@ public static partial class NuGetSourcesUpdateSettingsExtensions } #endregion #region NuGetSourcesRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesRemoveSettingsExtensions { @@ -2047,7 +2043,7 @@ public static partial class NuGetSourcesRemoveSettingsExtensions } #endregion #region NuGetSourcesEnableSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesEnableSettingsExtensions { @@ -2112,7 +2108,7 @@ public static partial class NuGetSourcesEnableSettingsExtensions } #endregion #region NuGetSourcesDisableSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesDisableSettingsExtensions { @@ -2177,7 +2173,7 @@ public static partial class NuGetSourcesDisableSettingsExtensions } #endregion #region NuGetSourcesListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetSourcesListSettingsExtensions { diff --git a/src/Fallout.Common/Tools/NuGet/NuGet.json b/src/Fallout.Application.Tools/NuGet/NuGet.json similarity index 100% rename from src/Fallout.Common/Tools/NuGet/NuGet.json rename to src/Fallout.Application.Tools/NuGet/NuGet.json diff --git a/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs b/src/Fallout.Application.Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs rename to src/Fallout.Application.Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs index 7c0fea017..531656217 100644 --- a/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs +++ b/src/Fallout.Application.Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.NuGetKeyVaultSignTool; +namespace Fallout.Application.Tools.NuGetKeyVaultSignTool; ///

NuGet Key Vault Sign Tool is similar to nuget sign, with the major difference being that it uses Azure Key Vault for performing the signing process. Similar usage configuration like AzureSignTool, except is used to sign nuget package.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +25,13 @@ public partial class NuGetKeyVaultSignToolTasks : ToolTasks, IRequireNuGetPackag ///

NuGet Key Vault Sign Tool is similar to nuget sign, with the major difference being that it uses Azure Key Vault for performing the signing process. Similar usage configuration like AzureSignTool, except is used to sign nuget package.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <file> via
  • --azure-key-vault-accesstoken via
  • --azure-key-vault-certificate via
  • --azure-key-vault-client-id via
  • --azure-key-vault-client-secret via
  • --azure-key-vault-managed-identity via
  • --azure-key-vault-tenant-id via
  • --azure-key-vault-url via
  • --file-digest via
  • --force via
  • --output via
  • --timestamp-digest via
  • --timestamp-rfc3161 via
public static IReadOnlyCollection NuGetKeyVaultSignTool(NuGetKeyVaultSignToolSettings options = null) => new NuGetKeyVaultSignToolTasks().Run(options); - /// + /// public static IReadOnlyCollection NuGetKeyVaultSignTool(Configure configurator) => new NuGetKeyVaultSignToolTasks().Run(configurator.Invoke(new NuGetKeyVaultSignToolSettings())); - /// + /// public static IEnumerable<(NuGetKeyVaultSignToolSettings Settings, IReadOnlyCollection Output)> NuGetKeyVaultSignTool(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(NuGetKeyVaultSignTool, degreeOfParallelism, completeOnFailure); } #region NuGetKeyVaultSignToolSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(NuGetKeyVaultSignToolTasks), Command = nameof(NuGetKeyVaultSignToolTasks.NuGetKeyVaultSignTool), Arguments = "sign")] public partial class NuGetKeyVaultSignToolSettings : ToolOptions @@ -69,7 +65,7 @@ public partial class NuGetKeyVaultSignToolSettings : ToolOptions } #endregion #region NuGetKeyVaultSignToolSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class NuGetKeyVaultSignToolSettingsExtensions { diff --git a/src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json b/src/Fallout.Application.Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json similarity index 100% rename from src/Fallout.Common/Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json rename to src/Fallout.Application.Tools/NuGetKeyVaultSignTool/NuGetKeyVaultSignTool.json diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersion.Generated.cs b/src/Fallout.Application.Tools/OctoVersion/OctoVersion.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersion.Generated.cs rename to src/Fallout.Application.Tools/OctoVersion/OctoVersion.Generated.cs index c979c3bb4..d85cc39bf 100644 --- a/src/Fallout.Common/Tools/OctoVersion/OctoVersion.Generated.cs +++ b/src/Fallout.Application.Tools/OctoVersion/OctoVersion.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/OctoVersion/OctoVersion.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.OctoVersion; +namespace Fallout.Application.Tools.OctoVersion; ///

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +24,20 @@ public partial class OctoVersionTasks : ToolTasks, IRequireNuGetPackage ///

Gets the version information for a project.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --BuildMetadata via
  • --CurrentBranch via
  • --DetectEnvironment via
  • --FullSemVer via
  • --Major via
  • --Minor via
  • --NonPreReleaseTags via
  • --OutputFormats via
  • --OutputJsonFile via
  • --Patch via
  • --PreReleaseTag via
  • --RepositoryPath via
public static (OctoVersionInfo Result, IReadOnlyCollection Output) OctoVersionGetVersion(OctoVersionGetVersionSettings options = null) => new OctoVersionTasks().Run(options); - /// + /// public static (OctoVersionInfo Result, IReadOnlyCollection Output) OctoVersionGetVersion(Configure configurator) => new OctoVersionTasks().Run(configurator.Invoke(new OctoVersionGetVersionSettings())); - /// + /// public static IEnumerable<(OctoVersionGetVersionSettings Settings, OctoVersionInfo Result, IReadOnlyCollection Output)> OctoVersionGetVersion(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctoVersionGetVersion, degreeOfParallelism, completeOnFailure); ///

Executes OctoVersion information for a project, without trying to parse the output.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --BuildMetadata via
  • --CurrentBranch via
  • --DetectEnvironment via
  • --FullSemVer via
  • --Major via
  • --Minor via
  • --NonPreReleaseTags via
  • --OutputFormats via
  • --OutputJsonFile via
  • --Patch via
  • --PreReleaseTag via
  • --RepositoryPath via
public static IReadOnlyCollection OctoVersionExecute(OctoVersionExecuteSettings options = null) => new OctoVersionTasks().Run(options); - /// + /// public static IReadOnlyCollection OctoVersionExecute(Configure configurator) => new OctoVersionTasks().Run(configurator.Invoke(new OctoVersionExecuteSettings())); - /// + /// public static IEnumerable<(OctoVersionExecuteSettings Settings, IReadOnlyCollection Output)> OctoVersionExecute(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctoVersionExecute, degreeOfParallelism, completeOnFailure); } #region OctoVersionGetVersionSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctoVersionTasks), Command = nameof(OctoVersionTasks.OctoVersionGetVersion), Arguments = "octoversion")] public partial class OctoVersionGetVersionSettings : ToolOptions, IToolOptionsWithFramework @@ -74,7 +69,7 @@ public partial class OctoVersionGetVersionSettings : ToolOptions, IToolOptionsWi } #endregion #region OctoVersionExecuteSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctoVersionTasks), Command = nameof(OctoVersionTasks.OctoVersionExecute), Arguments = "octoversion")] public partial class OctoVersionExecuteSettings : ToolOptions, IToolOptionsWithFramework @@ -106,7 +101,7 @@ public partial class OctoVersionExecuteSettings : ToolOptions, IToolOptionsWithF } #endregion #region OctoVersionGetVersionSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctoVersionGetVersionSettingsExtensions { @@ -248,7 +243,7 @@ public static partial class OctoVersionGetVersionSettingsExtensions } #endregion #region OctoVersionExecuteSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctoVersionExecuteSettingsExtensions { diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersion.json b/src/Fallout.Application.Tools/OctoVersion/OctoVersion.json similarity index 100% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersion.json rename to src/Fallout.Application.Tools/OctoVersion/OctoVersion.json diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersionAttribute.cs b/src/Fallout.Application.Tools/OctoVersion/OctoVersionAttribute.cs similarity index 91% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersionAttribute.cs rename to src/Fallout.Application.Tools/OctoVersion/OctoVersionAttribute.cs index 2a931a425..4384e675e 100644 --- a/src/Fallout.Common/Tools/OctoVersion/OctoVersionAttribute.cs +++ b/src/Fallout.Application.Tools/OctoVersion/OctoVersionAttribute.cs @@ -1,16 +1,15 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application.Git; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tools.OctoVersion; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.OctoVersion; /// /// Injects an instance of based on the local repository. @@ -148,9 +147,9 @@ public override object GetValue(MemberInfo member, object instance) if (UpdateBuildNumber) { - AzurePipelines.Instance?.UpdateBuildNumber(version.FullSemVer); - TeamCity.Instance?.SetBuildNumber(version.FullSemVer); - AppVeyor.Instance?.UpdateBuildVersion(version.FullSemVer); + CiHost.AzurePipelines?.UpdateBuildNumber(version.FullSemVer); + CiHost.TeamCity?.SetBuildNumber(version.FullSemVer); + CiHost.AppVeyor?.UpdateBuildVersion(version.FullSemVer); } return version; diff --git a/src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs b/src/Fallout.Application.Tools/OctoVersion/OctoVersionTasks.cs similarity index 91% rename from src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs rename to src/Fallout.Application.Tools/OctoVersion/OctoVersionTasks.cs index e448d44d8..48af80726 100644 --- a/src/Fallout.Common/Tools/OctoVersion/OctoVersionTasks.cs +++ b/src/Fallout.Application.Tools/OctoVersion/OctoVersionTasks.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tools.OctoVersion; +namespace Fallout.Application.Tools.OctoVersion; partial class OctoVersionTasks { diff --git a/src/Fallout.Common/Tools/Octopus/Octopus.Generated.cs b/src/Fallout.Application.Tools/Octopus/Octopus.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/Octopus/Octopus.Generated.cs rename to src/Fallout.Application.Tools/Octopus/Octopus.Generated.cs index c8ec07da2..c083fbc2d 100644 --- a/src/Fallout.Common/Tools/Octopus/Octopus.Generated.cs +++ b/src/Fallout.Application.Tools/Octopus/Octopus.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Octopus/Octopus.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Octopus; +namespace Fallout.Application.Tools.Octopus; ///

Octopus Deploy is an automated deployment server, which you install yourself, much like you would install SQL Server, Team Foundation Server or JetBrains TeamCity. Octopus makes it easy to automate deployment of ASP.NET web applications and Windows Services into development, test and production environments.Along with the Octopus Deploy server, you'll also install a lightweight agent service on each of the machines that you plan to deploy to, for example your web and application servers. We call this the Tentacle agent; the idea being that one Octopus server controls many Tentacles, potentially a lot more than 8! With Octopus and Tentacle, you can easily deploy to your own servers, or cloud services from providers like Amazon Web Services or Microsoft Azure.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,41 +25,41 @@ public partial class OctopusTasks : ToolTasks, IRequireNuGetPackage ///

The Octo.exe pack command provides a number of other useful parameters that can be used to customize the way your package gets created, such as output folder, files to include and release notes.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --author via
  • --basePath via
  • --description via
  • --format via
  • --id via
  • --include via
  • --outFolder via
  • --overwrite via
  • --releaseNotes via
  • --releaseNotesFile via
  • --title via
  • --verbose via
  • --version via
public static IReadOnlyCollection OctopusPack(OctopusPackSettings options = null) => new OctopusTasks().Run(options); - /// + /// public static IReadOnlyCollection OctopusPack(Configure configurator) => new OctopusTasks().Run(configurator.Invoke(new OctopusPackSettings())); - /// + /// public static IEnumerable<(OctopusPackSettings Settings, IReadOnlyCollection Output)> OctopusPack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctopusPack, degreeOfParallelism, completeOnFailure); ///

The Octo.exe push command can push any of the supported packages types listed on this page.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --apiKey via
  • --configFile via
  • --debug via
  • --enableServiceMessages via
  • --ignoreSslErrors via
  • --logLevel via
  • --package via
  • --pass via
  • --proxy via
  • --proxyPass via
  • --proxyUser via
  • --replace-existing via
  • --server via
  • --space via
  • --timeout via
  • --user via
public static IReadOnlyCollection OctopusPush(OctopusPushSettings options = null) => new OctopusTasks().Run(options); - /// + /// public static IReadOnlyCollection OctopusPush(Configure configurator) => new OctopusTasks().Run(configurator.Invoke(new OctopusPushSettings())); - /// + /// public static IEnumerable<(OctopusPushSettings Settings, IReadOnlyCollection Output)> OctopusPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctopusPush, degreeOfParallelism, completeOnFailure); ///

The Octo.exe create-release can be used to automate the creation of releases. This allows you to easily integrate Octopus with other continuous integration servers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --apiKey via
  • --cancelontimeout via
  • --channel via
  • --configFile via
  • --debug via
  • --deployat via
  • --deploymentchecksleepcycle via
  • --deploymenttimeout via
  • --deployto via
  • --enableServiceMessages via
  • --force via
  • --forcepackagedownload via
  • --gitCommit via
  • --gitRef via
  • --guidedfailure via
  • --ignorechannelrules via
  • --ignoreexisting via
  • --ignoreSslErrors via
  • --logLevel via
  • --norawlog via
  • --package via
  • --packageprerelease via
  • --packagesFolder via
  • --packageversion via
  • --pass via
  • --progress via
  • --project via
  • --proxy via
  • --proxyPass via
  • --proxyUser via
  • --rawlogfile via
  • --releasenotes via
  • --releasenotesfile via
  • --server via
  • --skip via
  • --space via
  • --specificmachines via
  • --tenant via
  • --tenanttag via
  • --timeout via
  • --user via
  • --variable via
  • --version via
  • --waitfordeployment via
  • --whatif via
public static IReadOnlyCollection OctopusCreateRelease(OctopusCreateReleaseSettings options = null) => new OctopusTasks().Run(options); - /// + /// public static IReadOnlyCollection OctopusCreateRelease(Configure configurator) => new OctopusTasks().Run(configurator.Invoke(new OctopusCreateReleaseSettings())); - /// + /// public static IEnumerable<(OctopusCreateReleaseSettings Settings, IReadOnlyCollection Output)> OctopusCreateRelease(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctopusCreateRelease, degreeOfParallelism, completeOnFailure); ///

The Octo.exe deploy-release can be used to automate the deployment of releases to environments. This allows you to easily integrate Octopus with other continuous integration servers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --apiKey via
  • --cancelontimeout via
  • --channel via
  • --configFile via
  • --debug via
  • --deployat via
  • --deploymentchecksleepcycle via
  • --deploymenttimeout via
  • --deployto via
  • --enableServiceMessages via
  • --force via
  • --forcepackagedownload via
  • --guidedfailure via
  • --ignoreSslErrors via
  • --logLevel via
  • --norawlog via
  • --pass via
  • --progress via
  • --project via
  • --proxy via
  • --proxyPass via
  • --proxyUser via
  • --rawlogfile via
  • --server via
  • --skip via
  • --space via
  • --specificmachines via
  • --tenant via
  • --tenanttag via
  • --timeout via
  • --updateVariables via
  • --user via
  • --variable via
  • --version via
  • --waitfordeployment via
public static IReadOnlyCollection OctopusDeployRelease(OctopusDeployReleaseSettings options = null) => new OctopusTasks().Run(options); - /// + /// public static IReadOnlyCollection OctopusDeployRelease(Configure configurator) => new OctopusTasks().Run(configurator.Invoke(new OctopusDeployReleaseSettings())); - /// + /// public static IEnumerable<(OctopusDeployReleaseSettings Settings, IReadOnlyCollection Output)> OctopusDeployRelease(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctopusDeployRelease, degreeOfParallelism, completeOnFailure); ///

The Octo.exe build-information command push build information to Octopus Server.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --apiKey via
  • --configFile via
  • --debug via
  • --enableServiceMessages via
  • --file via
  • --ignoreSslErrors via
  • --logLevel via
  • --overwrite-mode via
  • --package-id via
  • --pass via
  • --proxy via
  • --proxyPass via
  • --proxyUser via
  • --server via
  • --space via
  • --timeout via
  • --user via
  • --version via
public static IReadOnlyCollection OctopusBuildInformation(OctopusBuildInformationSettings options = null) => new OctopusTasks().Run(options); - /// + /// public static IReadOnlyCollection OctopusBuildInformation(Configure configurator) => new OctopusTasks().Run(configurator.Invoke(new OctopusBuildInformationSettings())); - /// + /// public static IEnumerable<(OctopusBuildInformationSettings Settings, IReadOnlyCollection Output)> OctopusBuildInformation(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OctopusBuildInformation, degreeOfParallelism, completeOnFailure); } #region OctopusPackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctopusTasks), Command = nameof(OctopusTasks.OctopusPack), Arguments = "pack")] public partial class OctopusPackSettings : ToolOptions, IToolOptionsWithFramework @@ -99,7 +95,7 @@ public partial class OctopusPackSettings : ToolOptions, IToolOptionsWithFramewor } #endregion #region OctopusPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctopusTasks), Command = nameof(OctopusTasks.OctopusPush), Arguments = "push")] public partial class OctopusPushSettings : ToolOptions, IToolOptionsWithFramework @@ -139,7 +135,7 @@ public partial class OctopusPushSettings : ToolOptions, IToolOptionsWithFramewor } #endregion #region OctopusCreateReleaseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctopusTasks), Command = nameof(OctopusTasks.OctopusCreateRelease), Arguments = "create-release")] public partial class OctopusCreateReleaseSettings : ToolOptions, IToolOptionsWithFramework @@ -237,7 +233,7 @@ public partial class OctopusCreateReleaseSettings : ToolOptions, IToolOptionsWit } #endregion #region OctopusDeployReleaseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctopusTasks), Command = nameof(OctopusTasks.OctopusDeployRelease), Arguments = "deploy-release")] public partial class OctopusDeployReleaseSettings : ToolOptions, IToolOptionsWithFramework @@ -315,7 +311,7 @@ public partial class OctopusDeployReleaseSettings : ToolOptions, IToolOptionsWit } #endregion #region OctopusBuildInformationSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OctopusTasks), Command = nameof(OctopusTasks.OctopusBuildInformation), Arguments = "build-information")] public partial class OctopusBuildInformationSettings : ToolOptions, IToolOptionsWithFramework @@ -359,7 +355,7 @@ public partial class OctopusBuildInformationSettings : ToolOptions, IToolOptions } #endregion #region OctopusPackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctopusPackSettingsExtensions { @@ -526,7 +522,7 @@ public static partial class OctopusPackSettingsExtensions } #endregion #region OctopusPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctopusPushSettingsExtensions { @@ -712,7 +708,7 @@ public static partial class OctopusPushSettingsExtensions } #endregion #region OctopusCreateReleaseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctopusCreateReleaseSettingsExtensions { @@ -1244,7 +1240,7 @@ public static partial class OctopusCreateReleaseSettingsExtensions } #endregion #region OctopusDeployReleaseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctopusDeployReleaseSettingsExtensions { @@ -1669,7 +1665,7 @@ public static partial class OctopusDeployReleaseSettingsExtensions } #endregion #region OctopusBuildInformationSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OctopusBuildInformationSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Octopus/Octopus.json b/src/Fallout.Application.Tools/Octopus/Octopus.json similarity index 100% rename from src/Fallout.Common/Tools/Octopus/Octopus.json rename to src/Fallout.Application.Tools/Octopus/Octopus.json diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCover.Generated.cs b/src/Fallout.Application.Tools/OpenCover/OpenCover.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/OpenCover/OpenCover.Generated.cs rename to src/Fallout.Application.Tools/OpenCover/OpenCover.Generated.cs index 00a9f5334..a3a37ef42 100644 --- a/src/Fallout.Common/Tools/OpenCover/OpenCover.Generated.cs +++ b/src/Fallout.Application.Tools/OpenCover/OpenCover.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/OpenCover/OpenCover.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.OpenCover; +namespace Fallout.Application.Tools.OpenCover; ///

OpenCover is a code coverage tool for .NET 2 and above (Windows OSs only - no MONO), with support for 32 and 64 processes and covers both branch and sequence points.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class OpenCoverTasks : ToolTasks, IRequireNuGetPackage ///

OpenCover is a code coverage tool for .NET 2 and above (Windows OSs only - no MONO), with support for 32 and 64 processes and covers both branch and sequence points.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -coverbytest via
  • -enableperformancecounters via
  • -excludebyattribute via
  • -excludebyfile via
  • -excludedirs via
  • -filter via
  • -hideskipped via
  • -log via
  • -mergebyhash via
  • -mergeoutput via
  • -nodefaultfilters via
  • -oldStyle via
  • -output via
  • -register via
  • -returntargetcode via
  • -safemode via
  • -searchdirs via
  • -service via
  • -showunvisited via
  • -skipautoprops via
  • -target via
  • -targetargs via
  • -targetdir via
  • -threshold via
public static IReadOnlyCollection OpenCover(OpenCoverSettings options = null) => new OpenCoverTasks().Run(options); - /// + /// public static IReadOnlyCollection OpenCover(Configure configurator) => new OpenCoverTasks().Run(configurator.Invoke(new OpenCoverSettings())); - /// + /// public static IEnumerable<(OpenCoverSettings Settings, IReadOnlyCollection Output)> OpenCover(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(OpenCover, degreeOfParallelism, completeOnFailure); } #region OpenCoverSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(OpenCoverTasks), Command = nameof(OpenCoverTasks.OpenCover))] public partial class OpenCoverSettings : ToolOptions @@ -91,7 +86,7 @@ public partial class OpenCoverSettings : ToolOptions } #endregion #region OpenCoverSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class OpenCoverSettingsExtensions { diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCover.json b/src/Fallout.Application.Tools/OpenCover/OpenCover.json similarity index 100% rename from src/Fallout.Common/Tools/OpenCover/OpenCover.json rename to src/Fallout.Application.Tools/OpenCover/OpenCover.json diff --git a/src/Fallout.Common/Tools/OpenCover/OpenCoverTasks.cs b/src/Fallout.Application.Tools/OpenCover/OpenCoverTasks.cs similarity index 90% rename from src/Fallout.Common/Tools/OpenCover/OpenCoverTasks.cs rename to src/Fallout.Application.Tools/OpenCover/OpenCoverTasks.cs index a40535c73..42ea2fbf2 100644 --- a/src/Fallout.Common/Tools/OpenCover/OpenCoverTasks.cs +++ b/src/Fallout.Application.Tools/OpenCover/OpenCoverTasks.cs @@ -1,7 +1,7 @@ -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.OpenCover; +namespace Fallout.Application.Tools.OpenCover; public class OpenCoverVerbosityMappingAttribute : VerbosityMappingAttribute { diff --git a/src/Fallout.Common/Tools/Paket/Paket.Generated.cs b/src/Fallout.Application.Tools/Paket/Paket.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Paket/Paket.Generated.cs rename to src/Fallout.Application.Tools/Paket/Paket.Generated.cs index 288956b44..125ba5544 100644 --- a/src/Fallout.Common/Tools/Paket/Paket.Generated.cs +++ b/src/Fallout.Application.Tools/Paket/Paket.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Paket/Paket.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Paket; +namespace Fallout.Application.Tools.Paket; ///

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

If you want to learn how to use Paket then read the Getting started tutorial and take a look at the FAQs.

If you are already using NuGet for package management in your solution then you can learn about the upgrade process in the convert from NuGet section.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,34 +25,34 @@ public partial class PaketTasks : ToolTasks, IRequireNuGetPackage ///

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

If you want to learn how to use Paket then read the Getting started tutorial and take a look at the FAQs.

If you are already using NuGet for package management in your solution then you can learn about the upgrade process in the convert from NuGet section.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <packageId> via
  • --clean-redirects via
  • --create-new-binding-files via
  • --filter via
  • --force via
  • --from-bootstrapper via
  • --group via
  • --keep-major via
  • --keep-minor via
  • --keep-patch via
  • --log-file via
  • --no-install via
  • --redirects via
  • --silent via
  • --touch-affected-refs via
  • --verbose via
  • --version via
public static IReadOnlyCollection PaketUpdate(PaketUpdateSettings options = null) => new PaketTasks().Run(options); - /// + /// public static IReadOnlyCollection PaketUpdate(Configure configurator) => new PaketTasks().Run(configurator.Invoke(new PaketUpdateSettings())); - /// + /// public static IEnumerable<(PaketUpdateSettings Settings, IReadOnlyCollection Output)> PaketUpdate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PaketUpdate, degreeOfParallelism, completeOnFailure); ///

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

If you want to learn how to use Paket then read the Getting started tutorial and take a look at the FAQs.

If you are already using NuGet for package management in your solution then you can learn about the upgrade process in the convert from NuGet section.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --fail-on-checks via
  • --force via
  • --from-bootstrapper via
  • --group via
  • --ignore-checks via
  • --log-file via
  • --only-referenced via
  • --project via
  • --references-files via
  • --silent via
  • --target-framework via
  • --touch-affected-refs via
  • --verbose via
public static IReadOnlyCollection PaketRestore(PaketRestoreSettings options = null) => new PaketTasks().Run(options); - /// + /// public static IReadOnlyCollection PaketRestore(Configure configurator) => new PaketTasks().Run(configurator.Invoke(new PaketRestoreSettings())); - /// + /// public static IEnumerable<(PaketRestoreSettings Settings, IReadOnlyCollection Output)> PaketRestore(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PaketRestore, degreeOfParallelism, completeOnFailure); ///

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

If you want to learn how to use Paket then read the Getting started tutorial and take a look at the FAQs.

If you are already using NuGet for package management in your solution then you can learn about the upgrade process in the convert from NuGet section.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --api-key via
  • --endpoint via
  • --from-bootstrapper via
  • --log-file via
  • --silent via
  • --url via
  • --verbose via
  • file via
public static IReadOnlyCollection PaketPush(PaketPushSettings options = null) => new PaketTasks().Run(options); - /// + /// public static IReadOnlyCollection PaketPush(Configure configurator) => new PaketTasks().Run(configurator.Invoke(new PaketPushSettings())); - /// + /// public static IEnumerable<(PaketPushSettings Settings, IReadOnlyCollection Output)> PaketPush(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PaketPush, degreeOfParallelism, completeOnFailure); ///

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

If you want to learn how to use Paket then read the Getting started tutorial and take a look at the FAQs.

If you are already using NuGet for package management in your solution then you can learn about the upgrade process in the convert from NuGet section.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <outputDirectory> via
  • --build-config via
  • --build-platform via
  • --exclude via
  • --from-bootstrapper via
  • --include-referenced-projects via
  • --lock-dependencies via
  • --log-file via
  • --minimum-from-lock-file via
  • --pin-project-references via
  • --project-url via
  • --release-notes via
  • --silent via
  • --specific-version via
  • --symbols via
  • --template via
  • --verbose via
  • --version via
public static IReadOnlyCollection PaketPack(PaketPackSettings options = null) => new PaketTasks().Run(options); - /// + /// public static IReadOnlyCollection PaketPack(Configure configurator) => new PaketTasks().Run(configurator.Invoke(new PaketPackSettings())); - /// + /// public static IEnumerable<(PaketPackSettings Settings, IReadOnlyCollection Output)> PaketPack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PaketPack, degreeOfParallelism, completeOnFailure); } #region PaketUpdateSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PaketTasks), Command = nameof(PaketTasks.PaketUpdate), Arguments = "update")] public partial class PaketUpdateSettings : ToolOptions @@ -98,7 +94,7 @@ public partial class PaketUpdateSettings : ToolOptions } #endregion #region PaketRestoreSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PaketTasks), Command = nameof(PaketTasks.PaketRestore), Arguments = "restore")] public partial class PaketRestoreSettings : ToolOptions @@ -132,7 +128,7 @@ public partial class PaketRestoreSettings : ToolOptions } #endregion #region PaketPushSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PaketTasks), Command = nameof(PaketTasks.PaketPush), Arguments = "push")] public partial class PaketPushSettings : ToolOptions @@ -156,7 +152,7 @@ public partial class PaketPushSettings : ToolOptions } #endregion #region PaketPackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PaketTasks), Command = nameof(PaketTasks.PaketPack), Arguments = "pack")] public partial class PaketPackSettings : ToolOptions @@ -200,7 +196,7 @@ public partial class PaketPackSettings : ToolOptions } #endregion #region PaketUpdateSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PaketUpdateSettingsExtensions { @@ -460,7 +456,7 @@ public static partial class PaketUpdateSettingsExtensions } #endregion #region PaketRestoreSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PaketRestoreSettingsExtensions { @@ -658,7 +654,7 @@ public static partial class PaketRestoreSettingsExtensions } #endregion #region PaketPushSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PaketPushSettingsExtensions { @@ -756,7 +752,7 @@ public static partial class PaketPushSettingsExtensions } #endregion #region PaketPackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PaketPackSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Paket/Paket.json b/src/Fallout.Application.Tools/Paket/Paket.json similarity index 100% rename from src/Fallout.Common/Tools/Paket/Paket.json rename to src/Fallout.Application.Tools/Paket/Paket.json diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShell.Generated.cs b/src/Fallout.Application.Tools/PowerShell/PowerShell.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/PowerShell/PowerShell.Generated.cs rename to src/Fallout.Application.Tools/PowerShell/PowerShell.Generated.cs index 79a7836e8..2609ea853 100644 --- a/src/Fallout.Common/Tools/PowerShell/PowerShell.Generated.cs +++ b/src/Fallout.Application.Tools/PowerShell/PowerShell.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/PowerShell/PowerShell.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.PowerShell; +namespace Fallout.Application.Tools.PowerShell; ///

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -26,13 +21,13 @@ public partial class PowerShellTasks : ToolTasks ///

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <fileArguments> via
  • - via
  • -Command via
  • -ConfigurationName via
  • -EncodedCommand via
  • -ExecutionPolicy via
  • -File via
  • -InputFormat via
  • -Mta via
  • -NoExit via
  • -NoLogo via
  • -NonInteractive via
  • -NoProfile via
  • -OutputFormat via
  • -PSConsoleFile via
  • -Sta via
  • -Version via
  • -WindowStyle via
public static IReadOnlyCollection PowerShell(PowerShellSettings options = null) => new PowerShellTasks().Run(options); - /// + /// public static IReadOnlyCollection PowerShell(Configure configurator) => new PowerShellTasks().Run(configurator.Invoke(new PowerShellSettings())); - /// + /// public static IEnumerable<(PowerShellSettings Settings, IReadOnlyCollection Output)> PowerShell(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PowerShell, degreeOfParallelism, completeOnFailure); } #region PowerShellSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PowerShellTasks), Command = nameof(PowerShellTasks.PowerShell))] public partial class PowerShellSettings : ToolOptions @@ -76,7 +71,7 @@ public partial class PowerShellSettings : ToolOptions } #endregion #region PowerShellSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PowerShellSettingsExtensions { diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShell.json b/src/Fallout.Application.Tools/PowerShell/PowerShell.json similarity index 100% rename from src/Fallout.Common/Tools/PowerShell/PowerShell.json rename to src/Fallout.Application.Tools/PowerShell/PowerShell.json diff --git a/src/Fallout.Application.Tools/PowerShell/PowerShellTasks.cs b/src/Fallout.Application.Tools/PowerShell/PowerShellTasks.cs new file mode 100644 index 000000000..5a6c3087d --- /dev/null +++ b/src/Fallout.Application.Tools/PowerShell/PowerShellTasks.cs @@ -0,0 +1,13 @@ +using System; +using Fallout.Application.Tooling; +using Fallout.Kernel; + +namespace Fallout.Application.Tools.PowerShell; + +partial class PowerShellTasks +{ + protected override string GetToolPath(ToolOptions options = null) + { + return ToolingServices.ToolPaths.GetPathExecutable(EnvironmentInfo.IsWin ? "powershell" : "pwsh"); + } +} diff --git a/src/Fallout.Common/Tools/Pulumi/Pulumi.Generated.cs b/src/Fallout.Application.Tools/Pulumi/Pulumi.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Pulumi/Pulumi.Generated.cs rename to src/Fallout.Application.Tools/Pulumi/Pulumi.Generated.cs index 422b11cb7..84ba612e6 100644 --- a/src/Fallout.Common/Tools/Pulumi/Pulumi.Generated.cs +++ b/src/Fallout.Application.Tools/Pulumi/Pulumi.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Pulumi/Pulumi.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Pulumi; +namespace Fallout.Application.Tools.Pulumi; ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,188 +23,188 @@ public partial class PulumiTasks : ToolTasks, IRequirePathTool ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --config via
  • --config-file via
  • --config-path via
  • --cwd via
  • --debug via
  • --diff via
  • --disable-integrity-checking via
  • --emoji via
  • --expect-no-changes via
  • --logflow via
  • --logtostderr via
  • --message via
  • --non-interactive via
  • --parallel via
  • --policy-pack via
  • --policy-pack-config via
  • --profiling via
  • --refresh via
  • --replace via
  • --secrets-provider via
  • --show-config via
  • --show-reads via
  • --show-replacement-steps via
  • --show-sames via
  • --skip-preview via
  • --stack via
  • --suppress-outputs via
  • --suppress-permalink via
  • --target via
  • --target-dependents via
  • --target-replace via
  • --tracing via
  • --verbose via
  • --yes via
public static IReadOnlyCollection PulumiUp(PulumiUpSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiUp(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiUpSettings())); - /// + /// public static IEnumerable<(PulumiUpSettings Settings, IReadOnlyCollection Output)> PulumiUp(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiUp, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --config via
  • --config-file via
  • --config-path via
  • --cwd via
  • --debug via
  • --diff via
  • --disable-integrity-checking via
  • --emoji via
  • --expect-no-changes via
  • --json via
  • --logflow via
  • --logtostderr via
  • --message via
  • --non-interactive via
  • --parallel via
  • --policy-pack via
  • --policy-pack-config via
  • --profiling via
  • --refresh via
  • --replace via
  • --show-config via
  • --show-reads via
  • --show-replacement-steps via
  • --show-sames via
  • --stack via
  • --suppress-outputs via
  • --suppress-permalink via
  • --target via
  • --target-dependents via
  • --target-replace via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiPreview(PulumiPreviewSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiPreview(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiPreviewSettings())); - /// + /// public static IEnumerable<(PulumiPreviewSettings Settings, IReadOnlyCollection Output)> PulumiPreview(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiPreview, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --config-file via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --show-secrets via
  • --stack via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfig(PulumiConfigSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfig(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigSettings())); - /// + /// public static IEnumerable<(PulumiConfigSettings Settings, IReadOnlyCollection Output)> PulumiConfig(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfig, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --dest via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --path via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfigCopy(PulumiConfigCopySettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfigCopy(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigCopySettings())); - /// + /// public static IEnumerable<(PulumiConfigCopySettings Settings, IReadOnlyCollection Output)> PulumiConfigCopy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfigCopy, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <key> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --path via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfigGet(PulumiConfigGetSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfigGet(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigGetSettings())); - /// + /// public static IEnumerable<(PulumiConfigGetSettings Settings, IReadOnlyCollection Output)> PulumiConfigGet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfigGet, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --force via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfigRefresh(PulumiConfigRefreshSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfigRefresh(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigRefreshSettings())); - /// + /// public static IEnumerable<(PulumiConfigRefreshSettings Settings, IReadOnlyCollection Output)> PulumiConfigRefresh(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfigRefresh, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <key> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --path via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfigRemove(PulumiConfigRemoveSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfigRemove(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigRemoveSettings())); - /// + /// public static IEnumerable<(PulumiConfigRemoveSettings Settings, IReadOnlyCollection Output)> PulumiConfigRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfigRemove, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <key> via
  • <value> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --path via
  • --plaintext via
  • --profiling via
  • --secret via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiConfigSet(PulumiConfigSetSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiConfigSet(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiConfigSetSettings())); - /// + /// public static IEnumerable<(PulumiConfigSetSettings Settings, IReadOnlyCollection Output)> PulumiConfigSet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiConfigSet, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --show-ids via
  • --show-name via
  • --show-secrets via
  • --show-urns via
  • --stack via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStack(PulumiStackSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStack(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackSettings())); - /// + /// public static IEnumerable<(PulumiStackSettings Settings, IReadOnlyCollection Output)> PulumiStack(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStack, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <newSecretsProvider> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackChangeSecretsProvider(PulumiStackChangeSecretsProviderSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackChangeSecretsProvider(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackChangeSecretsProviderSettings())); - /// + /// public static IEnumerable<(PulumiStackChangeSecretsProviderSettings Settings, IReadOnlyCollection Output)> PulumiStackChangeSecretsProvider(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackChangeSecretsProvider, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --file via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --show-secrets via
  • --tracing via
  • --verbose via
  • --version via
public static IReadOnlyCollection PulumiStackExport(PulumiStackExportSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackExport(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackExportSettings())); - /// + /// public static IEnumerable<(PulumiStackExportSettings Settings, IReadOnlyCollection Output)> PulumiStackExport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackExport, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <file> via
  • --color via
  • --cwd via
  • --dependency-edge-color via
  • --disable-integrity-checking via
  • --emoji via
  • --ignore-dependency-edges via
  • --ignore-parent-edges via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --parent-edge-color via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackGraph(PulumiStackGraphSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackGraph(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackGraphSettings())); - /// + /// public static IEnumerable<(PulumiStackGraphSettings Settings, IReadOnlyCollection Output)> PulumiStackGraph(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackGraph, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --show-secrets via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackHistory(PulumiStackHistorySettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackHistory(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackHistorySettings())); - /// + /// public static IEnumerable<(PulumiStackHistorySettings Settings, IReadOnlyCollection Output)> PulumiStackHistory(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackHistory, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --file via
  • --force via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackImport(PulumiStackImportSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackImport(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackImportSettings())); - /// + /// public static IEnumerable<(PulumiStackImportSettings Settings, IReadOnlyCollection Output)> PulumiStackImport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackImport, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <organizationAndName> via
  • --color via
  • --copy-config-from via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --secrets-provider via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackInit(PulumiStackInitSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackInit(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackInitSettings())); - /// + /// public static IEnumerable<(PulumiStackInitSettings Settings, IReadOnlyCollection Output)> PulumiStackInit(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackInit, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --all via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --organization via
  • --profiling via
  • --project via
  • --tag via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackList(PulumiStackListSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackList(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackListSettings())); - /// + /// public static IEnumerable<(PulumiStackListSettings Settings, IReadOnlyCollection Output)> PulumiStackList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackList, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <propertyName> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --show-secrets via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackOutput(PulumiStackOutputSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackOutput(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackOutputSettings())); - /// + /// public static IEnumerable<(PulumiStackOutputSettings Settings, IReadOnlyCollection Output)> PulumiStackOutput(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackOutput, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <newStackName> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackRename(PulumiStackRenameSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackRename(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackRenameSettings())); - /// + /// public static IEnumerable<(PulumiStackRenameSettings Settings, IReadOnlyCollection Output)> PulumiStackRename(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackRename, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stackName> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --force via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --preserve-config via
  • --profiling via
  • --tracing via
  • --verbose via
  • --yes via
public static IReadOnlyCollection PulumiStackRemove(PulumiStackRemoveSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackRemove(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackRemoveSettings())); - /// + /// public static IEnumerable<(PulumiStackRemoveSettings Settings, IReadOnlyCollection Output)> PulumiStackRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackRemove, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <stackName> via
  • --color via
  • --create via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --secrets-provider via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackSelect(PulumiStackSelectSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackSelect(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackSelectSettings())); - /// + /// public static IEnumerable<(PulumiStackSelectSettings Settings, IReadOnlyCollection Output)> PulumiStackSelect(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackSelect, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • <value> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackTagSet(PulumiStackTagSetSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackTagSet(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackTagSetSettings())); - /// + /// public static IEnumerable<(PulumiStackTagSetSettings Settings, IReadOnlyCollection Output)> PulumiStackTagSet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackTagSet, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackTagGet(PulumiStackTagGetSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackTagGet(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackTagGetSettings())); - /// + /// public static IEnumerable<(PulumiStackTagGetSettings Settings, IReadOnlyCollection Output)> PulumiStackTagGet(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackTagGet, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <name> via
  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackTagRemove(PulumiStackTagRemoveSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackTagRemove(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackTagRemoveSettings())); - /// + /// public static IEnumerable<(PulumiStackTagRemoveSettings Settings, IReadOnlyCollection Output)> PulumiStackTagRemove(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackTagRemove, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --cwd via
  • --disable-integrity-checking via
  • --emoji via
  • --json via
  • --logflow via
  • --logtostderr via
  • --non-interactive via
  • --profiling via
  • --tracing via
  • --verbose via
public static IReadOnlyCollection PulumiStackTagList(PulumiStackTagListSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiStackTagList(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiStackTagListSettings())); - /// + /// public static IEnumerable<(PulumiStackTagListSettings Settings, IReadOnlyCollection Output)> PulumiStackTagList(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiStackTagList, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <template> via
  • --color via
  • --config via
  • --config-path via
  • --cwd via
  • --description via
  • --dir via
  • --disable-integrity-checking via
  • --emoji via
  • --force via
  • --generate-only via
  • --logflow via
  • --logtostderr via
  • --name via
  • --non-interactive via
  • --offline via
  • --profiling via
  • --secrets-provider via
  • --stack via
  • --tracing via
  • --verbose via
  • --yes via
public static IReadOnlyCollection PulumiNew(PulumiNewSettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiNew(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiNewSettings())); - /// + /// public static IEnumerable<(PulumiNewSettings Settings, IReadOnlyCollection Output)> PulumiNew(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiNew, degreeOfParallelism, completeOnFailure); ///

Pulumi is an open source infrastructure as code tool for creating, deploying and managing cloud infrastructure. Pulumi works with traditional infrastructure like VMs, networks, and databases, in addition to modern architectures, including containers, Kubernetes clusters, and serverless functions. Pulumi supports dozens of public, private, and hybrid cloud service providers.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --color via
  • --config-file via
  • --cwd via
  • --debug via
  • --diff via
  • --disable-integrity-checking via
  • --emoji via
  • --logflow via
  • --logtostderr via
  • --message via
  • --non-interactive via
  • --parallel via
  • --profiling via
  • --refresh via
  • --show-config via
  • --show-replacement-steps via
  • --show-sames via
  • --skip-preview via
  • --stack via
  • --suppress-outputs via
  • --suppress-permalink via
  • --target via
  • --target-dependents via
  • --tracing via
  • --verbose via
  • --yes via
public static IReadOnlyCollection PulumiDestroy(PulumiDestroySettings options = null) => new PulumiTasks().Run(options); - /// + /// public static IReadOnlyCollection PulumiDestroy(Configure configurator) => new PulumiTasks().Run(configurator.Invoke(new PulumiDestroySettings())); - /// + /// public static IEnumerable<(PulumiDestroySettings Settings, IReadOnlyCollection Output)> PulumiDestroy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(PulumiDestroy, degreeOfParallelism, completeOnFailure); } #region PulumiUpSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiUp), Arguments = "up")] public partial class PulumiUpSettings : ToolOptions @@ -287,7 +282,7 @@ public partial class PulumiUpSettings : ToolOptions } #endregion #region PulumiPreviewSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiPreview), Arguments = "preview")] public partial class PulumiPreviewSettings : ToolOptions @@ -361,7 +356,7 @@ public partial class PulumiPreviewSettings : ToolOptions } #endregion #region PulumiConfigSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfig), Arguments = "config")] public partial class PulumiConfigSettings : ToolOptions @@ -397,7 +392,7 @@ public partial class PulumiConfigSettings : ToolOptions } #endregion #region PulumiConfigCopySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfigCopy), Arguments = "config cp")] public partial class PulumiConfigCopySettings : ToolOptions @@ -429,7 +424,7 @@ public partial class PulumiConfigCopySettings : ToolOptions } #endregion #region PulumiConfigGetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfigGet), Arguments = "config get")] public partial class PulumiConfigGetSettings : ToolOptions @@ -463,7 +458,7 @@ public partial class PulumiConfigGetSettings : ToolOptions } #endregion #region PulumiConfigRefreshSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfigRefresh), Arguments = "config refresh")] public partial class PulumiConfigRefreshSettings : ToolOptions @@ -493,7 +488,7 @@ public partial class PulumiConfigRefreshSettings : ToolOptions } #endregion #region PulumiConfigRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfigRemove), Arguments = "config rm")] public partial class PulumiConfigRemoveSettings : ToolOptions @@ -525,7 +520,7 @@ public partial class PulumiConfigRemoveSettings : ToolOptions } #endregion #region PulumiConfigSetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiConfigSet), Arguments = "config set")] public partial class PulumiConfigSetSettings : ToolOptions @@ -563,7 +558,7 @@ public partial class PulumiConfigSetSettings : ToolOptions } #endregion #region PulumiStackSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStack), Arguments = "stack")] public partial class PulumiStackSettings : ToolOptions @@ -601,7 +596,7 @@ public partial class PulumiStackSettings : ToolOptions } #endregion #region PulumiStackChangeSecretsProviderSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackChangeSecretsProvider), Arguments = "stack change-secrets-provider")] public partial class PulumiStackChangeSecretsProviderSettings : ToolOptions @@ -631,7 +626,7 @@ public partial class PulumiStackChangeSecretsProviderSettings : ToolOptions } #endregion #region PulumiStackExportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackExport), Arguments = "stack export")] public partial class PulumiStackExportSettings : ToolOptions @@ -665,7 +660,7 @@ public partial class PulumiStackExportSettings : ToolOptions } #endregion #region PulumiStackGraphSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackGraph), Arguments = "stack graph")] public partial class PulumiStackGraphSettings : ToolOptions @@ -703,7 +698,7 @@ public partial class PulumiStackGraphSettings : ToolOptions } #endregion #region PulumiStackHistorySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackHistory), Arguments = "stack history")] public partial class PulumiStackHistorySettings : ToolOptions @@ -735,7 +730,7 @@ public partial class PulumiStackHistorySettings : ToolOptions } #endregion #region PulumiStackImportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackImport), Arguments = "stack import")] public partial class PulumiStackImportSettings : ToolOptions @@ -767,7 +762,7 @@ public partial class PulumiStackImportSettings : ToolOptions } #endregion #region PulumiStackInitSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackInit), Arguments = "stack init")] public partial class PulumiStackInitSettings : ToolOptions @@ -801,7 +796,7 @@ public partial class PulumiStackInitSettings : ToolOptions } #endregion #region PulumiStackListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackList), Arguments = "stack ls")] public partial class PulumiStackListSettings : ToolOptions @@ -839,7 +834,7 @@ public partial class PulumiStackListSettings : ToolOptions } #endregion #region PulumiStackOutputSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackOutput), Arguments = "stack output")] public partial class PulumiStackOutputSettings : ToolOptions @@ -873,7 +868,7 @@ public partial class PulumiStackOutputSettings : ToolOptions } #endregion #region PulumiStackRenameSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackRename), Arguments = "stack rename")] public partial class PulumiStackRenameSettings : ToolOptions @@ -903,7 +898,7 @@ public partial class PulumiStackRenameSettings : ToolOptions } #endregion #region PulumiStackRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackRemove), Arguments = "stack rm")] public partial class PulumiStackRemoveSettings : ToolOptions @@ -939,7 +934,7 @@ public partial class PulumiStackRemoveSettings : ToolOptions } #endregion #region PulumiStackSelectSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackSelect), Arguments = "stack select")] public partial class PulumiStackSelectSettings : ToolOptions @@ -973,7 +968,7 @@ public partial class PulumiStackSelectSettings : ToolOptions } #endregion #region PulumiStackTagSetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackTagSet), Arguments = "stack tag set")] public partial class PulumiStackTagSetSettings : ToolOptions @@ -1005,7 +1000,7 @@ public partial class PulumiStackTagSetSettings : ToolOptions } #endregion #region PulumiStackTagGetSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackTagGet), Arguments = "stack tag get")] public partial class PulumiStackTagGetSettings : ToolOptions @@ -1035,7 +1030,7 @@ public partial class PulumiStackTagGetSettings : ToolOptions } #endregion #region PulumiStackTagRemoveSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackTagRemove), Arguments = "stack tag rm")] public partial class PulumiStackTagRemoveSettings : ToolOptions @@ -1065,7 +1060,7 @@ public partial class PulumiStackTagRemoveSettings : ToolOptions } #endregion #region PulumiStackTagListSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiStackTagList), Arguments = "stack tag ls")] public partial class PulumiStackTagListSettings : ToolOptions @@ -1095,7 +1090,7 @@ public partial class PulumiStackTagListSettings : ToolOptions } #endregion #region PulumiNewSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiNew), Arguments = "new")] public partial class PulumiNewSettings : ToolOptions @@ -1147,7 +1142,7 @@ public partial class PulumiNewSettings : ToolOptions } #endregion #region PulumiDestroySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PulumiTasks), Command = nameof(PulumiTasks.PulumiDestroy), Arguments = "destroy")] public partial class PulumiDestroySettings : ToolOptions @@ -1207,7 +1202,7 @@ public partial class PulumiDestroySettings : ToolOptions } #endregion #region PulumiUpSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiUpSettingsExtensions { @@ -1755,7 +1750,7 @@ public static partial class PulumiUpSettingsExtensions } #endregion #region PulumiPreviewSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiPreviewSettingsExtensions { @@ -2278,7 +2273,7 @@ public static partial class PulumiPreviewSettingsExtensions } #endregion #region PulumiConfigSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigSettingsExtensions { @@ -2460,7 +2455,7 @@ public static partial class PulumiConfigSettingsExtensions } #endregion #region PulumiConfigCopySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigCopySettingsExtensions { @@ -2608,7 +2603,7 @@ public static partial class PulumiConfigCopySettingsExtensions } #endregion #region PulumiConfigGetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigGetSettingsExtensions { @@ -2773,7 +2768,7 @@ public static partial class PulumiConfigGetSettingsExtensions } #endregion #region PulumiConfigRefreshSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigRefreshSettingsExtensions { @@ -2922,7 +2917,7 @@ public static partial class PulumiConfigRefreshSettingsExtensions } #endregion #region PulumiConfigRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigRemoveSettingsExtensions { @@ -3070,7 +3065,7 @@ public static partial class PulumiConfigRemoveSettingsExtensions } #endregion #region PulumiConfigSetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiConfigSetSettingsExtensions { @@ -3260,7 +3255,7 @@ public static partial class PulumiConfigSetSettingsExtensions } #endregion #region PulumiStackSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackSettingsExtensions { @@ -3468,7 +3463,7 @@ public static partial class PulumiStackSettingsExtensions } #endregion #region PulumiStackChangeSecretsProviderSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackChangeSecretsProviderSettingsExtensions { @@ -3608,7 +3603,7 @@ public static partial class PulumiStackChangeSecretsProviderSettingsExtensions } #endregion #region PulumiStackExportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackExportSettingsExtensions { @@ -3773,7 +3768,7 @@ public static partial class PulumiStackExportSettingsExtensions } #endregion #region PulumiStackGraphSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackGraphSettingsExtensions { @@ -3963,7 +3958,7 @@ public static partial class PulumiStackGraphSettingsExtensions } #endregion #region PulumiStackHistorySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackHistorySettingsExtensions { @@ -4129,7 +4124,7 @@ public static partial class PulumiStackHistorySettingsExtensions } #endregion #region PulumiStackImportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackImportSettingsExtensions { @@ -4286,7 +4281,7 @@ public static partial class PulumiStackImportSettingsExtensions } #endregion #region PulumiStackInitSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackInitSettingsExtensions { @@ -4442,7 +4437,7 @@ public static partial class PulumiStackInitSettingsExtensions } #endregion #region PulumiStackListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackListSettingsExtensions { @@ -4632,7 +4627,7 @@ public static partial class PulumiStackListSettingsExtensions } #endregion #region PulumiStackOutputSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackOutputSettingsExtensions { @@ -4806,7 +4801,7 @@ public static partial class PulumiStackOutputSettingsExtensions } #endregion #region PulumiStackRenameSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackRenameSettingsExtensions { @@ -4946,7 +4941,7 @@ public static partial class PulumiStackRenameSettingsExtensions } #endregion #region PulumiStackRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackRemoveSettingsExtensions { @@ -5137,7 +5132,7 @@ public static partial class PulumiStackRemoveSettingsExtensions } #endregion #region PulumiStackSelectSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackSelectSettingsExtensions { @@ -5302,7 +5297,7 @@ public static partial class PulumiStackSelectSettingsExtensions } #endregion #region PulumiStackTagSetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackTagSetSettingsExtensions { @@ -5450,7 +5445,7 @@ public static partial class PulumiStackTagSetSettingsExtensions } #endregion #region PulumiStackTagGetSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackTagGetSettingsExtensions { @@ -5590,7 +5585,7 @@ public static partial class PulumiStackTagGetSettingsExtensions } #endregion #region PulumiStackTagRemoveSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackTagRemoveSettingsExtensions { @@ -5730,7 +5725,7 @@ public static partial class PulumiStackTagRemoveSettingsExtensions } #endregion #region PulumiStackTagListSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiStackTagListSettingsExtensions { @@ -5879,7 +5874,7 @@ public static partial class PulumiStackTagListSettingsExtensions } #endregion #region PulumiNewSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiNewSettingsExtensions { @@ -6167,7 +6162,7 @@ public static partial class PulumiNewSettingsExtensions } #endregion #region PulumiDestroySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PulumiDestroySettingsExtensions { diff --git a/src/Fallout.Common/Tools/Pulumi/Pulumi.json b/src/Fallout.Application.Tools/Pulumi/Pulumi.json similarity index 100% rename from src/Fallout.Common/Tools/Pulumi/Pulumi.json rename to src/Fallout.Application.Tools/Pulumi/Pulumi.json diff --git a/src/Fallout.Common/Tools/Pulumi/PulumiTasks.cs b/src/Fallout.Application.Tools/Pulumi/PulumiTasks.cs similarity index 53% rename from src/Fallout.Common/Tools/Pulumi/PulumiTasks.cs rename to src/Fallout.Application.Tools/Pulumi/PulumiTasks.cs index 20978d81d..559e05d89 100644 --- a/src/Fallout.Common/Tools/Pulumi/PulumiTasks.cs +++ b/src/Fallout.Application.Tools/Pulumi/PulumiTasks.cs @@ -1,8 +1,8 @@ -using System; -using Fallout.Common.Tooling; +using System; using Serilog.Events; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Pulumi; +namespace Fallout.Application.Tools.Pulumi; [LogLevelPattern(LogEventLevel.Warning, "^warning:")] partial class PulumiTasks; diff --git a/src/Fallout.Common/Tools/Pwsh/Pwsh.Generated.cs b/src/Fallout.Application.Tools/Pwsh/Pwsh.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Pwsh/Pwsh.Generated.cs rename to src/Fallout.Application.Tools/Pwsh/Pwsh.Generated.cs index d4fc36ca9..b0ec232d8 100644 --- a/src/Fallout.Common/Tools/Pwsh/Pwsh.Generated.cs +++ b/src/Fallout.Application.Tools/Pwsh/Pwsh.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Pwsh/Pwsh.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Pwsh; +namespace Fallout.Application.Tools.Pwsh; ///

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +23,13 @@ public partial class PwshTasks : ToolTasks, IRequirePathTool ///

PowerShell is a cross-platform task automation solution made up of a command-line shell, a scripting language, and a configuration management framework. PowerShell runs on Windows, Linux, and macOS.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <fileArguments> via
  • -Command via
  • -ConfigurationFile via
  • -ConfigurationName via
  • -CustomPipeName via
  • -EncodedCommand via
  • -ExecutionPolicy via
  • -File via
  • -InputFormat via
  • -Interactive via
  • -Login via
  • -Mta via
  • -NoExit via
  • -NoLogo via
  • -NonInteractive via
  • -NoProfile via
  • -NoProfileLoadTime via
  • -OutputFormat via
  • -SettingsFile via
  • -SSHServerMode via
  • -Sta via
  • -Version via
  • -WindowStyle via
  • -WorkingDirectory via
public static IReadOnlyCollection Pwsh(PwshSettings options = null) => new PwshTasks().Run(options); - /// + /// public static IReadOnlyCollection Pwsh(Configure configurator) => new PwshTasks().Run(configurator.Invoke(new PwshSettings())); - /// + /// public static IEnumerable<(PwshSettings Settings, IReadOnlyCollection Output)> Pwsh(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Pwsh, degreeOfParallelism, completeOnFailure); } #region PwshSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(PwshTasks), Command = nameof(PwshTasks.Pwsh))] public partial class PwshSettings : ToolOptions @@ -90,7 +85,7 @@ public partial class PwshSettings : ToolOptions } #endregion #region PwshSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class PwshSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Pwsh/Pwsh.json b/src/Fallout.Application.Tools/Pwsh/Pwsh.json similarity index 100% rename from src/Fallout.Common/Tools/Pwsh/Pwsh.json rename to src/Fallout.Application.Tools/Pwsh/Pwsh.json diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.Generated.cs b/src/Fallout.Application.Tools/ReportGenerator/ReportGenerator.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.Generated.cs rename to src/Fallout.Application.Tools/ReportGenerator/ReportGenerator.Generated.cs index dc207bb8c..30672b0fe 100644 --- a/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.Generated.cs +++ b/src/Fallout.Application.Tools/ReportGenerator/ReportGenerator.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.ReportGenerator; +namespace Fallout.Application.Tools.ReportGenerator; ///

ReportGenerator converts XML reports generated by OpenCover, PartCover, dotCover, Visual Studio, NCover or Cobertura into human readable reports in various formats.

The reports do not only show the coverage quota, but also include the source code and visualize which lines have been covered.

ReportGenerator supports merging several reports into one. It is also possible to pass one XML file containing several reports to ReportGenerator (e.g. a build log file).

The following output formats are supported by ReportGenerator:

  • HTML, HTMLSummary, HTMLInline, HTMLChart, MHTML
  • XML, XMLSummary
  • Latex, LatexSummary
  • TextSummary
  • CsvSummary
  • PngChart
  • Badges
  • Custom reports

Compatibility:

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class ReportGeneratorTasks : ToolTasks, IRequireNuGetPackage ///

ReportGenerator converts XML reports generated by OpenCover, PartCover, dotCover, Visual Studio, NCover or Cobertura into human readable reports in various formats.

The reports do not only show the coverage quota, but also include the source code and visualize which lines have been covered.

ReportGenerator supports merging several reports into one. It is also possible to pass one XML file containing several reports to ReportGenerator (e.g. a build log file).

The following output formats are supported by ReportGenerator:

  • HTML, HTMLSummary, HTMLInline, HTMLChart, MHTML
  • XML, XMLSummary
  • Latex, LatexSummary
  • TextSummary
  • CsvSummary
  • PngChart
  • Badges
  • Custom reports

Compatibility:

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -assemblyfilters via
  • -classfilters via
  • -filefilters via
  • -historydir via
  • -reports via
  • -reporttypes via
  • -sourcedirs via
  • -tag via
  • -targetdir via
  • -verbosity via
public static IReadOnlyCollection ReportGenerator(ReportGeneratorSettings options = null) => new ReportGeneratorTasks().Run(options); - /// + /// public static IReadOnlyCollection ReportGenerator(Configure configurator) => new ReportGeneratorTasks().Run(configurator.Invoke(new ReportGeneratorSettings())); - /// + /// public static IEnumerable<(ReportGeneratorSettings Settings, IReadOnlyCollection Output)> ReportGenerator(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(ReportGenerator, degreeOfParallelism, completeOnFailure); } #region ReportGeneratorSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(ReportGeneratorTasks), Command = nameof(ReportGeneratorTasks.ReportGenerator))] public partial class ReportGeneratorSettings : ToolOptions, IToolOptionsWithFramework @@ -63,7 +58,7 @@ public partial class ReportGeneratorSettings : ToolOptions, IToolOptionsWithFram } #endregion #region ReportGeneratorSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class ReportGeneratorSettingsExtensions { diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.json b/src/Fallout.Application.Tools/ReportGenerator/ReportGenerator.json similarity index 100% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGenerator.json rename to src/Fallout.Application.Tools/ReportGenerator/ReportGenerator.json diff --git a/src/Fallout.Common/Tools/ReportGenerator/ReportGeneratorTasks.cs b/src/Fallout.Application.Tools/ReportGenerator/ReportGeneratorTasks.cs similarity index 83% rename from src/Fallout.Common/Tools/ReportGenerator/ReportGeneratorTasks.cs rename to src/Fallout.Application.Tools/ReportGenerator/ReportGeneratorTasks.cs index ba1405be6..d960212d7 100644 --- a/src/Fallout.Common/Tools/ReportGenerator/ReportGeneratorTasks.cs +++ b/src/Fallout.Application.Tools/ReportGenerator/ReportGeneratorTasks.cs @@ -1,6 +1,6 @@ -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.ReportGenerator; +namespace Fallout.Application.Tools.ReportGenerator; public class ReportGeneratorVerbosityMappingAttribute : VerbosityMappingAttribute { diff --git a/src/Fallout.Common/Tools/SignClient/SignClient.Generated.cs b/src/Fallout.Application.Tools/SignClient/SignClient.Generated.cs similarity index 95% rename from src/Fallout.Common/Tools/SignClient/SignClient.Generated.cs rename to src/Fallout.Application.Tools/SignClient/SignClient.Generated.cs index f49474682..ec1caf0c2 100644 --- a/src/Fallout.Common/Tools/SignClient/SignClient.Generated.cs +++ b/src/Fallout.Application.Tools/SignClient/SignClient.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/SignClient/SignClient.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.SignClient; +namespace Fallout.Application.Tools.SignClient; ///

Code Signing client for Authenticode, NuGet, VSIX, and more

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +25,13 @@ public partial class SignClientTasks : ToolTasks, IRequireNuGetPackage ///

Code Signing client for Authenticode, NuGet, VSIX, and more

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --baseDirectory via
  • --config via
  • --description via
  • --descriptionUrl via
  • --fileList via
  • --input via
  • --maxConcurrency via
  • --name via
  • --output via
  • --secret via
  • --user via
public static IReadOnlyCollection SignClientSign(SignClientSignSettings options = null) => new SignClientTasks().Run(options); - /// + /// public static IReadOnlyCollection SignClientSign(Configure configurator) => new SignClientTasks().Run(configurator.Invoke(new SignClientSignSettings())); - /// + /// public static IEnumerable<(SignClientSignSettings Settings, IReadOnlyCollection Output)> SignClientSign(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SignClientSign, degreeOfParallelism, completeOnFailure); } #region SignClientSignSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SignClientTasks), Command = nameof(SignClientTasks.SignClientSign), Arguments = "sign")] public partial class SignClientSignSettings : ToolOptions @@ -65,7 +61,7 @@ public partial class SignClientSignSettings : ToolOptions } #endregion #region SignClientSignSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SignClientSignSettingsExtensions { diff --git a/src/Fallout.Common/Tools/SignClient/SignClient.json b/src/Fallout.Application.Tools/SignClient/SignClient.json similarity index 100% rename from src/Fallout.Common/Tools/SignClient/SignClient.json rename to src/Fallout.Application.Tools/SignClient/SignClient.json diff --git a/src/Fallout.Common/Tools/SignPath/SignPathTasks.cs b/src/Fallout.Application.Tools/SignPath/SignPathTasks.cs similarity index 95% rename from src/Fallout.Common/Tools/SignPath/SignPathTasks.cs rename to src/Fallout.Application.Tools/SignPath/SignPathTasks.cs index 477f96441..969fca728 100644 --- a/src/Fallout.Common/Tools/SignPath/SignPathTasks.cs +++ b/src/Fallout.Application.Tools/SignPath/SignPathTasks.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using System.Linq; using System.Net; @@ -7,13 +7,14 @@ using System.Text; using System.Text.Json.Nodes; using System.Threading.Tasks; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.IO; -using Fallout.Common.Utilities; using Serilog; -using static Fallout.Common.ControlFlow; +using static Fallout.Application.ControlFlow; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tools.SignPath; +using Fallout.Application.CI; +namespace Fallout.Application.Tools.SignPath; public static class SignPathTasks { @@ -56,11 +57,11 @@ public static async Task GetSigningRequestUrlViaAppVeyor( var contentType = "application/json"; var content = new { - AppVeyor.Instance.AccountName, - AppVeyor.Instance.ProjectSlug, - AppVeyor.Instance.BuildVersion, - AppVeyor.Instance.BuildId, - AppVeyor.Instance.JobId + CiHost.AppVeyor.AccountName, + CiHost.AppVeyor.ProjectSlug, + CiHost.AppVeyor.BuildVersion, + CiHost.AppVeyor.BuildId, + CiHost.AppVeyor.JobId }; using var httpClient = CreateAuthorizedHttpClient(authToken, DefaultHttpClientTimeout); diff --git a/src/Fallout.Common/Tools/SignTool/SignTool.Generated.cs b/src/Fallout.Application.Tools/SignTool/SignTool.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/SignTool/SignTool.Generated.cs rename to src/Fallout.Application.Tools/SignTool/SignTool.Generated.cs index 8337499de..4bfba6ee3 100644 --- a/src/Fallout.Common/Tools/SignTool/SignTool.Generated.cs +++ b/src/Fallout.Application.Tools/SignTool/SignTool.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/SignTool/SignTool.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.SignTool; +namespace Fallout.Application.Tools.SignTool; ///

Sign Tool is a command-line tool that digitally signs files, verifies signatures in files, and time-stamps files.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -26,13 +22,13 @@ public partial class SignToolTasks : ToolTasks ///

Use the sign command to sign files using embedded signatures. Signing protects a file from tampering, and allows users to verify the signer (you) based on a signing certificate. The options below allow you to specify signing parameters and to select the signing certificate you wish to use.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <files> via
  • /a via
  • /ac via
  • /as via
  • /c via
  • /csp via
  • /d via
  • /debug via
  • /dg via
  • /di via
  • /dlib via
  • /dmdf via
  • /ds via
  • /du via
  • /dxml via
  • /f via
  • /fd via
  • /force via
  • /i via
  • /itos via
  • /kc via
  • /n via
  • /nosealwarn via
  • /nph via
  • /p via
  • /p7 via
  • /p7ce via
  • /p7co via
  • /ph via
  • /q via
  • /r via
  • /rmc via
  • /s via
  • /sa via
  • /seal via
  • /sha1 via
  • /sm via
  • /t via
  • /td via
  • /tr via
  • /tseal via
  • /u via
  • /uw via
  • /v via
public static IReadOnlyCollection SignTool(SignToolSettings options = null) => new SignToolTasks().Run(options); - /// + /// public static IReadOnlyCollection SignTool(Configure configurator) => new SignToolTasks().Run(configurator.Invoke(new SignToolSettings())); - /// + /// public static IEnumerable<(SignToolSettings Settings, IReadOnlyCollection Output)> SignTool(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SignTool, degreeOfParallelism, completeOnFailure); } #region SignToolSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SignToolTasks), Command = nameof(SignToolTasks.SignTool), Arguments = "sign")] public partial class SignToolSettings : ToolOptions @@ -128,7 +124,7 @@ public partial class SignToolSettings : ToolOptions } #endregion #region SignToolSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SignToolSettingsExtensions { diff --git a/src/Fallout.Common/Tools/SignTool/SignTool.json b/src/Fallout.Application.Tools/SignTool/SignTool.json similarity index 100% rename from src/Fallout.Common/Tools/SignTool/SignTool.json rename to src/Fallout.Application.Tools/SignTool/SignTool.json diff --git a/src/Fallout.Common/Tools/SignTool/SignToolTasks.cs b/src/Fallout.Application.Tools/SignTool/SignToolTasks.cs similarity index 88% rename from src/Fallout.Common/Tools/SignTool/SignToolTasks.cs rename to src/Fallout.Application.Tools/SignTool/SignToolTasks.cs index 57c6f9334..10a8b6193 100644 --- a/src/Fallout.Common/Tools/SignTool/SignToolTasks.cs +++ b/src/Fallout.Application.Tools/SignTool/SignToolTasks.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tools.SignTool; +namespace Fallout.Application.Tools.SignTool; partial class SignToolTasks { diff --git a/src/Fallout.Common/Tools/Slack/Slack.Generated.cs b/src/Fallout.Application.Tools/Slack/Slack.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/Slack/Slack.Generated.cs rename to src/Fallout.Application.Tools/Slack/Slack.Generated.cs index 0c6dd2e44..df747f91e 100644 --- a/src/Fallout.Common/Tools/Slack/Slack.Generated.cs +++ b/src/Fallout.Application.Tools/Slack/Slack.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Slack/Slack.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Slack; +namespace Fallout.Application.Tools.Slack; #region SlackMessage /// Used within . diff --git a/src/Fallout.Common/Tools/Slack/Slack.json b/src/Fallout.Application.Tools/Slack/Slack.json similarity index 100% rename from src/Fallout.Common/Tools/Slack/Slack.json rename to src/Fallout.Application.Tools/Slack/Slack.json diff --git a/src/Fallout.Common/Tools/Slack/SlackTasks.cs b/src/Fallout.Application.Tools/Slack/SlackTasks.cs similarity index 92% rename from src/Fallout.Common/Tools/Slack/SlackTasks.cs rename to src/Fallout.Application.Tools/Slack/SlackTasks.cs index 1311d8ce1..f91f5d260 100644 --- a/src/Fallout.Common/Tools/Slack/SlackTasks.cs +++ b/src/Fallout.Application.Tools/Slack/SlackTasks.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; @@ -6,11 +6,11 @@ using System.Text.Json; using System.Text.Json.Serialization; using System.Threading.Tasks; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Net; +using Fallout.Application.Tooling; +using Fallout.Kernel.Net; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Slack; +namespace Fallout.Application.Tools.Slack; public static class SlackTasks { diff --git a/src/Fallout.Common/Tools/SonarScanner/SonarScanner.Generated.cs b/src/Fallout.Application.Tools/SonarScanner/SonarScanner.Generated.cs similarity index 99% rename from src/Fallout.Common/Tools/SonarScanner/SonarScanner.Generated.cs rename to src/Fallout.Application.Tools/SonarScanner/SonarScanner.Generated.cs index 27c1c7ef7..58d654839 100644 --- a/src/Fallout.Common/Tools/SonarScanner/SonarScanner.Generated.cs +++ b/src/Fallout.Application.Tools/SonarScanner/SonarScanner.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/SonarScanner/SonarScanner.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.SonarScanner; +namespace Fallout.Application.Tools.SonarScanner; ///

The SonarScanner for MSBuild is the recommended way to launch a SonarQube or SonarCloud analysis for projects/solutions using MSBuild or dotnet command as build tool.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +25,20 @@ public partial class SonarScannerTasks : ToolTasks, IRequireNuGetPackage ///

The SonarScanner for MSBuild is the recommended way to launch a SonarQube or SonarCloud analysis for projects/solutions using MSBuild or dotnet command as build tool.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /d via
  • /d:sonar.analysis. via
  • /d:sonar.branch.name via
  • /d:sonar.clientcert.password via
  • /d:sonar.clientcert.path via
  • /d:sonar.coverage.exclusions via
  • /d:sonar.coverageReportPaths via
  • /d:sonar.cpd.exclusions via
  • /d:sonar.cs.dotcover.reportsPaths via
  • /d:sonar.cs.nunit.reportsPaths via
  • /d:sonar.cs.opencover.reportsPaths via
  • /d:sonar.cs.vscoveragexml.reportsPaths via
  • /d:sonar.cs.vstest.reportsPaths via
  • /d:sonar.cs.xunit.reportsPaths via
  • /d:sonar.dotnet.excludeTestProjects via
  • /d:sonar.exclusions via
  • /d:sonar.host.url via
  • /d:sonar.inclusions via
  • /d:sonar.links.ci via
  • /d:sonar.links.homepage via
  • /d:sonar.links.issue via
  • /d:sonar.links.scm via
  • /d:sonar.login via
  • /d:sonar.password via
  • /d:sonar.projectDescription via
  • /d:sonar.pullrequest.base via
  • /d:sonar.pullrequest.branch via
  • /d:sonar.pullrequest.key via
  • /d:sonar.qualitygate.timeout via
  • /d:sonar.qualitygate.wait via
  • /d:sonar.scm.exclusions.disabled via
  • /d:sonar.scm.forceReloadAll via
  • /d:sonar.scm.provider via
  • /d:sonar.scm.revision via
  • /d:sonar.sourceEncoding via
  • /d:sonar.test.exclusions via
  • /d:sonar.test.inclusions via
  • /d:sonar.token via
  • /d:sonar.verbose via
  • /d:sonar.ws.timeout via
  • /k via
  • /n via
  • /o via
  • /v via
public static IReadOnlyCollection SonarScannerBegin(SonarScannerBeginSettings options = null) => new SonarScannerTasks().Run(options); - /// + /// public static IReadOnlyCollection SonarScannerBegin(Configure configurator) => new SonarScannerTasks().Run(configurator.Invoke(new SonarScannerBeginSettings())); - /// + /// public static IEnumerable<(SonarScannerBeginSettings Settings, IReadOnlyCollection Output)> SonarScannerBegin(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SonarScannerBegin, degreeOfParallelism, completeOnFailure); ///

The SonarScanner for MSBuild is the recommended way to launch a SonarQube or SonarCloud analysis for projects/solutions using MSBuild or dotnet command as build tool.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /d:sonar.clientcert.password via
  • /d:sonar.login via
  • /d:sonar.password via
  • /d:sonar.token via
public static IReadOnlyCollection SonarScannerEnd(SonarScannerEndSettings options = null) => new SonarScannerTasks().Run(options); - /// + /// public static IReadOnlyCollection SonarScannerEnd(Configure configurator) => new SonarScannerTasks().Run(configurator.Invoke(new SonarScannerEndSettings())); - /// + /// public static IEnumerable<(SonarScannerEndSettings Settings, IReadOnlyCollection Output)> SonarScannerEnd(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SonarScannerEnd, degreeOfParallelism, completeOnFailure); } #region SonarScannerBeginSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SonarScannerTasks), Command = nameof(SonarScannerTasks.SonarScannerBegin), Arguments = "begin")] public partial class SonarScannerBeginSettings : ToolOptions, IToolOptionsWithFramework @@ -138,7 +134,7 @@ public partial class SonarScannerBeginSettings : ToolOptions, IToolOptionsWithFr } #endregion #region SonarScannerEndSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SonarScannerTasks), Command = nameof(SonarScannerTasks.SonarScannerEnd), Arguments = "end")] public partial class SonarScannerEndSettings : ToolOptions, IToolOptionsWithFramework @@ -154,7 +150,7 @@ public partial class SonarScannerEndSettings : ToolOptions, IToolOptionsWithFram } #endregion #region SonarScannerBeginSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SonarScannerBeginSettingsExtensions { @@ -771,7 +767,7 @@ public static partial class SonarScannerBeginSettingsExtensions } #endregion #region SonarScannerEndSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SonarScannerEndSettingsExtensions { diff --git a/src/Fallout.Common/Tools/SonarScanner/SonarScanner.json b/src/Fallout.Application.Tools/SonarScanner/SonarScanner.json similarity index 100% rename from src/Fallout.Common/Tools/SonarScanner/SonarScanner.json rename to src/Fallout.Application.Tools/SonarScanner/SonarScanner.json diff --git a/src/Fallout.Common/Tools/SpecFlow/SpecFlow.Generated.cs b/src/Fallout.Application.Tools/SpecFlow/SpecFlow.Generated.cs similarity index 94% rename from src/Fallout.Common/Tools/SpecFlow/SpecFlow.Generated.cs rename to src/Fallout.Application.Tools/SpecFlow/SpecFlow.Generated.cs index 5011b6335..8dcf94c3e 100644 --- a/src/Fallout.Common/Tools/SpecFlow/SpecFlow.Generated.cs +++ b/src/Fallout.Application.Tools/SpecFlow/SpecFlow.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/SpecFlow/SpecFlow.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.SpecFlow; +namespace Fallout.Application.Tools.SpecFlow; ///

Use SpecFlow to define, manage and automatically execute human-readable acceptance tests in .NET projects. Writing easily understandable tests is a cornerstone of the BDD paradigm and also helps build up a living documentation of your system.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,62 +25,62 @@ public partial class SpecFlowTasks : ToolTasks, IRequireNuGetPackage ///

This report provides a formatted HTML report of a test execution. The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --FeatureLanguage via
  • --OutputFile via
  • --ProjectFile via
  • --ProjectName via
  • --testOutput via
  • --xmlTestResult via
  • --XsltFile via
public static IReadOnlyCollection SpecFlowNUnitExecutionReport(SpecFlowNUnitExecutionReportSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowNUnitExecutionReport(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowNUnitExecutionReportSettings())); - /// + /// public static IEnumerable<(SpecFlowNUnitExecutionReportSettings Settings, IReadOnlyCollection Output)> SpecFlowNUnitExecutionReport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowNUnitExecutionReport, degreeOfParallelism, completeOnFailure); ///

This report provides a formatted HTML report of a test execution. The report contains a summary about the executed tests and the result and also a detailed report for the individual scenario executions.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projectFile> via
  • /out via
  • /testResult via
  • /xsltFile via
public static IReadOnlyCollection SpecFlowMSTestExecutionReport(SpecFlowMSTestExecutionReportSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowMSTestExecutionReport(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowMSTestExecutionReportSettings())); - /// + /// public static IEnumerable<(SpecFlowMSTestExecutionReportSettings Settings, IReadOnlyCollection Output)> SpecFlowMSTestExecutionReport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowMSTestExecutionReport, degreeOfParallelism, completeOnFailure); ///

This report shows the usage and binding status of the steps for the entire project. You can use this report to find both unused code in the automation layer and scenario steps that have no definition yet.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <projectFile> via
  • /out via
  • /testResult via
  • /xsltFile via
public static IReadOnlyCollection SpecFlowStepDefinitionReport(SpecFlowStepDefinitionReportSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowStepDefinitionReport(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowStepDefinitionReportSettings())); - /// + /// public static IEnumerable<(SpecFlowStepDefinitionReportSettings Settings, IReadOnlyCollection Output)> SpecFlowStepDefinitionReport(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowStepDefinitionReport, degreeOfParallelism, completeOnFailure); ///

Use SpecRun.exe run to execute your tests.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • /basefolder via
  • /debug via
  • /filter via
  • /log via
  • /outputfolder via
  • /report via
  • /toolIntegration via
public static IReadOnlyCollection SpecFlowRun(SpecFlowRunSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowRun(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowRunSettings())); - /// + /// public static IEnumerable<(SpecFlowRunSettings Settings, IReadOnlyCollection Output)> SpecFlowRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowRun, degreeOfParallelism, completeOnFailure); ///

Use SpecRun.exe buildserverrun to execute your tests in build server mode.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <target> via
  • /basefolder via
  • /buildserver via
  • /filter via
  • /log via
  • /outputfolder via
  • /report via
public static IReadOnlyCollection SpecFlowBuildServerRun(SpecFlowBuildServerRunSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowBuildServerRun(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowBuildServerRunSettings())); - /// + /// public static IEnumerable<(SpecFlowBuildServerRunSettings Settings, IReadOnlyCollection Output)> SpecFlowBuildServerRun(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowBuildServerRun, degreeOfParallelism, completeOnFailure); ///

Use SpecRun.exe register to register your SpecFlow+ license. You only need to register your license once per user per machine. The license is valid for all SpecFlow+ components.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <issuedTo> via
  • <licenseKey> via
public static IReadOnlyCollection SpecFlowRegister(SpecFlowRegisterSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowRegister(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowRegisterSettings())); - /// + /// public static IEnumerable<(SpecFlowRegisterSettings Settings, IReadOnlyCollection Output)> SpecFlowRegister(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowRegister, degreeOfParallelism, completeOnFailure); ///

Use SpecRun.exe unregister to unregister your SpecFlow+ license.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

public static IReadOnlyCollection SpecFlowUnregister(SpecFlowUnregisterSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowUnregister(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowUnregisterSettings())); - /// + /// public static IEnumerable<(SpecFlowUnregisterSettings Settings, IReadOnlyCollection Output)> SpecFlowUnregister(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowUnregister, degreeOfParallelism, completeOnFailure); ///

Use SpecRun.exe about to display information such as your version number, build date and license information (licensee, upgrade until date/expiry date).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

public static IReadOnlyCollection SpecFlowAbout(SpecFlowAboutSettings options = null) => new SpecFlowTasks().Run(options); - /// + /// public static IReadOnlyCollection SpecFlowAbout(Configure configurator) => new SpecFlowTasks().Run(configurator.Invoke(new SpecFlowAboutSettings())); - /// + /// public static IEnumerable<(SpecFlowAboutSettings Settings, IReadOnlyCollection Output)> SpecFlowAbout(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(SpecFlowAbout, degreeOfParallelism, completeOnFailure); } #region SpecFlowNUnitExecutionReportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowNUnitExecutionReport), Arguments = "nunitexecutionreport")] public partial class SpecFlowNUnitExecutionReportSettings : ToolOptions @@ -106,7 +102,7 @@ public partial class SpecFlowNUnitExecutionReportSettings : ToolOptions } #endregion #region SpecFlowMSTestExecutionReportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowMSTestExecutionReport), Arguments = "mstestexecutionreport")] public partial class SpecFlowMSTestExecutionReportSettings : ToolOptions @@ -122,7 +118,7 @@ public partial class SpecFlowMSTestExecutionReportSettings : ToolOptions } #endregion #region SpecFlowStepDefinitionReportSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowStepDefinitionReport), Arguments = "stepdefinitionreport")] public partial class SpecFlowStepDefinitionReportSettings : ToolOptions @@ -138,7 +134,7 @@ public partial class SpecFlowStepDefinitionReportSettings : ToolOptions } #endregion #region SpecFlowRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowRun), Arguments = "run")] public partial class SpecFlowRunSettings : ToolOptions @@ -160,7 +156,7 @@ public partial class SpecFlowRunSettings : ToolOptions } #endregion #region SpecFlowBuildServerRunSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowBuildServerRun), Arguments = "buildserverrun")] public partial class SpecFlowBuildServerRunSettings : ToolOptions @@ -182,7 +178,7 @@ public partial class SpecFlowBuildServerRunSettings : ToolOptions } #endregion #region SpecFlowRegisterSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowRegister), Arguments = "register")] public partial class SpecFlowRegisterSettings : ToolOptions @@ -194,7 +190,7 @@ public partial class SpecFlowRegisterSettings : ToolOptions } #endregion #region SpecFlowUnregisterSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowUnregister), Arguments = "register")] public partial class SpecFlowUnregisterSettings : ToolOptions @@ -202,7 +198,7 @@ public partial class SpecFlowUnregisterSettings : ToolOptions } #endregion #region SpecFlowAboutSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SpecFlowTasks), Command = nameof(SpecFlowTasks.SpecFlowAbout), Arguments = "register")] public partial class SpecFlowAboutSettings : ToolOptions @@ -210,7 +206,7 @@ public partial class SpecFlowAboutSettings : ToolOptions } #endregion #region SpecFlowNUnitExecutionReportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowNUnitExecutionReportSettingsExtensions { @@ -273,7 +269,7 @@ public static partial class SpecFlowNUnitExecutionReportSettingsExtensions } #endregion #region SpecFlowMSTestExecutionReportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowMSTestExecutionReportSettingsExtensions { @@ -312,7 +308,7 @@ public static partial class SpecFlowMSTestExecutionReportSettingsExtensions } #endregion #region SpecFlowStepDefinitionReportSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowStepDefinitionReportSettingsExtensions { @@ -351,7 +347,7 @@ public static partial class SpecFlowStepDefinitionReportSettingsExtensions } #endregion #region SpecFlowRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowRunSettingsExtensions { @@ -423,7 +419,7 @@ public static partial class SpecFlowRunSettingsExtensions } #endregion #region SpecFlowBuildServerRunSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowBuildServerRunSettingsExtensions { @@ -486,7 +482,7 @@ public static partial class SpecFlowBuildServerRunSettingsExtensions } #endregion #region SpecFlowRegisterSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowRegisterSettingsExtensions { @@ -509,14 +505,14 @@ public static partial class SpecFlowRegisterSettingsExtensions } #endregion #region SpecFlowUnregisterSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowUnregisterSettingsExtensions { } #endregion #region SpecFlowAboutSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SpecFlowAboutSettingsExtensions { diff --git a/src/Fallout.Common/Tools/SpecFlow/SpecFlow.json b/src/Fallout.Application.Tools/SpecFlow/SpecFlow.json similarity index 100% rename from src/Fallout.Common/Tools/SpecFlow/SpecFlow.json rename to src/Fallout.Application.Tools/SpecFlow/SpecFlow.json diff --git a/src/Fallout.Common/Tools/Squirrel/Squirrel.Generated.cs b/src/Fallout.Application.Tools/Squirrel/Squirrel.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/Squirrel/Squirrel.Generated.cs rename to src/Fallout.Application.Tools/Squirrel/Squirrel.Generated.cs index cf803dbb1..6402a8aa4 100644 --- a/src/Fallout.Common/Tools/Squirrel/Squirrel.Generated.cs +++ b/src/Fallout.Application.Tools/Squirrel/Squirrel.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Squirrel/Squirrel.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Squirrel; +namespace Fallout.Application.Tools.Squirrel; ///

Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e., Squirrel can manage native C++ applications).

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class SquirrelTasks : ToolTasks, IRequireNuGetPackage ///

Squirrel is both a set of tools and a library, to completely manage both installation and updating your Desktop Windows application, written in either C# or any other language (i.e., Squirrel can manage native C++ applications).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --baseUrl via
  • --bootstrapperExe via
  • --checkForUpdate via
  • --createShortcut via
  • --download via
  • --framework-version via
  • --icon via
  • --install via
  • --loadingGif via
  • --no-delta via
  • --no-msi via
  • --packagesDir via
  • --process-start-args via
  • --processStart via
  • --processStartAndWait via
  • --releaseDir via
  • --releasify via
  • --removeShortcut via
  • --setupIcon via
  • --shortcut-locations via
  • --signWithParams via
  • --uninstall via
  • --update via
  • --updateSelf via
public static IReadOnlyCollection Squirrel(SquirrelSettings options = null) => new SquirrelTasks().Run(options); - /// + /// public static IReadOnlyCollection Squirrel(Configure configurator) => new SquirrelTasks().Run(configurator.Invoke(new SquirrelSettings())); - /// + /// public static IEnumerable<(SquirrelSettings Settings, IReadOnlyCollection Output)> Squirrel(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Squirrel, degreeOfParallelism, completeOnFailure); } #region SquirrelSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(SquirrelTasks), Command = nameof(SquirrelTasks.Squirrel))] public partial class SquirrelSettings : ToolOptions @@ -91,7 +86,7 @@ public partial class SquirrelSettings : ToolOptions } #endregion #region SquirrelSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class SquirrelSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Squirrel/Squirrel.json b/src/Fallout.Application.Tools/Squirrel/Squirrel.json similarity index 100% rename from src/Fallout.Common/Tools/Squirrel/Squirrel.json rename to src/Fallout.Application.Tools/Squirrel/Squirrel.json diff --git a/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.Generated.cs b/src/Fallout.Application.Tools/StaticWebApps/StaticWebApps.Generated.cs similarity index 96% rename from src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.Generated.cs rename to src/Fallout.Application.Tools/StaticWebApps/StaticWebApps.Generated.cs index a240dfe11..7d0ab5c7a 100644 --- a/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.Generated.cs +++ b/src/Fallout.Application.Tools/StaticWebApps/StaticWebApps.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.StaticWebApps; +namespace Fallout.Application.Tools.StaticWebApps; ///

The Static Web Apps CLI, also known as SWA CLI, serves as a local development tool for Azure Static Web Apps. It can:

  • Serve static app assets, or proxy to your app dev server
  • Serve API requests, or proxy to APIs running in Azure Functions Core Tools
  • Emulate authentication and authorization
  • Emulate Static Web Apps configuration, including routing

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,20 +25,20 @@ public partial class StaticWebAppsTasks : ToolTasks, IRequireNpmPackage ///

The Static Web Apps CLI, also known as SWA CLI, serves as a local development tool for Azure Static Web Apps. It can:

  • Serve static app assets, or proxy to your app dev server
  • Serve API requests, or proxy to APIs running in Azure Functions Core Tools
  • Emulate authentication and authorization
  • Emulate Static Web Apps configuration, including routing

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --api-location via
  • --api-port via
  • --app-artifact-location via
  • --app-location via
  • --devserver-timeout via
  • --host via
  • --port via
  • --run via
  • --ssl via
  • --ssl-cert via
  • --ssl-key via
  • --swa-config-location via
public static IReadOnlyCollection StaticWebAppsStart(StaticWebAppsStartSettings options = null) => new StaticWebAppsTasks().Run(options); - /// + /// public static IReadOnlyCollection StaticWebAppsStart(Configure configurator) => new StaticWebAppsTasks().Run(configurator.Invoke(new StaticWebAppsStartSettings())); - /// + /// public static IEnumerable<(StaticWebAppsStartSettings Settings, IReadOnlyCollection Output)> StaticWebAppsStart(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(StaticWebAppsStart, degreeOfParallelism, completeOnFailure); ///

The Static Web Apps CLI, also known as SWA CLI, serves as a local development tool for Azure Static Web Apps. It can:

  • Serve static app assets, or proxy to your app dev server
  • Serve API requests, or proxy to APIs running in Azure Functions Core Tools
  • Emulate authentication and authorization
  • Emulate Static Web Apps configuration, including routing

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --api-location via
  • --app-location via
  • --deployment-token via
  • --env via
  • --output-location via
  • --swa-config-location via
public static IReadOnlyCollection StaticWebAppsDeploy(StaticWebAppsDeploySettings options = null) => new StaticWebAppsTasks().Run(options); - /// + /// public static IReadOnlyCollection StaticWebAppsDeploy(Configure configurator) => new StaticWebAppsTasks().Run(configurator.Invoke(new StaticWebAppsDeploySettings())); - /// + /// public static IEnumerable<(StaticWebAppsDeploySettings Settings, IReadOnlyCollection Output)> StaticWebAppsDeploy(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(StaticWebAppsDeploy, degreeOfParallelism, completeOnFailure); } #region StaticWebAppsStartSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(StaticWebAppsTasks), Command = nameof(StaticWebAppsTasks.StaticWebAppsStart), Arguments = "start")] public partial class StaticWebAppsStartSettings : ToolOptions @@ -74,7 +70,7 @@ public partial class StaticWebAppsStartSettings : ToolOptions } #endregion #region StaticWebAppsDeploySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(StaticWebAppsTasks), Command = nameof(StaticWebAppsTasks.StaticWebAppsDeploy), Arguments = "deploy")] public partial class StaticWebAppsDeploySettings : ToolOptions @@ -94,7 +90,7 @@ public partial class StaticWebAppsDeploySettings : ToolOptions } #endregion #region StaticWebAppsStartSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class StaticWebAppsStartSettingsExtensions { @@ -206,7 +202,7 @@ public static partial class StaticWebAppsStartSettingsExtensions } #endregion #region StaticWebAppsDeploySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class StaticWebAppsDeploySettingsExtensions { diff --git a/src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.json b/src/Fallout.Application.Tools/StaticWebApps/StaticWebApps.json similarity index 100% rename from src/Fallout.Common/Tools/StaticWebApps/StaticWebApps.json rename to src/Fallout.Application.Tools/StaticWebApps/StaticWebApps.json diff --git a/src/Fallout.Common/Tools/Teams/Teams.Extensions.cs b/src/Fallout.Application.Tools/Teams/Teams.Extensions.cs similarity index 85% rename from src/Fallout.Common/Tools/Teams/Teams.Extensions.cs rename to src/Fallout.Application.Tools/Teams/Teams.Extensions.cs index ed17340f2..871294ae5 100644 --- a/src/Fallout.Common/Tools/Teams/Teams.Extensions.cs +++ b/src/Fallout.Application.Tools/Teams/Teams.Extensions.cs @@ -1,6 +1,6 @@ using System.Text.Json.Serialization; -namespace Fallout.Common.Tools.Teams; +namespace Fallout.Application.Tools.Teams; public partial class TeamsMessage { diff --git a/src/Fallout.Common/Tools/Teams/Teams.Generated.cs b/src/Fallout.Application.Tools/Teams/Teams.Generated.cs similarity index 90% rename from src/Fallout.Common/Tools/Teams/Teams.Generated.cs rename to src/Fallout.Application.Tools/Teams/Teams.Generated.cs index 2755a14c6..585992d7b 100644 --- a/src/Fallout.Common/Tools/Teams/Teams.Generated.cs +++ b/src/Fallout.Application.Tools/Teams/Teams.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Teams/Teams.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Teams; +namespace Fallout.Application.Tools.Teams; #region TeamsMessage /// Used within . diff --git a/src/Fallout.Common/Tools/Teams/Teams.json b/src/Fallout.Application.Tools/Teams/Teams.json similarity index 100% rename from src/Fallout.Common/Tools/Teams/Teams.json rename to src/Fallout.Application.Tools/Teams/Teams.json diff --git a/src/Fallout.Common/Tools/Teams/TeamsTasks.cs b/src/Fallout.Application.Tools/Teams/TeamsTasks.cs similarity index 84% rename from src/Fallout.Common/Tools/Teams/TeamsTasks.cs rename to src/Fallout.Application.Tools/Teams/TeamsTasks.cs index 15869da35..62436101c 100644 --- a/src/Fallout.Common/Tools/Teams/TeamsTasks.cs +++ b/src/Fallout.Application.Tools/Teams/TeamsTasks.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Linq; using System.Net.Http; using System.Threading.Tasks; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities.Net; +using Fallout.Application.Tooling; +using Fallout.Kernel.Net; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Teams; +namespace Fallout.Application.Tools.Teams; public static class TeamsTasks { diff --git a/src/Fallout.Common/Tools/TestCloud/TestCloud.Generated.cs b/src/Fallout.Application.Tools/TestCloud/TestCloud.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/TestCloud/TestCloud.Generated.cs rename to src/Fallout.Application.Tools/TestCloud/TestCloud.Generated.cs index 98ca878b6..3d33b6ded 100644 --- a/src/Fallout.Common/Tools/TestCloud/TestCloud.Generated.cs +++ b/src/Fallout.Application.Tools/TestCloud/TestCloud.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/TestCloud/TestCloud.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.TestCloud; +namespace Fallout.Application.Tools.TestCloud; ///

Test Cloud is a cloud based service consisting of thousands of physical mobile devices. Users upload their apps and tests to Test Cloud, which will install the apps on the devices and run the tests. When the tests are complete, Test Cloud, the results made available to users through an easy to use and informative web-based front end.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class TestCloudTasks : ToolTasks, IRequireNuGetPackage ///

Test Cloud is a cloud based service consisting of thousands of physical mobile devices. Users upload their apps and tests to Test Cloud, which will install the apps on the devices and run the tests. When the tests are complete, Test Cloud, the results made available to users through an easy to use and informative web-based front end.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • --assembly-dir via
  • --data via
  • --devices via
  • --dsym via
  • --exclude via
  • --fixture via
  • --fixture-chunk via
  • --include via
  • --nunit-xml via
  • --sign-info via
  • --test-chunk via
  • --user via
public static IReadOnlyCollection TestCloud(TestCloudSettings options = null) => new TestCloudTasks().Run(options); - /// + /// public static IReadOnlyCollection TestCloud(Configure configurator) => new TestCloudTasks().Run(configurator.Invoke(new TestCloudSettings())); - /// + /// public static IEnumerable<(TestCloudSettings Settings, IReadOnlyCollection Output)> TestCloud(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(TestCloud, degreeOfParallelism, completeOnFailure); } #region TestCloudSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(TestCloudTasks), Command = nameof(TestCloudTasks.TestCloud), Arguments = "submit")] public partial class TestCloudSettings : ToolOptions @@ -67,7 +62,7 @@ public partial class TestCloudSettings : ToolOptions } #endregion #region TestCloudSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class TestCloudSettingsExtensions { diff --git a/src/Fallout.Common/Tools/TestCloud/TestCloud.json b/src/Fallout.Application.Tools/TestCloud/TestCloud.json similarity index 100% rename from src/Fallout.Common/Tools/TestCloud/TestCloud.json rename to src/Fallout.Application.Tools/TestCloud/TestCloud.json diff --git a/src/Fallout.Common/Tools/Twitter/TwitterTasks.cs b/src/Fallout.Application.Tools/Twitter/TwitterTasks.cs similarity index 96% rename from src/Fallout.Common/Tools/Twitter/TwitterTasks.cs rename to src/Fallout.Application.Tools/Twitter/TwitterTasks.cs index 9203a7dd8..047f1bfdd 100644 --- a/src/Fallout.Common/Tools/Twitter/TwitterTasks.cs +++ b/src/Fallout.Application.Tools/Twitter/TwitterTasks.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -8,10 +8,10 @@ using System.Text; using System.Text.Json.Nodes; using System.Threading.Tasks; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Twitter; +namespace Fallout.Application.Tools.Twitter; public static class TwitterTasks { diff --git a/src/Fallout.Common/Tools/Unity/Logging/BlockMatcher.cs b/src/Fallout.Application.Tools/Unity/Logging/BlockMatcher.cs similarity index 95% rename from src/Fallout.Common/Tools/Unity/Logging/BlockMatcher.cs rename to src/Fallout.Application.Tools/Unity/Logging/BlockMatcher.cs index e7d6ab747..d1a170916 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/BlockMatcher.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/BlockMatcher.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Text.RegularExpressions; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal class BlockMatcher { diff --git a/src/Fallout.Common/Tools/Unity/Logging/FileWatcher.cs b/src/Fallout.Application.Tools/Unity/Logging/FileWatcher.cs similarity index 97% rename from src/Fallout.Common/Tools/Unity/Logging/FileWatcher.cs rename to src/Fallout.Application.Tools/Unity/Logging/FileWatcher.cs index 2c7ebafdf..4189f0583 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/FileWatcher.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/FileWatcher.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.IO; using System.Linq; using System.Text; using System.Threading; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal class FileWatcher { diff --git a/src/Fallout.Common/Tools/Unity/Logging/LineMatcher.cs b/src/Fallout.Application.Tools/Unity/Logging/LineMatcher.cs similarity index 86% rename from src/Fallout.Common/Tools/Unity/Logging/LineMatcher.cs rename to src/Fallout.Application.Tools/Unity/Logging/LineMatcher.cs index 7edfb586d..60d8ad15a 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/LineMatcher.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/LineMatcher.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Text.RegularExpressions; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal class LineMatcher { diff --git a/src/Fallout.Common/Tools/Unity/Logging/LogParser.cs b/src/Fallout.Application.Tools/Unity/Logging/LogParser.cs similarity index 98% rename from src/Fallout.Common/Tools/Unity/Logging/LogParser.cs rename to src/Fallout.Application.Tools/Unity/Logging/LogParser.cs index 2d1655fb2..b1cc664e9 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/LogParser.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/LogParser.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal class LogParser { diff --git a/src/Fallout.Common/Tools/Unity/Logging/MatchType.cs b/src/Fallout.Application.Tools/Unity/Logging/MatchType.cs similarity index 60% rename from src/Fallout.Common/Tools/Unity/Logging/MatchType.cs rename to src/Fallout.Application.Tools/Unity/Logging/MatchType.cs index 4997189a8..a7241451c 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/MatchType.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/MatchType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal enum MatchType { diff --git a/src/Fallout.Common/Tools/Unity/Logging/MatchedBlock.cs b/src/Fallout.Application.Tools/Unity/Logging/MatchedBlock.cs similarity index 87% rename from src/Fallout.Common/Tools/Unity/Logging/MatchedBlock.cs rename to src/Fallout.Application.Tools/Unity/Logging/MatchedBlock.cs index 5b3c3a261..3798edbec 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/MatchedBlock.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/MatchedBlock.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; internal class MatchedBlock { diff --git a/src/Fallout.Common/Tools/Unity/Logging/UnityLogLevel.cs b/src/Fallout.Application.Tools/Unity/Logging/UnityLogLevel.cs similarity index 59% rename from src/Fallout.Common/Tools/Unity/Logging/UnityLogLevel.cs rename to src/Fallout.Application.Tools/Unity/Logging/UnityLogLevel.cs index cc470ada5..91daa1f75 100644 --- a/src/Fallout.Common/Tools/Unity/Logging/UnityLogLevel.cs +++ b/src/Fallout.Application.Tools/Unity/Logging/UnityLogLevel.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Tools.Unity.Logging; +namespace Fallout.Application.Tools.Unity.Logging; public enum LogLevel { diff --git a/src/Fallout.Common/Tools/Unity/Unity.Generated.cs b/src/Fallout.Application.Tools/Unity/Unity.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Unity/Unity.Generated.cs rename to src/Fallout.Application.Tools/Unity/Unity.Generated.cs index e22f8de2e..61d352108 100644 --- a/src/Fallout.Common/Tools/Unity/Unity.Generated.cs +++ b/src/Fallout.Application.Tools/Unity/Unity.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Unity/Unity.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.Unity; +namespace Fallout.Application.Tools.Unity; ///

Unity is usually launched by double-clicking its icon from the desktop. However, it is also possible to run it from the command line (from the macOS Terminal or the Windows Command Prompt). When launched in this way, Unity can receive commands and information on startup, which can be very useful for test suites, automated builds and other production tasks.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -26,41 +22,41 @@ public partial class UnityTasks : ToolTasks ///

(2018.2+) Exports the currently activated license to the path of the Unity executable or either the default Unity license location, see the logs or Activation FAQ for more information.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -batchmode via
  • -logFile via
  • -nographics via
  • -password via
  • -quit via
  • -serial via
  • -silent-crashes via
  • -username via
public static IReadOnlyCollection UnityCreateManualActivationFile(UnityCreateManualActivationFileSettings options = null) => new UnityTasks().Run(options); - /// + /// public static IReadOnlyCollection UnityCreateManualActivationFile(Configure configurator) => new UnityTasks().Run(configurator.Invoke(new UnityCreateManualActivationFileSettings())); - /// + /// public static IEnumerable<(UnityCreateManualActivationFileSettings Settings, IReadOnlyCollection Output)> UnityCreateManualActivationFile(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(UnityCreateManualActivationFile, degreeOfParallelism, completeOnFailure); ///

(2018.2+) Activates Unity with a license file.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -batchmode via
  • -logFile via
  • -manualLicenseFile via
  • -nographics via
  • -password via
  • -quit via
  • -serial via
  • -silent-crashes via
  • -username via
public static IReadOnlyCollection UnityManualLicenseFile(UnityManualLicenseFileSettings options = null) => new UnityTasks().Run(options); - /// + /// public static IReadOnlyCollection UnityManualLicenseFile(Configure configurator) => new UnityTasks().Run(configurator.Invoke(new UnityManualLicenseFileSettings())); - /// + /// public static IEnumerable<(UnityManualLicenseFileSettings Settings, IReadOnlyCollection Output)> UnityManualLicenseFile(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(UnityManualLicenseFile, degreeOfParallelism, completeOnFailure); ///

Execute Unity.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <customArguments> via
  • -accept-apiupdate via
  • -assetServerUpdate via
  • -batchmode via
  • -buildLinux32Player via
  • -buildLinux64Player via
  • -buildLinuxUniversalPlayer via
  • -buildOSX64Player via
  • -buildOSXPlayer via
  • -buildOSXUniversalPlayer via
  • -buildTarget via
  • -buildWindows64Player via
  • -buildWindowsPlayer via
  • -cacheServerIPAddress via
  • -createProject via
  • -disable-assembly-updater via
  • -editorTestsCategories via
  • -editorTestsFilter via
  • -editorTestsResultFile via
  • -executeMethod via
  • -exportPackage via
  • -force-clamped via
  • -force-d3d11 via
  • -force-device-index via
  • -force-gfx-metal via
  • -force-glcore via
  • -force-glcore via
  • -force-gles via
  • -force-gles via
  • -force-low-power-device via
  • -importPackage via
  • -logFile via
  • -nographics via
  • -noUpm via
  • -password via
  • -projectPath via
  • -quit via
  • -runEditorTests via
  • -serial via
  • -setDefaultPlatformTextureFormat via
  • -silent-crashes via
  • -stackTraceLogType via
  • -username via
public static IReadOnlyCollection Unity(UnitySettings options = null) => new UnityTasks().Run(options); - /// + /// public static IReadOnlyCollection Unity(Configure configurator) => new UnityTasks().Run(configurator.Invoke(new UnitySettings())); - /// + /// public static IEnumerable<(UnitySettings Settings, IReadOnlyCollection Output)> Unity(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Unity, degreeOfParallelism, completeOnFailure); ///

Return the currenlty activated Unity license.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -batchmode via
  • -logFile via
  • -nographics via
  • -password via
  • -quit via
  • -serial via
  • -silent-crashes via
  • -username via
public static IReadOnlyCollection UnityReturnLicense(UnityReturnLicenseSettings options = null) => new UnityTasks().Run(options); - /// + /// public static IReadOnlyCollection UnityReturnLicense(Configure configurator) => new UnityTasks().Run(configurator.Invoke(new UnityReturnLicenseSettings())); - /// + /// public static IEnumerable<(UnityReturnLicenseSettings Settings, IReadOnlyCollection Output)> UnityReturnLicense(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(UnityReturnLicense, degreeOfParallelism, completeOnFailure); ///

(2019.2+) Run tests in the project using Unity Test Framework. This argument requires the projectPath, and it's good practice to run it with batchmode argument. quit is not required, because the Editor automatically closes down after the run is finished.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <customArguments> via
  • -accept-apiupdate via
  • -assetServerUpdate via
  • -batchmode via
  • -buildTarget via
  • -cacheServerIPAddress via
  • -disable-assembly-updater via
  • -force-clamped via
  • -force-d3d11 via
  • -force-device-index via
  • -force-gfx-metal via
  • -force-glcore via
  • -force-glcore via
  • -force-gles via
  • -force-gles via
  • -force-low-power-device via
  • -logFile via
  • -nographics via
  • -noUpm via
  • -password via
  • -projectPath via
  • -quit via
  • -serial via
  • -setDefaultPlatformTextureFormat via
  • -silent-crashes via
  • -stackTraceLogType via
  • -testCategory via
  • -testFilter via
  • -testPlatform via
  • -testResults via
  • -username via
public static IReadOnlyCollection UnityRunTests(UnityRunTestsSettings options = null) => new UnityTasks().Run(options); - /// + /// public static IReadOnlyCollection UnityRunTests(Configure configurator) => new UnityTasks().Run(configurator.Invoke(new UnityRunTestsSettings())); - /// + /// public static IEnumerable<(UnityRunTestsSettings Settings, IReadOnlyCollection Output)> UnityRunTests(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(UnityRunTests, degreeOfParallelism, completeOnFailure); } #region UnityCreateManualActivationFileSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(UnityTasks), Command = nameof(UnityTasks.UnityCreateManualActivationFile), Arguments = "-createManualActivationFile")] public partial class UnityCreateManualActivationFileSettings : UnityOptionsBase @@ -82,7 +78,7 @@ public partial class UnityCreateManualActivationFileSettings : UnityOptionsBase } #endregion #region UnityManualLicenseFileSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(UnityTasks), Command = nameof(UnityTasks.UnityManualLicenseFile))] public partial class UnityManualLicenseFileSettings : UnityOptionsBase @@ -106,7 +102,7 @@ public partial class UnityManualLicenseFileSettings : UnityOptionsBase } #endregion #region UnitySettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(UnityTasks), Command = nameof(UnityTasks.Unity))] public partial class UnitySettings : UnityProjectOptions @@ -160,7 +156,7 @@ public partial class UnitySettings : UnityProjectOptions } #endregion #region UnityReturnLicenseSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(UnityTasks), Command = nameof(UnityTasks.UnityReturnLicense), Arguments = "-returnlicense")] public partial class UnityReturnLicenseSettings : UnityOptionsBase @@ -182,7 +178,7 @@ public partial class UnityReturnLicenseSettings : UnityOptionsBase } #endregion #region UnityRunTestsSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(UnityTasks), Command = nameof(UnityTasks.UnityRunTests), Arguments = "-runTests")] public partial class UnityRunTestsSettings : UnityProjectOptions @@ -272,7 +268,7 @@ public partial class UnityProjectOptions : UnityOptionsBase } #endregion #region UnityCreateManualActivationFileSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class UnityCreateManualActivationFileSettingsExtensions { @@ -371,7 +367,7 @@ public static partial class UnityCreateManualActivationFileSettingsExtensions } #endregion #region UnityManualLicenseFileSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class UnityManualLicenseFileSettingsExtensions { @@ -478,7 +474,7 @@ public static partial class UnityManualLicenseFileSettingsExtensions } #endregion #region UnitySettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class UnitySettingsExtensions { @@ -759,7 +755,7 @@ public static partial class UnitySettingsExtensions } #endregion #region UnityReturnLicenseSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class UnityReturnLicenseSettingsExtensions { @@ -858,7 +854,7 @@ public static partial class UnityReturnLicenseSettingsExtensions } #endregion #region UnityRunTestsSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class UnityRunTestsSettingsExtensions { diff --git a/src/Fallout.Common/Tools/Unity/Unity.json b/src/Fallout.Application.Tools/Unity/Unity.json similarity index 100% rename from src/Fallout.Common/Tools/Unity/Unity.json rename to src/Fallout.Application.Tools/Unity/Unity.json diff --git a/src/Fallout.Common/Tools/Unity/UnityTasks.cs b/src/Fallout.Application.Tools/Unity/UnityTasks.cs similarity index 94% rename from src/Fallout.Common/Tools/Unity/UnityTasks.cs rename to src/Fallout.Application.Tools/Unity/UnityTasks.cs index 6005105e2..359d389d4 100644 --- a/src/Fallout.Common/Tools/Unity/UnityTasks.cs +++ b/src/Fallout.Application.Tools/Unity/UnityTasks.cs @@ -1,17 +1,18 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.Unity.Logging; -using Fallout.Common.Utilities; -using Fallout.Utilities.Text.Yaml; using Serilog; using Serilog.Events; - -namespace Fallout.Common.Tools.Unity; +using Fallout.Application; +using Fallout.Application.Tools.Unity.Logging; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel.Text.Yaml; +using Fallout.Kernel; + +namespace Fallout.Application.Tools.Unity; partial class UnityTasks { diff --git a/src/Fallout.Common/Tools/VSTest/VSTest.Generated.cs b/src/Fallout.Application.Tools/VSTest/VSTest.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/VSTest/VSTest.Generated.cs rename to src/Fallout.Application.Tools/VSTest/VSTest.Generated.cs index 1b6f1a1bf..00ddb3e0e 100644 --- a/src/Fallout.Common/Tools/VSTest/VSTest.Generated.cs +++ b/src/Fallout.Application.Tools/VSTest/VSTest.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/VSTest/VSTest.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.VSTest; +namespace Fallout.Application.Tools.VSTest; ///

VSTest.Console.exe is the command-line command that is used to run tests. You can specify several options in any order on the VSTest.Console.exe command line.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class VSTestTasks : ToolTasks, IRequireNuGetPackage ///

VSTest.Console.exe is the command-line command that is used to run tests. You can specify several options in any order on the VSTest.Console.exe command line.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <testAssemblies> via
  • /Diag via
  • /EnableCodeCoverage via
  • /Framework via
  • /InIsolation via
  • /ListDiscoverers via
  • /ListExecutors via
  • /ListLoggers via
  • /ListSettingsProviders via
  • /ListTests via
  • /Logger via
  • /Parallel via
  • /Platform via
  • /Settings via
  • /TestAdapterPath via
  • /TestCaseFilter via
  • /Tests via
  • /UseVsixExtensions via
public static IReadOnlyCollection VSTest(VSTestSettings options = null) => new VSTestTasks().Run(options); - /// + /// public static IReadOnlyCollection VSTest(Configure configurator) => new VSTestTasks().Run(configurator.Invoke(new VSTestSettings())); - /// + /// public static IEnumerable<(VSTestSettings Settings, IReadOnlyCollection Output)> VSTest(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(VSTest, degreeOfParallelism, completeOnFailure); } #region VSTestSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(VSTestTasks), Command = nameof(VSTestTasks.VSTest))] public partial class VSTestSettings : ToolOptions @@ -79,7 +74,7 @@ public partial class VSTestSettings : ToolOptions } #endregion #region VSTestSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class VSTestSettingsExtensions { diff --git a/src/Fallout.Common/Tools/VSTest/VSTest.json b/src/Fallout.Application.Tools/VSTest/VSTest.json similarity index 100% rename from src/Fallout.Common/Tools/VSTest/VSTest.json rename to src/Fallout.Application.Tools/VSTest/VSTest.json diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhere.Generated.cs b/src/Fallout.Application.Tools/VSWhere/VSWhere.Generated.cs similarity index 97% rename from src/Fallout.Common/Tools/VSWhere/VSWhere.Generated.cs rename to src/Fallout.Application.Tools/VSWhere/VSWhere.Generated.cs index dcf27f93b..e4c37dc4d 100644 --- a/src/Fallout.Common/Tools/VSWhere/VSWhere.Generated.cs +++ b/src/Fallout.Application.Tools/VSWhere/VSWhere.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/VSWhere/VSWhere.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.VSWhere; +namespace Fallout.Application.Tools.VSWhere; ///

VSWhere is designed to be a redistributable, single-file executable that can be used in build or deployment scripts to find where Visual Studio - or other products in the Visual Studio family - is located.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class VSWhereTasks : ToolTasks, IRequireNuGetPackage ///

VSWhere is designed to be a redistributable, single-file executable that can be used in build or deployment scripts to find where Visual Studio - or other products in the Visual Studio family - is located.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • -all via
  • -format via
  • -latest via
  • -legacy via
  • -nologo via
  • -prerelease via
  • -products via
  • -property via
  • -requires via
  • -requiresAny via
  • -utf8 via
  • -version via
public static (List Result, IReadOnlyCollection Output) VSWhere(VSWhereSettings options = null) => new VSWhereTasks().Run>(options); - /// + /// public static (List Result, IReadOnlyCollection Output) VSWhere(Configure configurator) => new VSWhereTasks().Run>(configurator.Invoke(new VSWhereSettings())); - /// + /// public static IEnumerable<(VSWhereSettings Settings, List Result, IReadOnlyCollection Output)> VSWhere(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(VSWhere, degreeOfParallelism, completeOnFailure); } #region VSWhereSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(VSWhereTasks), Command = nameof(VSWhereTasks.VSWhere))] public partial class VSWhereSettings : ToolOptions @@ -151,7 +146,7 @@ public partial class VSWhereResult : Options } #endregion #region VSWhereSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class VSWhereSettingsExtensions { diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhere.json b/src/Fallout.Application.Tools/VSWhere/VSWhere.json similarity index 100% rename from src/Fallout.Common/Tools/VSWhere/VSWhere.json rename to src/Fallout.Application.Tools/VSWhere/VSWhere.json diff --git a/src/Fallout.Common/Tools/VSWhere/VSWhereTasks.cs b/src/Fallout.Application.Tools/VSWhere/VSWhereTasks.cs similarity index 89% rename from src/Fallout.Common/Tools/VSWhere/VSWhereTasks.cs rename to src/Fallout.Application.Tools/VSWhere/VSWhereTasks.cs index 81dbc84ae..d7787f749 100644 --- a/src/Fallout.Common/Tools/VSWhere/VSWhereTasks.cs +++ b/src/Fallout.Application.Tools/VSWhere/VSWhereTasks.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.VSWhere; +namespace Fallout.Application.Tools.VSWhere; partial class VSWhereTasks { diff --git a/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs b/src/Fallout.Application.Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs similarity index 90% rename from src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs rename to src/Fallout.Application.Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs index 1d6165d1e..c78ba5c19 100644 --- a/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs +++ b/src/Fallout.Application.Tools/WebConfigTransformRunner/WebConfigTransformRunner.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,9 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tools.WebConfigTransformRunner; +namespace Fallout.Application.Tools.WebConfigTransformRunner; ///

This is a commandline tool to run an ASP.Net web.config tranformation.

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -29,13 +24,13 @@ public partial class WebConfigTransformRunnerTasks : ToolTasks, IRequireNuGetPac ///

This is a commandline tool to run an ASP.Net web.config tranformation.

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <outputFilename> via
  • <transformFilename> via
  • <webConfigFilename> via
public static IReadOnlyCollection WebConfigTransformRunner(WebConfigTransformRunnerSettings options = null) => new WebConfigTransformRunnerTasks().Run(options); - /// + /// public static IReadOnlyCollection WebConfigTransformRunner(Configure configurator) => new WebConfigTransformRunnerTasks().Run(configurator.Invoke(new WebConfigTransformRunnerSettings())); - /// + /// public static IEnumerable<(WebConfigTransformRunnerSettings Settings, IReadOnlyCollection Output)> WebConfigTransformRunner(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(WebConfigTransformRunner, degreeOfParallelism, completeOnFailure); } #region WebConfigTransformRunnerSettings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(WebConfigTransformRunnerTasks), Command = nameof(WebConfigTransformRunnerTasks.WebConfigTransformRunner))] public partial class WebConfigTransformRunnerSettings : ToolOptions @@ -49,7 +44,7 @@ public partial class WebConfigTransformRunnerSettings : ToolOptions } #endregion #region WebConfigTransformRunnerSettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class WebConfigTransformRunnerSettingsExtensions { diff --git a/src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.json b/src/Fallout.Application.Tools/WebConfigTransformRunner/WebConfigTransformRunner.json similarity index 100% rename from src/Fallout.Common/Tools/WebConfigTransformRunner/WebConfigTransformRunner.json rename to src/Fallout.Application.Tools/WebConfigTransformRunner/WebConfigTransformRunner.json diff --git a/src/Fallout.Common/Tools/Xunit/Xunit.Generated.cs b/src/Fallout.Application.Tools/Xunit/Xunit.Generated.cs similarity index 98% rename from src/Fallout.Common/Tools/Xunit/Xunit.Generated.cs rename to src/Fallout.Application.Tools/Xunit/Xunit.Generated.cs index 15bbe287c..d693dd605 100644 --- a/src/Fallout.Common/Tools/Xunit/Xunit.Generated.cs +++ b/src/Fallout.Application.Tools/Xunit/Xunit.Generated.cs @@ -1,9 +1,3 @@ -// Generated from https://github.com/ChrisonSimtian/Fallout/blob/main/src/Fallout.Common/Tools/Xunit/Xunit.json - -using Fallout.Common; -using Fallout.Common.Tooling; -using Fallout.Common.Tools; -using Fallout.Common.Utilities.Collections; using System; using System.Collections.Generic; using System.Collections.ObjectModel; @@ -13,8 +7,10 @@ using System.Linq; using System.Text; using System.Text.Json.Serialization; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tools.Xunit; +namespace Fallout.Application.Tools.Xunit; ///

xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework. Written by the original inventor of NUnit v2, xUnit.net is the latest technology for unit testing C#, F#, VB.NET and other .NET languages. xUnit.net works with ReSharper, CodeRush, TestDriven.NET and Xamarin. It is part of the .NET Foundation, and operates under their code of conduct. It is licensed under Apache 2 (an OSI approved license).

For more details, visit the official website.

[ExcludeFromCodeCoverage] @@ -28,13 +24,13 @@ public partial class XunitTasks : ToolTasks, IRequireNuGetPackage ///

xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework. Written by the original inventor of NUnit v2, xUnit.net is the latest technology for unit testing C#, F#, VB.NET and other .NET languages. xUnit.net works with ReSharper, CodeRush, TestDriven.NET and Xamarin. It is part of the .NET Foundation, and operates under their code of conduct. It is licensed under Apache 2 (an OSI approved license).

For more details, visit the official website.

///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

  • <targetAssemblyWithConfigs> via
  • - via
  • - via
  • -appdomains via
  • -class via
  • -debug via
  • -diagnostics via
  • -failskips via
  • -maxthreads via
  • -method via
  • -namespace via
  • -noautoreporters via
  • -nocolor via
  • -nologo via
  • -noshadow via
  • -notrait via
  • -parallel via
  • -pause via
  • -serialize via
  • -stoponfail via
  • -trait via
  • -wait via
public static IReadOnlyCollection Xunit2(Xunit2Settings options = null) => new XunitTasks().Run(options); - /// + /// public static IReadOnlyCollection Xunit2(Configure configurator) => new XunitTasks().Run(configurator.Invoke(new Xunit2Settings())); - /// + /// public static IEnumerable<(Xunit2Settings Settings, IReadOnlyCollection Output)> Xunit2(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) => configurator.Invoke(Xunit2, degreeOfParallelism, completeOnFailure); } #region Xunit2Settings -/// +/// [ExcludeFromCodeCoverage] [Command(Type = typeof(XunitTasks), Command = nameof(XunitTasks.Xunit2))] public partial class Xunit2Settings : ToolOptions, IToolOptionsWithFramework @@ -86,7 +82,7 @@ public partial class Xunit2Settings : ToolOptions, IToolOptionsWithFramework } #endregion #region Xunit2SettingsExtensions -/// +/// [ExcludeFromCodeCoverage] public static partial class Xunit2SettingsExtensions { diff --git a/src/Fallout.Common/Tools/Xunit/Xunit.json b/src/Fallout.Application.Tools/Xunit/Xunit.json similarity index 100% rename from src/Fallout.Common/Tools/Xunit/Xunit.json rename to src/Fallout.Application.Tools/Xunit/Xunit.json diff --git a/src/Fallout.Common/Tools/Xunit/Xunit2SettingsExtensions.cs b/src/Fallout.Application.Tools/Xunit/Xunit2SettingsExtensions.cs similarity index 93% rename from src/Fallout.Common/Tools/Xunit/Xunit2SettingsExtensions.cs rename to src/Fallout.Application.Tools/Xunit/Xunit2SettingsExtensions.cs index f2adb7fa1..d9d7c7374 100644 --- a/src/Fallout.Common/Tools/Xunit/Xunit2SettingsExtensions.cs +++ b/src/Fallout.Application.Tools/Xunit/Xunit2SettingsExtensions.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Tools.Xunit; +namespace Fallout.Application.Tools.Xunit; partial class Xunit2SettingsExtensions { diff --git a/src/Fallout.Common/Tools/Xunit/XunitTasks.cs b/src/Fallout.Application.Tools/Xunit/XunitTasks.cs similarity index 87% rename from src/Fallout.Common/Tools/Xunit/XunitTasks.cs rename to src/Fallout.Application.Tools/Xunit/XunitTasks.cs index d04c738f9..56b1988a9 100644 --- a/src/Fallout.Common/Tools/Xunit/XunitTasks.cs +++ b/src/Fallout.Application.Tools/Xunit/XunitTasks.cs @@ -1,14 +1,15 @@ using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tools.Xunit; +namespace Fallout.Application.Tools.Xunit; partial class XunitTasks { protected override string GetToolPath(ToolOptions options = null) { - return NuGetToolPathResolver.GetPackageExecutable( + return ToolingServices.ToolPaths.GetPackageExecutable( packageId: PackageId, packageExecutable: EnvironmentInfo.Is64Bit ? "xunit.console.exe" : "xunit.console.x86.exe", framework: (options as IToolOptionsWithFramework)?.Framework); diff --git a/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs b/src/Fallout.Application/Attributes/ArgumentsFromGitCommitMessageAttribute.cs similarity index 83% rename from src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs rename to src/Fallout.Application/Attributes/ArgumentsFromGitCommitMessageAttribute.cs index 4dcd435f0..43a11ccce 100644 --- a/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs +++ b/src/Fallout.Application/Attributes/ArgumentsFromGitCommitMessageAttribute.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.CI; -using Fallout.Common.Git; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Git; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class ArgumentsFromGitCommitMessageAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs b/src/Fallout.Application/Attributes/CheckPathEnvironmentVariableAttribute.cs similarity index 63% rename from src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs rename to src/Fallout.Application/Attributes/CheckPathEnvironmentVariableAttribute.cs index 26b24376b..148f08be4 100644 --- a/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs +++ b/src/Fallout.Application/Attributes/CheckPathEnvironmentVariableAttribute.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class CheckPathEnvironmentVariableAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { @@ -11,6 +12,6 @@ public void OnBuildInitialized( IReadOnlyCollection executableTargets, IReadOnlyCollection executionPlan) { - ProcessTasks.CheckPathEnvironmentVariable(); + ToolingServices.Process.CheckPathEnvironmentVariable(); } } diff --git a/src/Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs b/src/Fallout.Application/Attributes/DisableDefaultOutputAttribute.cs similarity index 93% rename from src/Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs rename to src/Fallout.Application/Attributes/DisableDefaultOutputAttribute.cs index 740984fcc..f231b455b 100644 --- a/src/Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs +++ b/src/Fallout.Application/Attributes/DisableDefaultOutputAttribute.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common; +namespace Fallout.Application; [AttributeUsage(AttributeTargets.Class)] public class DisableDefaultOutputAttribute : Attribute diff --git a/src/Fallout.Common/Attributes/FileSystemGlobbingAttributeBase.cs b/src/Fallout.Application/Attributes/FileSystemGlobbingAttributeBase.cs similarity index 94% rename from src/Fallout.Common/Attributes/FileSystemGlobbingAttributeBase.cs rename to src/Fallout.Application/Attributes/FileSystemGlobbingAttributeBase.cs index dd4fd9de7..6bb294199 100644 --- a/src/Fallout.Common/Attributes/FileSystemGlobbingAttributeBase.cs +++ b/src/Fallout.Application/Attributes/FileSystemGlobbingAttributeBase.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Kernel.IO; -namespace Fallout.Common.IO; +namespace Fallout.Application.IO; // TODO: document [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] diff --git a/src/Fallout.Common/Attributes/GitRepositoryAttribute.cs b/src/Fallout.Application/Attributes/GitRepositoryAttribute.cs similarity index 75% rename from src/Fallout.Common/Attributes/GitRepositoryAttribute.cs rename to src/Fallout.Application/Attributes/GitRepositoryAttribute.cs index 9b6d80a07..ee275ec78 100644 --- a/src/Fallout.Common/Attributes/GitRepositoryAttribute.cs +++ b/src/Fallout.Application/Attributes/GitRepositoryAttribute.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application.Git; -namespace Fallout.Common.Git; +namespace Fallout.Application.Git; /// /// Injects an instance of based on the local repository. diff --git a/src/Fallout.Common/Attributes/GlobbingOptionsAttribute.cs b/src/Fallout.Application/Attributes/GlobbingOptionsAttribute.cs similarity index 87% rename from src/Fallout.Common/Attributes/GlobbingOptionsAttribute.cs rename to src/Fallout.Application/Attributes/GlobbingOptionsAttribute.cs index 5f84f04ff..c1fe7f69a 100644 --- a/src/Fallout.Common/Attributes/GlobbingOptionsAttribute.cs +++ b/src/Fallout.Application/Attributes/GlobbingOptionsAttribute.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; +using Fallout.Application.Execution; +using Fallout.Kernel.IO; -namespace Fallout.Common.IO; +namespace Fallout.Application.IO; /// /// Allows to configure the case-sensitivity used for globbing operations in . diff --git a/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs b/src/Fallout.Application/Attributes/HandleSingleFileExecutionAttribute.cs similarity index 91% rename from src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs rename to src/Fallout.Application/Attributes/HandleSingleFileExecutionAttribute.cs index 3034762ee..54bc278ad 100644 --- a/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs +++ b/src/Fallout.Application/Attributes/HandleSingleFileExecutionAttribute.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -6,12 +6,15 @@ using System.Text.Json.Nodes; using ICSharpCode.SharpZipLib.Zip; using NuGet.Packaging; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Application.IO; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class HandleSingleFileExecutionAttribute : BuildExtensionAttributeBase, IOnBuildCreated { @@ -76,11 +79,11 @@ private void InstallDotNetRuntime() { if (EnvironmentInfo.IsLinux) { - ProcessTasks.StartShell($"chmod +x {ScriptFile.ToString().DoubleQuoteIfNeeded()}", logOutput: false) + ToolingServices.Process.StartShell($"chmod +x {ScriptFile.ToString().DoubleQuoteIfNeeded()}", logOutput: false) .AssertZeroExitCode(); } - ProcessTasks.StartShell( + ToolingServices.Process.StartShell( EnvironmentInfo.IsWin ? $"powershell {ScriptFile.ToString().DoubleQuoteIfNeeded()} -InstallDir {installLocation} -NoPath -Runtime dotnet " + (version != null ? $"-Version {version}" : "-Channel Current") diff --git a/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs b/src/Fallout.Application/Attributes/LatestMavenVersionAttribute.cs similarity index 88% rename from src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs rename to src/Fallout.Application/Attributes/LatestMavenVersionAttribute.cs index aafdd04c2..0f41fbbd8 100644 --- a/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs +++ b/src/Fallout.Application/Attributes/LatestMavenVersionAttribute.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Linq; using System.Reflection; using NuGet.Versioning; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Application.IO; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LatestMavenVersionAttribute : ValueInjectionAttributeBase { diff --git a/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs b/src/Fallout.Application/Attributes/LatestMyGetVersionAttribute.cs similarity index 81% rename from src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs rename to src/Fallout.Application/Attributes/LatestMyGetVersionAttribute.cs index ddbbd899a..8044b2dcc 100644 --- a/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs +++ b/src/Fallout.Application/Attributes/LatestMyGetVersionAttribute.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Application.IO; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LatestMyGetVersionAttribute : ValueInjectionAttributeBase { diff --git a/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs b/src/Fallout.Application/Attributes/LatestNpmVersionAttribute.cs similarity index 68% rename from src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs rename to src/Fallout.Application/Attributes/LatestNpmVersionAttribute.cs index 4a1383cab..ec5545016 100644 --- a/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs +++ b/src/Fallout.Application/Attributes/LatestNpmVersionAttribute.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Linq; using System.Reflection; using NuGet.Versioning; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LatestNpmVersionAttribute : ValueInjectionAttributeBase { @@ -18,7 +18,7 @@ public LatestNpmVersionAttribute(string packageId) public override object GetValue(MemberInfo member, object instance) { - var version = NpmVersionResolver.GetLatestVersion(_packageId).GetAwaiter().GetResult(); + var version = ToolingServices.Versions.GetLatestNpmVersion(_packageId).GetAwaiter().GetResult(); return member.GetMemberType() == typeof(string) ? version : SemanticVersion.Parse(version); diff --git a/src/Fallout.Common/Attributes/LatestNuGetVersionAttribute.cs b/src/Fallout.Application/Attributes/LatestNuGetVersionAttribute.cs similarity index 69% rename from src/Fallout.Common/Attributes/LatestNuGetVersionAttribute.cs rename to src/Fallout.Application/Attributes/LatestNuGetVersionAttribute.cs index fe7ca7919..e2e21bedf 100644 --- a/src/Fallout.Common/Attributes/LatestNuGetVersionAttribute.cs +++ b/src/Fallout.Application/Attributes/LatestNuGetVersionAttribute.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Linq; using System.Reflection; using NuGet.Versioning; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class LatestNuGetVersionAttribute : ValueInjectionAttributeBase { @@ -21,7 +21,7 @@ public LatestNuGetVersionAttribute(string packageId) public override object GetValue(MemberInfo member, object instance) { - var version = NuGetVersionResolver.GetLatestVersion(_packageId, IncludePrerelease, IncludeUnlisted).GetAwaiter().GetResult(); + var version = ToolingServices.Versions.GetLatestNuGetVersion(_packageId, IncludePrerelease, IncludeUnlisted).GetAwaiter().GetResult(); return member.GetMemberType() == typeof(string) ? version : NuGetVersion.Parse(version); diff --git a/src/Fallout.Common/Attributes/LocalPathAttribute.cs b/src/Fallout.Application/Attributes/LocalPathAttribute.cs similarity index 90% rename from src/Fallout.Common/Attributes/LocalPathAttribute.cs rename to src/Fallout.Application/Attributes/LocalPathAttribute.cs index b71e0e74d..59da9e823 100644 --- a/src/Fallout.Common/Attributes/LocalPathAttribute.cs +++ b/src/Fallout.Application/Attributes/LocalPathAttribute.cs @@ -1,10 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; using System.Reflection; -using Fallout.Common.IO; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Injects a delegate for process execution. The path relative to the root directory is passed as constructor argument. diff --git a/src/Fallout.Common/Attributes/NpmPackageAttribute.cs b/src/Fallout.Application/Attributes/NpmPackageAttribute.cs similarity index 90% rename from src/Fallout.Common/Attributes/NpmPackageAttribute.cs rename to src/Fallout.Application/Attributes/NpmPackageAttribute.cs index 4b7644046..4ccb40dde 100644 --- a/src/Fallout.Common/Attributes/NpmPackageAttribute.cs +++ b/src/Fallout.Application/Attributes/NpmPackageAttribute.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; using System.Reflection; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class NpmPackageAttribute : ToolInjectionAttributeBase { diff --git a/src/Fallout.Common/Attributes/NuGetPackageAttribute.cs b/src/Fallout.Application/Attributes/NuGetPackageAttribute.cs similarity index 94% rename from src/Fallout.Common/Attributes/NuGetPackageAttribute.cs rename to src/Fallout.Application/Attributes/NuGetPackageAttribute.cs index 4fd17d51a..19dad9c6a 100644 --- a/src/Fallout.Common/Attributes/NuGetPackageAttribute.cs +++ b/src/Fallout.Application/Attributes/NuGetPackageAttribute.cs @@ -1,8 +1,10 @@ -using System; +using System; using System.Linq; using System.Reflection; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Injects a delegate for process execution. The path to the executable is resolved in the following order: diff --git a/src/Fallout.Common/Attributes/PathVariableAttribute.cs b/src/Fallout.Application/Attributes/PathVariableAttribute.cs similarity index 94% rename from src/Fallout.Common/Attributes/PathVariableAttribute.cs rename to src/Fallout.Application/Attributes/PathVariableAttribute.cs index 92a6adf89..5db2f6707 100644 --- a/src/Fallout.Common/Attributes/PathVariableAttribute.cs +++ b/src/Fallout.Application/Attributes/PathVariableAttribute.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; using System.Reflection; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; /// /// Injects a delegate for process execution. The executable name is derived from the member name or can be diff --git a/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs b/src/Fallout.Application/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs similarity index 88% rename from src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs rename to src/Fallout.Application/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs index 36ea254a7..1f215c4c9 100644 --- a/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs +++ b/src/Fallout.Application/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs @@ -1,9 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Tooling; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; /// /// See dotnet/cli#11424. diff --git a/src/Fallout.Common/Attributes/SolutionAttribute.cs b/src/Fallout.Application/Attributes/SolutionAttribute.cs similarity index 94% rename from src/Fallout.Common/Attributes/SolutionAttribute.cs rename to src/Fallout.Application/Attributes/SolutionAttribute.cs index a2b46d5b4..eb1ed6604 100644 --- a/src/Fallout.Common/Attributes/SolutionAttribute.cs +++ b/src/Fallout.Application/Attributes/SolutionAttribute.cs @@ -1,13 +1,13 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.IO; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -using Fallout.Common; - -namespace Fallout.Solutions; +namespace Fallout.Application.Solutions; /// /// Injects an instance of . The solution path is resolved in the following order: diff --git a/src/Fallout.Build/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs b/src/Fallout.Application/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs similarity index 89% rename from src/Fallout.Build/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs rename to src/Fallout.Application/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs index f8ca1f93f..43309d788 100644 --- a/src/Fallout.Build/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs +++ b/src/Fallout.Application/Attributes/UnsetVisualStudioEnvironmentVariablesAttribute.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class UnsetVisualStudioEnvironmentVariablesAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs b/src/Fallout.Application/Attributes/VerbosityMappingAttribute.cs similarity index 92% rename from src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs rename to src/Fallout.Application/Attributes/VerbosityMappingAttribute.cs index 9afcd3178..b06da5ca5 100644 --- a/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs +++ b/src/Fallout.Application/Attributes/VerbosityMappingAttribute.cs @@ -1,10 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public class VerbosityMappingAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs b/src/Fallout.Application/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs similarity index 61% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs rename to src/Fallout.Application/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs index bc9da2406..8c9685880 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs +++ b/src/Fallout.Application/CI/AzurePipelines/AzurePipelinesCodeCoverageToolType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Application.CI; public enum AzurePipelinesCodeCoverageToolType { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesTestResultsType.cs b/src/Fallout.Application/CI/AzurePipelines/AzurePipelinesTestResultsType.cs similarity index 75% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesTestResultsType.cs rename to src/Fallout.Application/CI/AzurePipelines/AzurePipelinesTestResultsType.cs index 5c206ee22..056fb6ab9 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesTestResultsType.cs +++ b/src/Fallout.Application/CI/AzurePipelines/AzurePipelinesTestResultsType.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Application.CI; public enum AzurePipelinesTestResultsType { diff --git a/src/Fallout.Application/CI/CiHostPorts.cs b/src/Fallout.Application/CI/CiHostPorts.cs new file mode 100644 index 000000000..cc0547ee8 --- /dev/null +++ b/src/Fallout.Application/CI/CiHostPorts.cs @@ -0,0 +1,58 @@ +using System.Collections.Generic; +using Fallout.Application; + +namespace Fallout.Application.CI; + +// Application-ring ports for the CI host providers (ADR-0006). Build components and version/coverage +// attributes need provider-specific capabilities (publish test results, push artifacts, set the build +// number, …) but must not depend on the concrete provider classes, which live in the outer +// Fallout.Infrastructure.CI ring. Each provider (AppVeyor, AzurePipelines, TeamCity, GitHubActions — +// subclasses of Host) implements the matching port; the Application ring reaches the current one through +// CiHost, which casts the already-detected Host.Instance to the port (null when not running on that host). +// No registration needed: Host.Instance is the existing detection seam. + +public interface IAppVeyor +{ + string AccountName { get; } + string ProjectSlug { get; } + int BuildId { get; } + int BuildNumber { get; } + string BuildVersion { get; } + string JobId { get; } + void UpdateBuildVersion(string version); + void PushArtifact(string path, string name = null); +} + +public interface IAzurePipelines +{ + string StageDisplayName { get; } + void UpdateBuildNumber(string buildNumber); + void PublishCodeCoverage(AzurePipelinesCodeCoverageToolType coverageTool, string summaryFile, string reportDirectory, params string[] additionalCodeCoverageFiles); + void PublishTestResults(string title, AzurePipelinesTestResultsType type, IEnumerable files, bool? mergeResults = null, string platform = null, string configuration = null, bool? publishRunAttachments = null); +} + +public interface ITeamCity +{ + IReadOnlyDictionary ConfigurationProperties { get; } + bool IsPullRequest { get; } + void SetBuildNumber(string number); + void SetConfigurationParameter(string name, string value); +} + +public interface IGitHubActions +{ + string Token { get; } +} + +/// +/// Typed access to the current CI host as an Application-ring port (null when not running on that host). +/// Casts the detected to the port — the concrete provider lives in +/// Fallout.Infrastructure.CI and implements it. +/// +public static class CiHost +{ + public static IAppVeyor AppVeyor => Host.Instance as IAppVeyor; + public static IAzurePipelines AzurePipelines => Host.Instance as IAzurePipelines; + public static ITeamCity TeamCity => Host.Instance as ITeamCity; + public static IGitHubActions GitHubActions => Host.Instance as IGitHubActions; +} diff --git a/src/Fallout.Build/CICD/BuildServerConfigurationGeneration.cs b/src/Fallout.Application/CICD/BuildServerConfigurationGeneration.cs similarity index 82% rename from src/Fallout.Build/CICD/BuildServerConfigurationGeneration.cs rename to src/Fallout.Application/CICD/BuildServerConfigurationGeneration.cs index 2c5986940..88a1f47fa 100644 --- a/src/Fallout.Build/CICD/BuildServerConfigurationGeneration.cs +++ b/src/Fallout.Application/CICD/BuildServerConfigurationGeneration.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public static class BuildServerConfigurationGeneration { diff --git a/src/Fallout.Build/CICD/BuildServerConfigurationGenerationAttributeBase.cs b/src/Fallout.Application/CICD/BuildServerConfigurationGenerationAttributeBase.cs similarity index 73% rename from src/Fallout.Build/CICD/BuildServerConfigurationGenerationAttributeBase.cs rename to src/Fallout.Application/CICD/BuildServerConfigurationGenerationAttributeBase.cs index 0a30f7a4b..bd8334039 100644 --- a/src/Fallout.Build/CICD/BuildServerConfigurationGenerationAttributeBase.cs +++ b/src/Fallout.Application/CICD/BuildServerConfigurationGenerationAttributeBase.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.Execution; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public class BuildServerConfigurationGenerationAttributeBase : BuildExtensionAttributeBase { diff --git a/src/Fallout.Build/CICD/CIAttribute.cs b/src/Fallout.Application/CICD/CIAttribute.cs similarity index 82% rename from src/Fallout.Build/CICD/CIAttribute.cs rename to src/Fallout.Application/CICD/CIAttribute.cs index 9778a4b2c..fcc6dc134 100644 --- a/src/Fallout.Build/CICD/CIAttribute.cs +++ b/src/Fallout.Application/CICD/CIAttribute.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Property)] public class CIAttribute : ValueInjectionAttributeBase diff --git a/src/Fallout.Build/CICD/ChainedConfigurationAttributeBase.cs b/src/Fallout.Application/CICD/ChainedConfigurationAttributeBase.cs similarity index 93% rename from src/Fallout.Build/CICD/ChainedConfigurationAttributeBase.cs rename to src/Fallout.Application/CICD/ChainedConfigurationAttributeBase.cs index 16aaa2eec..529f54ed9 100644 --- a/src/Fallout.Build/CICD/ChainedConfigurationAttributeBase.cs +++ b/src/Fallout.Application/CICD/ChainedConfigurationAttributeBase.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Execution; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public abstract class ChainedConfigurationAttributeBase : ConfigurationAttributeBase { diff --git a/src/Fallout.Build/CICD/ConfigurationAttributeBase.cs b/src/Fallout.Application/CICD/ConfigurationAttributeBase.cs similarity index 93% rename from src/Fallout.Build/CICD/ConfigurationAttributeBase.cs rename to src/Fallout.Application/CICD/ConfigurationAttributeBase.cs index aa2304d21..6a90fd241 100644 --- a/src/Fallout.Build/CICD/ConfigurationAttributeBase.cs +++ b/src/Fallout.Application/CICD/ConfigurationAttributeBase.cs @@ -2,12 +2,14 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using static Fallout.Common.CI.BuildServerConfigurationGeneration; +using static Fallout.Application.CI.BuildServerConfigurationGeneration; +using Fallout.Application; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; [AttributeUsage(AttributeTargets.Class)] public abstract class ConfigurationAttributeBase : Attribute, IConfigurationGenerator diff --git a/src/Fallout.Build/CICD/ConfigurationEntity.cs b/src/Fallout.Application/CICD/ConfigurationEntity.cs similarity index 66% rename from src/Fallout.Build/CICD/ConfigurationEntity.cs rename to src/Fallout.Application/CICD/ConfigurationEntity.cs index f04a12d98..de97fc264 100644 --- a/src/Fallout.Build/CICD/ConfigurationEntity.cs +++ b/src/Fallout.Application/CICD/ConfigurationEntity.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public abstract class ConfigurationEntity { diff --git a/src/Fallout.Build/CICD/CustomFileWriter.cs b/src/Fallout.Application/CICD/CustomFileWriter.cs similarity index 94% rename from src/Fallout.Build/CICD/CustomFileWriter.cs rename to src/Fallout.Application/CICD/CustomFileWriter.cs index ba334ab2e..6c04b3d4f 100644 --- a/src/Fallout.Build/CICD/CustomFileWriter.cs +++ b/src/Fallout.Application/CICD/CustomFileWriter.cs @@ -1,8 +1,9 @@ using System; using System.IO; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Utilities; +namespace Fallout.Application.Utilities; public class CustomFileWriter { diff --git a/src/Fallout.Build/CICD/GenerateBuildServerConfigurationsAttribute.cs b/src/Fallout.Application/CICD/GenerateBuildServerConfigurationsAttribute.cs similarity index 78% rename from src/Fallout.Build/CICD/GenerateBuildServerConfigurationsAttribute.cs rename to src/Fallout.Application/CICD/GenerateBuildServerConfigurationsAttribute.cs index bcc716412..f7801e874 100644 --- a/src/Fallout.Build/CICD/GenerateBuildServerConfigurationsAttribute.cs +++ b/src/Fallout.Application/CICD/GenerateBuildServerConfigurationsAttribute.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.CI.BuildServerConfigurationGeneration; +using static Fallout.Application.CI.BuildServerConfigurationGeneration; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public class GenerateBuildServerConfigurationsAttribute : BuildServerConfigurationGenerationAttributeBase, IOnBuildCreated diff --git a/src/Fallout.Build/CICD/IBuildServer.cs b/src/Fallout.Application/CICD/IBuildServer.cs similarity index 72% rename from src/Fallout.Build/CICD/IBuildServer.cs rename to src/Fallout.Application/CICD/IBuildServer.cs index 46cdc1804..f2b4ee24a 100644 --- a/src/Fallout.Build/CICD/IBuildServer.cs +++ b/src/Fallout.Application/CICD/IBuildServer.cs @@ -1,5 +1,5 @@ - -namespace Fallout.Common.CI; + +namespace Fallout.Application.CI; public interface IBuildServer { diff --git a/src/Fallout.Build/CICD/IConfigurationGenerator.cs b/src/Fallout.Application/CICD/IConfigurationGenerator.cs similarity index 81% rename from src/Fallout.Build/CICD/IConfigurationGenerator.cs rename to src/Fallout.Application/CICD/IConfigurationGenerator.cs index f6c424531..16d7b0a63 100644 --- a/src/Fallout.Build/CICD/IConfigurationGenerator.cs +++ b/src/Fallout.Application/CICD/IConfigurationGenerator.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.IO; +using Fallout.Application.Execution; +using Fallout.Kernel.IO; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public interface IConfigurationGenerator { diff --git a/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs b/src/Fallout.Application/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs similarity index 87% rename from src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs rename to src/Fallout.Application/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs index 371214e87..e4e6399ae 100644 --- a/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs +++ b/src/Fallout.Application/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs @@ -1,13 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; using Serilog; -using static Fallout.Common.CI.BuildServerConfigurationGeneration; +using static Fallout.Application.CI.BuildServerConfigurationGeneration; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public class InvokeBuildServerConfigurationGenerationAttribute : BuildServerConfigurationGenerationAttributeBase, IOnBuildCreated @@ -43,7 +44,7 @@ private bool HasConfigurationChanged(IConfigurationGenerator generator) .WhereFileExists() .ToDictionary(x => x, x => x.GetFileHash()); - ProcessTasks.StartProcess( + ToolingServices.Process.StartProcess( Build.BuildAssemblyFile, $"--{ConfigurationParameterName} {generator.Id} --host {generator.HostName}", logInvocation: false, diff --git a/src/Fallout.Build/CICD/NoConvertAttribute.cs b/src/Fallout.Application/CICD/NoConvertAttribute.cs similarity index 70% rename from src/Fallout.Build/CICD/NoConvertAttribute.cs rename to src/Fallout.Application/CICD/NoConvertAttribute.cs index 6b7faf4ae..7711dfdbc 100644 --- a/src/Fallout.Build/CICD/NoConvertAttribute.cs +++ b/src/Fallout.Application/CICD/NoConvertAttribute.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; [AttributeUsage(AttributeTargets.Property)] public class NoConvertAttribute : Attribute diff --git a/src/Fallout.Build/CICD/Partition.cs b/src/Fallout.Application/CICD/Partition.cs similarity index 97% rename from src/Fallout.Build/CICD/Partition.cs rename to src/Fallout.Application/CICD/Partition.cs index 1f66d8df7..9ab944dd6 100644 --- a/src/Fallout.Build/CICD/Partition.cs +++ b/src/Fallout.Application/CICD/Partition.cs @@ -4,7 +4,7 @@ using System.Globalization; using System.Linq; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; [TypeConverter(typeof(TypeConverter))] public class Partition diff --git a/src/Fallout.Build/CICD/PartitionAttribute.cs b/src/Fallout.Application/CICD/PartitionAttribute.cs similarity index 89% rename from src/Fallout.Build/CICD/PartitionAttribute.cs rename to src/Fallout.Application/CICD/PartitionAttribute.cs index 14ed80c19..890249a87 100644 --- a/src/Fallout.Build/CICD/PartitionAttribute.cs +++ b/src/Fallout.Application/CICD/PartitionAttribute.cs @@ -1,8 +1,9 @@ using System; using System.Linq; using System.Reflection; +using Fallout.Application; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; public class PartitionAttribute : ParameterAttribute { diff --git a/src/Fallout.Common/ChangeLog/ChangeLog.cs b/src/Fallout.Application/ChangeLog/ChangeLog.cs similarity index 96% rename from src/Fallout.Common/ChangeLog/ChangeLog.cs rename to src/Fallout.Application/ChangeLog/ChangeLog.cs index 71bd815e9..63b08a59f 100644 --- a/src/Fallout.Common/ChangeLog/ChangeLog.cs +++ b/src/Fallout.Application/ChangeLog/ChangeLog.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Linq; using NuGet.Versioning; -using Fallout.Common.IO; +using Fallout.Kernel.IO; -namespace Fallout.Common.ChangeLog; +namespace Fallout.Application.ChangeLog; public class ChangeLog { diff --git a/src/Fallout.Common/ChangeLog/ReleaseNotes.cs b/src/Fallout.Application/ChangeLog/ReleaseNotes.cs similarity index 97% rename from src/Fallout.Common/ChangeLog/ReleaseNotes.cs rename to src/Fallout.Application/ChangeLog/ReleaseNotes.cs index 6d9cb0f48..0cd1b8b2e 100644 --- a/src/Fallout.Common/ChangeLog/ReleaseNotes.cs +++ b/src/Fallout.Application/ChangeLog/ReleaseNotes.cs @@ -2,8 +2,9 @@ using System.Collections.Generic; using System.Linq; using NuGet.Versioning; +using Fallout.Kernel; -namespace Fallout.Common.ChangeLog; +namespace Fallout.Application.ChangeLog; public class ReleaseNotes { diff --git a/src/Fallout.Build/ControlFlow.cs b/src/Fallout.Application/ControlFlow.cs similarity index 97% rename from src/Fallout.Build/ControlFlow.cs rename to src/Fallout.Application/ControlFlow.cs index ca8f09cc0..15ba3a30a 100644 --- a/src/Fallout.Build/ControlFlow.cs +++ b/src/Fallout.Application/ControlFlow.cs @@ -1,15 +1,15 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Kernel; #pragma warning disable CS0618 // ReSharper disable CompareNonConstrainedGenericWithNull -namespace Fallout.Common; +namespace Fallout.Application; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Build/Execution/BuildExecutor.cs b/src/Fallout.Application/Execution/BuildExecutor.cs similarity index 97% rename from src/Fallout.Build/Execution/BuildExecutor.cs rename to src/Fallout.Application/Execution/BuildExecutor.cs index 5f8869dae..5763296a2 100644 --- a/src/Fallout.Build/Execution/BuildExecutor.cs +++ b/src/Fallout.Application/Execution/BuildExecutor.cs @@ -2,12 +2,15 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; using Serilog; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; /// /// Gradually executes targets of the execution plan. diff --git a/src/Fallout.Build/Execution/BuildManager.cs b/src/Fallout.Application/Execution/BuildManager.cs similarity index 71% rename from src/Fallout.Build/Execution/BuildManager.cs rename to src/Fallout.Application/Execution/BuildManager.cs index 5925fceca..bf1e1188a 100644 --- a/src/Fallout.Build/Execution/BuildManager.cs +++ b/src/Fallout.Application/Execution/BuildManager.cs @@ -1,17 +1,19 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; using System.Text; using Microsoft.Extensions.DependencyModel; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; using Serilog; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; +using Fallout.Kernel; #pragma warning disable CA2255 -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal static class BuildManager { @@ -28,9 +30,19 @@ public static event Action CancellationHandler [ModuleInitializer] public static void Initialize() { + // Force-load every Fallout.* assembly AND run its module initializer. Assembly.Load alone only + // loads metadata — a [ModuleInitializer] runs lazily on first *use* of a type in that assembly. + // That mattered once the onion split moved the port-registration module initializers (e.g. + // Fallout.Infrastructure.Tooling's ToolingServicesRegistration) into assemblies whose types no + // outer code references directly: nothing would trigger them, leaving ToolingServices.* null. + // RunModuleConstructor makes registration deterministic regardless of assembly boundaries. DependencyContext.Default?.GetRuntimeAssemblyNames(string.Empty) .Where(x => x.FullName.StartsWith("Fallout.")) - .ForEach(x => AppDomain.CurrentDomain.Load(x)); + .ForEach(x => + { + var assembly = AppDomain.CurrentDomain.Load(x); + RuntimeHelpers.RunModuleConstructor(assembly.ManifestModule.ModuleHandle); + }); } public static int Execute(Expression>[] defaultTargetExpressions) @@ -50,10 +62,10 @@ public static int Execute(Expression>[] defaultTargetExpressi build.ExecutableTargets = ExecutableTargetFactory.CreateAll(build, defaultTargetExpressions); build.ExecuteExtension(x => x.OnBuildCreated(build.ExecutableTargets)); - NuGetToolPathResolver.EmbeddedPackagesDirectory = build.EmbeddedPackagesDirectory; - NuGetToolPathResolver.NuGetPackagesConfigFile = build.NuGetPackagesConfigFile; - NuGetToolPathResolver.NuGetAssetsConfigFile = build.NuGetAssetsConfigFile; - NpmToolPathResolver.NpmPackageJsonFile = build.NpmPackageJsonFile; + ToolingServices.ToolPaths.EmbeddedPackagesDirectory = build.EmbeddedPackagesDirectory; + ToolingServices.ToolPaths.NuGetPackagesConfigFile = build.NuGetPackagesConfigFile; + ToolingServices.ToolPaths.NuGetAssetsConfigFile = build.NuGetAssetsConfigFile; + ToolingServices.ToolPaths.NpmPackageJsonFile = build.NpmPackageJsonFile; if (!build.NoLogo) build.WriteLogo(); diff --git a/src/Fallout.Build/Execution/DelegateRequirementService.cs b/src/Fallout.Application/Execution/DelegateRequirementService.cs similarity index 95% rename from src/Fallout.Build/Execution/DelegateRequirementService.cs rename to src/Fallout.Application/Execution/DelegateRequirementService.cs index 88caf5db1..abb9d5aa0 100644 --- a/src/Fallout.Build/Execution/DelegateRequirementService.cs +++ b/src/Fallout.Application/Execution/DelegateRequirementService.cs @@ -1,12 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; /// /// Validates all requirements for targets that are part of the execution plan. diff --git a/src/Fallout.Build/Execution/ExecutableTarget.cs b/src/Fallout.Application/Execution/ExecutableTarget.cs similarity index 93% rename from src/Fallout.Build/Execution/ExecutableTarget.cs rename to src/Fallout.Application/Execution/ExecutableTarget.cs index c4a9501c2..f9153ed7d 100644 --- a/src/Fallout.Build/Execution/ExecutableTarget.cs +++ b/src/Fallout.Application/Execution/ExecutableTarget.cs @@ -4,11 +4,13 @@ using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; // ReSharper disable MissingBaseTypeHighlighting -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; [DebuggerDisplay($"{{{nameof(Name)}}} ({{{nameof(Status)}}})")] public class ExecutableTarget : ITargetModel @@ -62,7 +64,7 @@ public string OnlyWhen set => SummaryInformation.AddPairWhenValueNotNull(nameof(OnlyWhen), value); } - // ITargetModel — read-only projection over the live dependency lists for Fallout.Core consumers. + // ITargetModel — read-only projection over the live dependency lists for Fallout.Domain consumers. IReadOnlyCollection ITargetModel.ExecutionDependencyNames => ExecutionDependencies.Select(x => x.Name).ToList(); IReadOnlyCollection ITargetModel.OrderDependencyNames => OrderDependencies.Select(x => x.Name).ToList(); IReadOnlyCollection ITargetModel.TriggerNames => Triggers.Select(x => x.Name).ToList(); diff --git a/src/Fallout.Build/Execution/ExecutableTargetFactory.cs b/src/Fallout.Application/Execution/ExecutableTargetFactory.cs similarity index 97% rename from src/Fallout.Build/Execution/ExecutableTargetFactory.cs rename to src/Fallout.Application/Execution/ExecutableTargetFactory.cs index 137146b8f..5f9bf5c00 100644 --- a/src/Fallout.Build/Execution/ExecutableTargetFactory.cs +++ b/src/Fallout.Application/Execution/ExecutableTargetFactory.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; /// /// Creates all target objects according to the build instance. diff --git a/src/Fallout.Build/Execution/ExecutionPlanner.cs b/src/Fallout.Application/Execution/ExecutionPlanner.cs similarity index 94% rename from src/Fallout.Build/Execution/ExecutionPlanner.cs rename to src/Fallout.Application/Execution/ExecutionPlanner.cs index 67d3f6cd9..9f5f9d190 100644 --- a/src/Fallout.Build/Execution/ExecutionPlanner.cs +++ b/src/Fallout.Application/Execution/ExecutionPlanner.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using Fallout.Core.Planning; +using Fallout.Domain.Execution; +using Fallout.Domain.Planning; +using Fallout.Application; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; /// /// Given the invoked target names, creates an execution plan under consideration of execution, ordering and trigger dependencies. @@ -39,7 +41,7 @@ private static IReadOnlyCollection GetExecutionPlanInternal( IReadOnlyCollection executableTargets, ICollection invokedTargets) { - // Pure graph work — cycle detection and topological ordering — lives in Fallout.Core. + // Pure graph work — cycle detection and topological ordering — lives in Fallout.Domain. // Everything below is orchestration: deciding to fail the build, and applying the domain // scheduling rules (invoked / default / execution-dependency) over the ordered nodes. var strict = ParameterService.GetNamedArgument("strict"); diff --git a/src/Fallout.Build/Execution/ExecutionStatus.cs b/src/Fallout.Application/Execution/ExecutionStatus.cs similarity index 67% rename from src/Fallout.Build/Execution/ExecutionStatus.cs rename to src/Fallout.Application/Execution/ExecutionStatus.cs index f98f50e1d..cecef623f 100644 --- a/src/Fallout.Build/Execution/ExecutionStatus.cs +++ b/src/Fallout.Application/Execution/ExecutionStatus.cs @@ -1,6 +1,6 @@ using System.Runtime.CompilerServices; // Moved to Fallout.Core in v11 (issue #88). Forwarded so existing consumers that reference -// Fallout.Build keep resolving Fallout.Common.Execution.ExecutionStatus without a recompile. +// Fallout.Build keep resolving Fallout.Domain.Execution.ExecutionStatus without a recompile. // The forwarder can be dropped in 12.0 once the plugin SDK is the canonical reference. -[assembly: TypeForwardedTo(typeof(Fallout.Common.Execution.ExecutionStatus))] +[assembly: TypeForwardedTo(typeof(Fallout.Domain.Execution.ExecutionStatus))] diff --git a/src/Fallout.Build/Execution/Extensibility/BuildExtensionAttributeBase.cs b/src/Fallout.Application/Execution/Extensibility/BuildExtensionAttributeBase.cs similarity index 95% rename from src/Fallout.Build/Execution/Extensibility/BuildExtensionAttributeBase.cs rename to src/Fallout.Application/Execution/Extensibility/BuildExtensionAttributeBase.cs index ad53bb3e4..ad7525ce0 100644 --- a/src/Fallout.Build/Execution/Extensibility/BuildExtensionAttributeBase.cs +++ b/src/Fallout.Application/Execution/Extensibility/BuildExtensionAttributeBase.cs @@ -1,8 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using Fallout.Application; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public interface IBuildExtension { diff --git a/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs b/src/Fallout.Application/Execution/Extensibility/ToolInjectionAttributeBase.cs similarity index 72% rename from src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs rename to src/Fallout.Application/Execution/Extensibility/ToolInjectionAttributeBase.cs index 01fd5cf3c..ef9d64923 100644 --- a/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs +++ b/src/Fallout.Application/Execution/Extensibility/ToolInjectionAttributeBase.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; -namespace Fallout.Common.Tooling; +namespace Fallout.Application.Tooling; public abstract class ToolInjectionAttributeBase : ValueInjectionAttributeBase { diff --git a/src/Fallout.Build/Execution/Extensibility/ValueInjectionAttributeBase.cs b/src/Fallout.Application/Execution/Extensibility/ValueInjectionAttributeBase.cs similarity index 94% rename from src/Fallout.Build/Execution/Extensibility/ValueInjectionAttributeBase.cs rename to src/Fallout.Application/Execution/Extensibility/ValueInjectionAttributeBase.cs index 70105b78b..e243c7bdb 100644 --- a/src/Fallout.Build/Execution/Extensibility/ValueInjectionAttributeBase.cs +++ b/src/Fallout.Application/Execution/Extensibility/ValueInjectionAttributeBase.cs @@ -1,10 +1,11 @@ using System; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.ValueInjection; +namespace Fallout.Application.ValueInjection; [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public abstract class ValueInjectionAttributeBase : Attribute diff --git a/src/Fallout.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs b/src/Fallout.Application/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs similarity index 93% rename from src/Fallout.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs rename to src/Fallout.Application/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs index cb344c29c..efd071322 100644 --- a/src/Fallout.Build/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/ArgumentsFromParametersFileAttribute.cs @@ -1,16 +1,19 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json; using System.Text.Json.Nodes; -using Fallout.Common.CI; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using Fallout.Common.ValueInjection; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Application.Utilities; +using Fallout.Application.CI; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class ArgumentsFromParametersFileAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Execution/Extensions/EventInvoker.cs b/src/Fallout.Application/Execution/Extensions/EventInvoker.cs similarity index 93% rename from src/Fallout.Build/Execution/Extensions/EventInvoker.cs rename to src/Fallout.Application/Execution/Extensions/EventInvoker.cs index d435e3d15..1047b34ed 100644 --- a/src/Fallout.Build/Execution/Extensions/EventInvoker.cs +++ b/src/Fallout.Application/Execution/Extensions/EventInvoker.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; +using Fallout.Application; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class EventInvoker : BuildExtensionAttributeBase, IOnBuildCreated, diff --git a/src/Fallout.Build/Execution/Extensions/HandleHelpRequestsAttribute.cs b/src/Fallout.Application/Execution/Extensions/HandleHelpRequestsAttribute.cs similarity index 96% rename from src/Fallout.Build/Execution/Extensions/HandleHelpRequestsAttribute.cs rename to src/Fallout.Application/Execution/Extensions/HandleHelpRequestsAttribute.cs index d7a6c50db..92de9dcf2 100644 --- a/src/Fallout.Build/Execution/Extensions/HandleHelpRequestsAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/HandleHelpRequestsAttribute.cs @@ -3,10 +3,11 @@ using System.Linq; using System.Reflection; using System.Text; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class HandleHelpRequestsAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { diff --git a/src/Fallout.Build/Execution/Extensions/HandlePlanRequestsAttribute.cs b/src/Fallout.Application/Execution/Extensions/HandlePlanRequestsAttribute.cs similarity index 95% rename from src/Fallout.Build/Execution/Extensions/HandlePlanRequestsAttribute.cs rename to src/Fallout.Application/Execution/Extensions/HandlePlanRequestsAttribute.cs index 98d9dfc0d..ec70ea370 100644 --- a/src/Fallout.Build/Execution/Extensions/HandlePlanRequestsAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/HandlePlanRequestsAttribute.cs @@ -1,14 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Execution; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Build.Execution.Extensions; +namespace Fallout.Application.Execution.Extensions; internal class HandlePlanRequestsAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { diff --git a/src/Fallout.Build/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs b/src/Fallout.Application/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs similarity index 89% rename from src/Fallout.Build/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs rename to src/Fallout.Application/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs index 4942df6bd..81a508afa 100644 --- a/src/Fallout.Build/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/HandleReSharperSurrogateArgumentsAttribute.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.IO; using Serilog; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class HandleReSharperSurrogateArgumentsAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Execution/Extensions/HandleShellCompletionAttribute.cs b/src/Fallout.Application/Execution/Extensions/HandleShellCompletionAttribute.cs similarity index 89% rename from src/Fallout.Build/Execution/Extensions/HandleShellCompletionAttribute.cs rename to src/Fallout.Application/Execution/Extensions/HandleShellCompletionAttribute.cs index bd3d13aed..fe82efcc7 100644 --- a/src/Fallout.Build/Execution/Extensions/HandleShellCompletionAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/HandleShellCompletionAttribute.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.CI; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using static Fallout.Common.Constants; +using Fallout.Kernel; +using static Fallout.Build.Shared.Constants; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class HandleShellCompletionAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs b/src/Fallout.Application/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs similarity index 86% rename from src/Fallout.Build/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs rename to src/Fallout.Application/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs index 492aeeca9..44f1582ae 100644 --- a/src/Fallout.Build/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/HandleVisualStudioDebuggingAttribute.cs @@ -3,9 +3,12 @@ using System.Diagnostics; using System.Linq; using System.Threading; -using Fallout.Common.IO; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class HandleVisualStudioDebuggingAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Execution/Extensions/InjectNonParameterValuesAttribute.cs b/src/Fallout.Application/Execution/Extensions/InjectNonParameterValuesAttribute.cs similarity index 88% rename from src/Fallout.Build/Execution/Extensions/InjectNonParameterValuesAttribute.cs rename to src/Fallout.Application/Execution/Extensions/InjectNonParameterValuesAttribute.cs index 5f738ada6..8ef714a07 100644 --- a/src/Fallout.Build/Execution/Extensions/InjectNonParameterValuesAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/InjectNonParameterValuesAttribute.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using Fallout.Common.Execution; -using Fallout.Common.Utilities; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.ValueInjection; +namespace Fallout.Application.ValueInjection; internal class InjectNonParameterValuesAttribute : BuildExtensionAttributeBase, IOnBuildInitialized { diff --git a/src/Fallout.Build/Execution/Extensions/InjectParameterValuesAttribute.cs b/src/Fallout.Application/Execution/Extensions/InjectParameterValuesAttribute.cs similarity index 75% rename from src/Fallout.Build/Execution/Extensions/InjectParameterValuesAttribute.cs rename to src/Fallout.Application/Execution/Extensions/InjectParameterValuesAttribute.cs index 449c23b01..b109b4f7f 100644 --- a/src/Fallout.Build/Execution/Extensions/InjectParameterValuesAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/InjectParameterValuesAttribute.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; +using Fallout.Application.Execution; +using Fallout.Application; -namespace Fallout.Common.ValueInjection; +namespace Fallout.Application.ValueInjection; internal class InjectParameterValuesAttribute : BuildExtensionAttributeBase, IOnBuildCreated { diff --git a/src/Fallout.Build/Execution/Extensions/SerializeBuildServerStateAttribute.cs b/src/Fallout.Application/Execution/Extensions/SerializeBuildServerStateAttribute.cs similarity index 80% rename from src/Fallout.Build/Execution/Extensions/SerializeBuildServerStateAttribute.cs rename to src/Fallout.Application/Execution/Extensions/SerializeBuildServerStateAttribute.cs index 80eaeebd6..c1e539902 100644 --- a/src/Fallout.Build/Execution/Extensions/SerializeBuildServerStateAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/SerializeBuildServerStateAttribute.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common.CI; +namespace Fallout.Application.CI; internal class SerializeBuildServerStateAttribute : BuildServerConfigurationGenerationAttributeBase, IOnBuildFinished { diff --git a/src/Fallout.Build/Execution/Extensions/TelemetryAttribute.cs b/src/Fallout.Application/Execution/Extensions/TelemetryAttribute.cs similarity index 91% rename from src/Fallout.Build/Execution/Extensions/TelemetryAttribute.cs rename to src/Fallout.Application/Execution/Extensions/TelemetryAttribute.cs index 715e79bfe..7f95d8464 100644 --- a/src/Fallout.Build/Execution/Extensions/TelemetryAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/TelemetryAttribute.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class TelemetryAttribute : BuildExtensionAttributeBase, IOnBuildInitialized, IOnTargetSucceeded { diff --git a/src/Fallout.Build/Execution/Extensions/UpdateNotificationAttribute.cs b/src/Fallout.Application/Execution/Extensions/UpdateNotificationAttribute.cs similarity index 87% rename from src/Fallout.Build/Execution/Extensions/UpdateNotificationAttribute.cs rename to src/Fallout.Application/Execution/Extensions/UpdateNotificationAttribute.cs index 5841ffc29..c20675802 100644 --- a/src/Fallout.Build/Execution/Extensions/UpdateNotificationAttribute.cs +++ b/src/Fallout.Application/Execution/Extensions/UpdateNotificationAttribute.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.Utilities; -using static Fallout.Common.Constants; +using static Fallout.Build.Shared.Constants; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class UpdateNotificationAttribute : BuildExtensionAttributeBase, IOnBuildCreated, IOnBuildFinished { diff --git a/src/Fallout.Build/Execution/Extensions/execution-plan.html b/src/Fallout.Application/Execution/Extensions/execution-plan.html similarity index 100% rename from src/Fallout.Build/Execution/Extensions/execution-plan.html rename to src/Fallout.Application/Execution/Extensions/execution-plan.html diff --git a/src/Fallout.Build/Execution/ParameterService.Statics.cs b/src/Fallout.Application/Execution/ParameterService.Statics.cs similarity index 97% rename from src/Fallout.Build/Execution/ParameterService.Statics.cs rename to src/Fallout.Application/Execution/ParameterService.Statics.cs index e8e026b13..328fd338a 100644 --- a/src/Fallout.Build/Execution/ParameterService.Statics.cs +++ b/src/Fallout.Application/Execution/ParameterService.Statics.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; internal partial class ParameterService { diff --git a/src/Fallout.Build/Execution/ParameterService.cs b/src/Fallout.Application/Execution/ParameterService.cs similarity index 98% rename from src/Fallout.Build/Execution/ParameterService.cs rename to src/Fallout.Application/Execution/ParameterService.cs index 0197449df..77451a999 100644 --- a/src/Fallout.Build/Execution/ParameterService.cs +++ b/src/Fallout.Application/Execution/ParameterService.cs @@ -3,12 +3,13 @@ using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; using Serilog; -using static Fallout.Common.Utilities.ReflectionUtility; +using static Fallout.Kernel.ReflectionUtility; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common; +namespace Fallout.Application; internal partial class ParameterService { diff --git a/src/Fallout.Build/Execution/TargetDefinition.cs b/src/Fallout.Application/Execution/TargetDefinition.cs similarity index 98% rename from src/Fallout.Build/Execution/TargetDefinition.cs rename to src/Fallout.Application/Execution/TargetDefinition.cs index 64b235b4c..cb370e2d6 100644 --- a/src/Fallout.Build/Execution/TargetDefinition.cs +++ b/src/Fallout.Application/Execution/TargetDefinition.cs @@ -1,14 +1,15 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Threading.Tasks; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal class TargetDefinition : ITargetDefinition { diff --git a/src/Fallout.Build/Execution/TargetExecutionException.cs b/src/Fallout.Application/Execution/TargetExecutionException.cs similarity index 91% rename from src/Fallout.Build/Execution/TargetExecutionException.cs rename to src/Fallout.Application/Execution/TargetExecutionException.cs index d2e36c91f..b721cb3c4 100644 --- a/src/Fallout.Build/Execution/TargetExecutionException.cs +++ b/src/Fallout.Application/Execution/TargetExecutionException.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Runtime.Serialization; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; [Serializable] internal class TargetExecutionException : Exception diff --git a/src/Fallout.Build/Execution/ToolRequirementService.cs b/src/Fallout.Application/Execution/ToolRequirementService.cs similarity index 88% rename from src/Fallout.Build/Execution/ToolRequirementService.cs rename to src/Fallout.Application/Execution/ToolRequirementService.cs index 229947250..08627f12e 100644 --- a/src/Fallout.Build/Execution/ToolRequirementService.cs +++ b/src/Fallout.Application/Execution/ToolRequirementService.cs @@ -1,13 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal static class ToolRequirementService { @@ -27,8 +28,8 @@ private static void InstallNuGetPackages(IReadOnlyCollection x.PackageId).ThenBy(x => x.Version).ToList(); var groupedPackages = packages.GroupBy(x => x.PackageId, x => $"[{x.Version}]"); @@ -66,7 +67,7 @@ private static void InstallNpmPackages(IReadOnlyCollection x.PackageId).ToList(); @@ -112,6 +113,6 @@ private static void InstallAptGetPackages(IReadOnlyCollection Log.Verbose("Installing {Id}...", x.PackageId)); installScript.WriteAllText(content); - ProcessTasks.StartShell($"sudo {installScript}", logInvocation: false, logOutput: false).AssertZeroExitCode(); + ToolingServices.Process.StartShell($"sudo {installScript}", logInvocation: false, logOutput: false).AssertZeroExitCode(); } } diff --git a/src/Fallout.Build/Execution/ValueInjectionUtility.cs b/src/Fallout.Application/Execution/ValueInjectionUtility.cs similarity index 96% rename from src/Fallout.Build/Execution/ValueInjectionUtility.cs rename to src/Fallout.Application/Execution/ValueInjectionUtility.cs index 8d637a3e9..e841e80d0 100644 --- a/src/Fallout.Build/Execution/ValueInjectionUtility.cs +++ b/src/Fallout.Application/Execution/ValueInjectionUtility.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.ValueInjection; +namespace Fallout.Application.ValueInjection; internal static class ValueInjectionUtility { diff --git a/src/Fallout.Application/Fallout.Application.csproj b/src/Fallout.Application/Fallout.Application.csproj new file mode 100644 index 000000000..aee4f0fb6 --- /dev/null +++ b/src/Fallout.Application/Fallout.Application.csproj @@ -0,0 +1,44 @@ + + + + net10.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Fallout.Build/FalloutBuild.Events.cs b/src/Fallout.Application/FalloutBuild.Events.cs similarity index 94% rename from src/Fallout.Build/FalloutBuild.Events.cs rename to src/Fallout.Application/FalloutBuild.Events.cs index 2b44e2a19..6e18c3018 100644 --- a/src/Fallout.Build/FalloutBuild.Events.cs +++ b/src/Fallout.Application/FalloutBuild.Events.cs @@ -1,14 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Execution; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; +using Fallout.Application.Execution; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; [EventInvoker(Priority = float.MinValue)] public abstract partial class FalloutBuild diff --git a/src/Fallout.Build/FalloutBuild.Interface.cs b/src/Fallout.Application/FalloutBuild.Interface.cs similarity index 92% rename from src/Fallout.Build/FalloutBuild.Interface.cs rename to src/Fallout.Application/FalloutBuild.Interface.cs index 815f1c712..8433f2a95 100644 --- a/src/Fallout.Build/FalloutBuild.Interface.cs +++ b/src/Fallout.Application/FalloutBuild.Interface.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq.Expressions; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.ValueInjection; +using Fallout.Application.Execution; +using Fallout.Application.ValueInjection; +using Fallout.Kernel.IO; -namespace Fallout.Common; +namespace Fallout.Application; public abstract partial class FalloutBuild { diff --git a/src/Fallout.Build/FalloutBuild.Output.cs b/src/Fallout.Application/FalloutBuild.Output.cs similarity index 96% rename from src/Fallout.Build/FalloutBuild.Output.cs rename to src/Fallout.Application/FalloutBuild.Output.cs index b8eab31fa..bd767a41b 100644 --- a/src/Fallout.Build/FalloutBuild.Output.cs +++ b/src/Fallout.Application/FalloutBuild.Output.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; partial class FalloutBuild { diff --git a/src/Fallout.Build/FalloutBuild.Statics.cs b/src/Fallout.Application/FalloutBuild.Statics.cs similarity index 94% rename from src/Fallout.Build/FalloutBuild.Statics.cs rename to src/Fallout.Application/FalloutBuild.Statics.cs index 2f1dfc285..fe2e1dc9a 100644 --- a/src/Fallout.Build/FalloutBuild.Statics.cs +++ b/src/Fallout.Application/FalloutBuild.Statics.cs @@ -1,15 +1,16 @@ -using System; +using System; using System.IO; using System.Linq; using System.Reflection; -using Fallout.Common.CI; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Constants; - -namespace Fallout.Common; +using static Fallout.Build.Shared.Constants; +using Fallout.Application.Execution; +using Fallout.Application.CI; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; + +namespace Fallout.Application; public abstract partial class FalloutBuild { diff --git a/src/Fallout.Build/FalloutBuild.cs b/src/Fallout.Application/FalloutBuild.cs similarity index 94% rename from src/Fallout.Build/FalloutBuild.cs rename to src/Fallout.Application/FalloutBuild.cs index af8573875..cdd0f623d 100644 --- a/src/Fallout.Build/FalloutBuild.cs +++ b/src/Fallout.Application/FalloutBuild.cs @@ -1,20 +1,22 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Build.Execution.Extensions; -using Fallout.Common.CI; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; -using static Fallout.Common.Constants; +using Fallout.Domain.Execution; +using static Fallout.Build.Shared.Constants; +using Fallout.Application.Execution; +using Fallout.Application.ValueInjection; +using Fallout.Application.CI; +using Fallout.Application.Execution.Extensions; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; // ReSharper disable VirtualMemberNeverOverridden.Global -namespace Fallout.Common; +namespace Fallout.Application; /// /// Base class for build definitions. Derived types must declare static int Main which calls @@ -151,7 +153,7 @@ protected static int Execute(params Expression>[] defaultTarg protected internal virtual string NuGetPackagesConfigFile => BuildProjectDirectory != null - ? NuGetPackageResolver.GetPackagesConfigFile(BuildProjectDirectory) + ? ToolingServices.ToolPaths.GetPackagesConfigFile(BuildProjectDirectory) : null; protected internal virtual string NuGetAssetsConfigFile => diff --git a/src/Fallout.Build/Host.Activation.cs b/src/Fallout.Application/Host.Activation.cs similarity index 95% rename from src/Fallout.Build/Host.Activation.cs rename to src/Fallout.Application/Host.Activation.cs index 8d611ed92..e8be38040 100644 --- a/src/Fallout.Build/Host.Activation.cs +++ b/src/Fallout.Application/Host.Activation.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Utilities; +using Fallout.Application.Execution; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; public partial class Host { diff --git a/src/Fallout.Build/Host.Theming.cs b/src/Fallout.Application/Host.Theming.cs similarity index 91% rename from src/Fallout.Build/Host.Theming.cs rename to src/Fallout.Application/Host.Theming.cs index 5ce359718..8f7f989fe 100644 --- a/src/Fallout.Build/Host.Theming.cs +++ b/src/Fallout.Application/Host.Theming.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common; +namespace Fallout.Application; public partial class Host { diff --git a/src/Fallout.Build/Host.cs b/src/Fallout.Application/Host.cs similarity index 97% rename from src/Fallout.Build/Host.cs rename to src/Fallout.Application/Host.cs index b5e147813..544eefd92 100644 --- a/src/Fallout.Build/Host.cs +++ b/src/Fallout.Application/Host.cs @@ -1,17 +1,18 @@ -using System; +using System; using System.ComponentModel; using System.Globalization; using System.Linq; -using Fallout.Common.Execution; -using Fallout.Common.Execution.Theming; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; using Serilog; using Serilog.Core; using Serilog.Events; using Serilog.Sinks.SystemConsole.Themes; +using Fallout.Application.Execution.Theming; +using Fallout.Application.Execution; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; [TypeConverter(typeof(TypeConverter))] public partial class Host diff --git a/src/Fallout.Build/IFalloutBuild.cs b/src/Fallout.Application/IFalloutBuild.cs similarity index 92% rename from src/Fallout.Build/IFalloutBuild.cs rename to src/Fallout.Application/IFalloutBuild.cs index 7a0a4fb6a..51d0e82fa 100644 --- a/src/Fallout.Build/IFalloutBuild.cs +++ b/src/Fallout.Application/IFalloutBuild.cs @@ -2,12 +2,12 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using Fallout.Common.CI; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; +using Fallout.Application.Execution; +using Fallout.Application.CI; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; -namespace Fallout.Common; +namespace Fallout.Application; public interface IFalloutBuild { diff --git a/src/Fallout.Common/IO/FtpTasks.cs b/src/Fallout.Application/IO/FtpTasks.cs similarity index 96% rename from src/Fallout.Common/IO/FtpTasks.cs rename to src/Fallout.Application/IO/FtpTasks.cs index ad1bd6840..e9fe78909 100644 --- a/src/Fallout.Common/IO/FtpTasks.cs +++ b/src/Fallout.Application/IO/FtpTasks.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.IO; using System.Linq; using System.Net; using Serilog; +using Fallout.Application; +using Fallout.Kernel.IO; #pragma warning disable SYSLIB0014 -namespace Fallout.Common.IO; +namespace Fallout.Application.IO; public static class FtpTasks { diff --git a/src/Fallout.Common/IO/HttpTasks.cs b/src/Fallout.Application/IO/HttpTasks.cs similarity index 94% rename from src/Fallout.Common/IO/HttpTasks.cs rename to src/Fallout.Application/IO/HttpTasks.cs index 009204f01..92ca3abaa 100644 --- a/src/Fallout.Common/IO/HttpTasks.cs +++ b/src/Fallout.Application/IO/HttpTasks.cs @@ -1,12 +1,14 @@ -using System; +using System; using System.IO; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; -using Fallout.Common.Tooling; +using Fallout.Kernel; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; -namespace Fallout.Common.IO; +namespace Fallout.Application.IO; public static class HttpTasks { diff --git a/src/Fallout.Build/ITargetDefinition.cs b/src/Fallout.Application/ITargetDefinition.cs similarity index 99% rename from src/Fallout.Build/ITargetDefinition.cs rename to src/Fallout.Application/ITargetDefinition.cs index 6e7af941a..ef517e820 100644 --- a/src/Fallout.Build/ITargetDefinition.cs +++ b/src/Fallout.Application/ITargetDefinition.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; using System.Threading.Tasks; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common; +namespace Fallout.Application; /// /// Public API for defining targets. diff --git a/src/Fallout.Build/LogLevel.cs b/src/Fallout.Application/LogLevel.cs similarity index 67% rename from src/Fallout.Build/LogLevel.cs rename to src/Fallout.Application/LogLevel.cs index 8a6982e8a..3e9ef55c4 100644 --- a/src/Fallout.Build/LogLevel.cs +++ b/src/Fallout.Application/LogLevel.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common; +namespace Fallout.Application; public enum LogLevel { diff --git a/src/Fallout.Build/Logging.cs b/src/Fallout.Application/Logging.cs similarity index 97% rename from src/Fallout.Build/Logging.cs rename to src/Fallout.Application/Logging.cs index 9d99f5052..81425ca03 100644 --- a/src/Fallout.Build/Logging.cs +++ b/src/Fallout.Application/Logging.cs @@ -1,19 +1,21 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.CI; -using Fallout.Common.Execution.Theming; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; using Serilog.Core; using Serilog.Events; using Serilog.Formatting.Compact; using Serilog.Sinks.SystemConsole.Themes; - -namespace Fallout.Common.Execution; +using Fallout.Application.Execution.Theming; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Application.Execution; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; + +namespace Fallout.Application.Execution; public static class Logging { diff --git a/src/Fallout.Build/ParameterAttribute.cs b/src/Fallout.Application/ParameterAttribute.cs similarity index 96% rename from src/Fallout.Build/ParameterAttribute.cs rename to src/Fallout.Application/ParameterAttribute.cs index 8767af603..e318d52fd 100644 --- a/src/Fallout.Build/ParameterAttribute.cs +++ b/src/Fallout.Application/ParameterAttribute.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; +using Fallout.Application.ValueInjection; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; /// /// Injected parameters are resolved case-insensitively in the following order: diff --git a/src/Fallout.Build/RequiresAttribute.cs b/src/Fallout.Application/RequiresAttribute.cs similarity index 84% rename from src/Fallout.Build/RequiresAttribute.cs rename to src/Fallout.Application/RequiresAttribute.cs index ffde922ed..a3a85f2fb 100644 --- a/src/Fallout.Build/RequiresAttribute.cs +++ b/src/Fallout.Application/RequiresAttribute.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; using System.Reflection; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Application; public abstract class RequiresAttribute : Attribute { diff --git a/src/Fallout.Build/Target.cs b/src/Fallout.Application/Target.cs similarity index 94% rename from src/Fallout.Build/Target.cs rename to src/Fallout.Application/Target.cs index 38dd3c3e8..59ca43f98 100644 --- a/src/Fallout.Build/Target.cs +++ b/src/Fallout.Application/Target.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common; +namespace Fallout.Application; /// /// Defines a target. diff --git a/src/Fallout.Build/Telemetry/Telemetry.Events.cs b/src/Fallout.Application/Telemetry/Telemetry.Events.cs similarity index 86% rename from src/Fallout.Build/Telemetry/Telemetry.Events.cs rename to src/Fallout.Application/Telemetry/Telemetry.Events.cs index abe85de67..c32a30991 100644 --- a/src/Fallout.Build/Telemetry/Telemetry.Events.cs +++ b/src/Fallout.Application/Telemetry/Telemetry.Events.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; using Serilog; +using Fallout.Application; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal partial class Telemetry { @@ -54,15 +56,6 @@ public static void SetupBuild() .AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory))); } - public static void ConvertCake() - { - TrackEvent( - eventName: nameof(ConvertCake), - propertiesProvider: () => - GetCommonProperties() - .AddDictionary(GetRepositoryProperties(EnvironmentInfo.WorkingDirectory))); - } - public static void AddPackage() { TrackEvent( diff --git a/src/Fallout.Build/Telemetry/Telemetry.Properties.cs b/src/Fallout.Application/Telemetry/Telemetry.Properties.cs similarity index 95% rename from src/Fallout.Build/Telemetry/Telemetry.Properties.cs rename to src/Fallout.Application/Telemetry/Telemetry.Properties.cs index 11c2cf702..07160f304 100644 --- a/src/Fallout.Build/Telemetry/Telemetry.Properties.cs +++ b/src/Fallout.Application/Telemetry/Telemetry.Properties.cs @@ -1,17 +1,19 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; -using Fallout.Common.CI; -using Fallout.Common.Git; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using Fallout.Common.ValueInjection; - -namespace Fallout.Common.Execution; +using Fallout.Application; +using Fallout.Application.Git; +using Fallout.Application.ValueInjection; +using Fallout.Application.CI; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; + +namespace Fallout.Application.Execution; internal partial class Telemetry { diff --git a/src/Fallout.Build/Telemetry/Telemetry.cs b/src/Fallout.Application/Telemetry/Telemetry.cs similarity index 86% rename from src/Fallout.Build/Telemetry/Telemetry.cs rename to src/Fallout.Application/Telemetry/Telemetry.cs index 0f7878410..4917484f6 100644 --- a/src/Fallout.Build/Telemetry/Telemetry.cs +++ b/src/Fallout.Application/Telemetry/Telemetry.cs @@ -1,13 +1,15 @@ -using System; +using System; using System.Linq; using System.Reflection; using System.Threading; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Utilities; -using static Fallout.Common.ControlFlow; +using static Fallout.Application.ControlFlow; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Application.Solutions; +using Fallout.Build.Shared; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; internal static partial class Telemetry { @@ -61,10 +63,9 @@ AbsolutePath GetCookieFile(string name, int version) return CurrentVersion; } - var project = ProjectModelTasks.ParseProject(FalloutBuild.BuildProjectFile); - var property = project.Properties.SingleOrDefault(x => x.Name.EqualsOrdinalIgnoreCase(VersionPropertyName)) - ?? project.Properties.SingleOrDefault(x => x.Name.EqualsOrdinalIgnoreCase(LegacyVersionPropertyName)); - if (property?.EvaluatedValue != CurrentVersion.ToString()) + var versionProperty = SolutionServices.Projects.GetProperty( + FalloutBuild.BuildProjectFile, VersionPropertyName, LegacyVersionPropertyName); + if (versionProperty != CurrentVersion.ToString()) { if (FalloutBuild.IsServerBuild) { @@ -73,8 +74,8 @@ AbsolutePath GetCookieFile(string name, int version) } PrintDisclosure($"set the {VersionPropertyName.SingleQuote()} property"); - project.SetProperty(VersionPropertyName, CurrentVersion.ToString()); - project.Save(); + SolutionServices.Projects.SetProperty( + FalloutBuild.BuildProjectFile, VersionPropertyName, CurrentVersion.ToString()); } for (var version = CurrentVersion; version > 0; version--) diff --git a/src/Fallout.Build/Terminal.cs b/src/Fallout.Application/Terminal.cs similarity index 90% rename from src/Fallout.Build/Terminal.cs rename to src/Fallout.Application/Terminal.cs index 2ed103e21..a2da41a16 100644 --- a/src/Fallout.Build/Terminal.cs +++ b/src/Fallout.Application/Terminal.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.Execution; +namespace Fallout.Application.Execution; public class Terminal : Host { diff --git a/src/Fallout.Build/Theming/AnsiConsoleHostTheme.cs b/src/Fallout.Application/Theming/AnsiConsoleHostTheme.cs similarity index 97% rename from src/Fallout.Build/Theming/AnsiConsoleHostTheme.cs rename to src/Fallout.Application/Theming/AnsiConsoleHostTheme.cs index cdb0e2ddf..4f8df0148 100644 --- a/src/Fallout.Build/Theming/AnsiConsoleHostTheme.cs +++ b/src/Fallout.Application/Theming/AnsiConsoleHostTheme.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; using Serilog.Sinks.SystemConsole.Themes; +using Fallout.Kernel; -namespace Fallout.Common.Execution.Theming; +namespace Fallout.Application.Execution.Theming; public class AnsiConsoleHostTheme : AnsiConsoleTheme, IHostTheme { diff --git a/src/Fallout.Build/Theming/IHostTheme.cs b/src/Fallout.Application/Theming/IHostTheme.cs similarity index 90% rename from src/Fallout.Build/Theming/IHostTheme.cs rename to src/Fallout.Application/Theming/IHostTheme.cs index c5ad6ce1c..4ca3e3dd6 100644 --- a/src/Fallout.Build/Theming/IHostTheme.cs +++ b/src/Fallout.Application/Theming/IHostTheme.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Execution.Theming; +namespace Fallout.Application.Execution.Theming; public interface IHostTheme { diff --git a/src/Fallout.Build/Theming/SystemConsoleHostTheme.cs b/src/Fallout.Application/Theming/SystemConsoleHostTheme.cs similarity index 97% rename from src/Fallout.Build/Theming/SystemConsoleHostTheme.cs rename to src/Fallout.Application/Theming/SystemConsoleHostTheme.cs index 826468ada..f898f0e8b 100644 --- a/src/Fallout.Build/Theming/SystemConsoleHostTheme.cs +++ b/src/Fallout.Application/Theming/SystemConsoleHostTheme.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; -using Fallout.Common.Utilities; using Serilog; using Serilog.Sinks.SystemConsole.Themes; +using Fallout.Kernel; -namespace Fallout.Common.Execution.Theming; +namespace Fallout.Application.Execution.Theming; public class SystemConsoleHostTheme : SystemConsoleTheme, IHostTheme { diff --git a/src/Fallout.Build/Utilities/ConsoleUtility.cs b/src/Fallout.Application/Utilities/ConsoleUtility.cs similarity index 98% rename from src/Fallout.Build/Utilities/ConsoleUtility.cs rename to src/Fallout.Application/Utilities/ConsoleUtility.cs index 1e59cb972..3de9fc692 100644 --- a/src/Fallout.Build/Utilities/ConsoleUtility.cs +++ b/src/Fallout.Application/Utilities/ConsoleUtility.cs @@ -2,8 +2,10 @@ using System.Drawing; using System.Linq; using System.Text; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.Utilities; +namespace Fallout.Application.Utilities; public class ConsoleUtility { diff --git a/src/Fallout.Build/Utilities/CredentialStore.cs b/src/Fallout.Application/Utilities/CredentialStore.cs similarity index 90% rename from src/Fallout.Build/Utilities/CredentialStore.cs rename to src/Fallout.Application/Utilities/CredentialStore.cs index 58c2aa9af..9ff3f6fb0 100644 --- a/src/Fallout.Build/Utilities/CredentialStore.cs +++ b/src/Fallout.Application/Utilities/CredentialStore.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Utilities; +namespace Fallout.Application.Utilities; public static class CredentialStore { @@ -11,7 +14,7 @@ public static void DeletePassword(string name) switch (EnvironmentInfo.Platform) { case PlatformFamily.OSX: - ProcessTasks.StartProcess( + ToolingServices.Process.StartProcess( Security, $"delete-generic-password -a {EnvironmentInfo.Variables["LOGNAME"]} -s {name.DoubleQuoteIfNeeded()}", logInvocation: false, @@ -27,7 +30,7 @@ public static void SavePassword(string name, string password) switch (EnvironmentInfo.Platform) { case PlatformFamily.OSX: - ProcessTasks.StartProcess( + ToolingServices.Process.StartProcess( Security, $"add-generic-password -T \"\" -a {EnvironmentInfo.Variables["LOGNAME"]} -s {name.DoubleQuoteIfNeeded()} -w {password}", logInvocation: false, @@ -43,7 +46,7 @@ public static string TryGetPassword(string name) switch (EnvironmentInfo.Platform) { case PlatformFamily.OSX: - var process = ProcessTasks.StartProcess( + var process = ToolingServices.Process.StartProcess( Security, $"find-generic-password -w -a {EnvironmentInfo.Variables["LOGNAME"]} -s {name.DoubleQuoteIfNeeded()}", logInvocation: false, @@ -57,7 +60,7 @@ public static string TryGetPassword(string name) } } - private static string Security => ToolPathResolver.GetPathExecutable("security"); + private static string Security => ToolingServices.ToolPaths.GetPathExecutable("security"); public static string GetPassword(string profile, string rootDirectory) { diff --git a/src/Fallout.Build/Utilities/SchemaUtility.cs b/src/Fallout.Application/Utilities/SchemaUtility.cs similarity index 98% rename from src/Fallout.Build/Utilities/SchemaUtility.cs rename to src/Fallout.Application/Utilities/SchemaUtility.cs index 7c6e5c171..5e6a00def 100644 --- a/src/Fallout.Build/Utilities/SchemaUtility.cs +++ b/src/Fallout.Application/Utilities/SchemaUtility.cs @@ -7,13 +7,15 @@ using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Nodes; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.ValueInjection; -using static Fallout.Common.Constants; - -namespace Fallout.Common.Execution; +using static Fallout.Build.Shared.Constants; +using Fallout.Application; +using Fallout.Application.ValueInjection; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Build.Shared; + +namespace Fallout.Application.Execution; /// /// Generates a draft-04 JSON Schema for a build's [Parameter]-attributed members so editors diff --git a/src/Fallout.Common/Utilities/TemplateUtility.cs b/src/Fallout.Application/Utilities/TemplateUtility.cs similarity index 98% rename from src/Fallout.Common/Utilities/TemplateUtility.cs rename to src/Fallout.Application/Utilities/TemplateUtility.cs index 61af42723..c1419075d 100644 --- a/src/Fallout.Common/Utilities/TemplateUtility.cs +++ b/src/Fallout.Application/Utilities/TemplateUtility.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; using Serilog; +using Fallout.Kernel.Collections; +using Fallout.Kernel.IO; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class TemplateUtility { diff --git a/src/Fallout.Build/VCS/GitRepository.cs b/src/Fallout.Application/VCS/GitRepository.cs similarity index 98% rename from src/Fallout.Build/VCS/GitRepository.cs rename to src/Fallout.Application/VCS/GitRepository.cs index b97e2c3d5..bdf4004e2 100644 --- a/src/Fallout.Build/VCS/GitRepository.cs +++ b/src/Fallout.Application/VCS/GitRepository.cs @@ -2,11 +2,12 @@ using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -using Fallout.Common.CI; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Git; +namespace Fallout.Application.Git; public enum GitProtocol { diff --git a/src/Fallout.Build/VCS/GitRepositoryExtensions.cs b/src/Fallout.Application/VCS/GitRepositoryExtensions.cs similarity index 95% rename from src/Fallout.Build/VCS/GitRepositoryExtensions.cs rename to src/Fallout.Application/VCS/GitRepositoryExtensions.cs index aa9806ae8..328432a53 100644 --- a/src/Fallout.Build/VCS/GitRepositoryExtensions.cs +++ b/src/Fallout.Application/VCS/GitRepositoryExtensions.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Git; +namespace Fallout.Application.Git; public static class GitRepositoryExtensions { diff --git a/src/Fallout.Build/Verbosity.cs b/src/Fallout.Application/Verbosity.cs similarity index 67% rename from src/Fallout.Build/Verbosity.cs rename to src/Fallout.Application/Verbosity.cs index 125ec5e1c..9f48bba0c 100644 --- a/src/Fallout.Build/Verbosity.cs +++ b/src/Fallout.Application/Verbosity.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common; +namespace Fallout.Application; public enum Verbosity { diff --git a/src/Fallout.Build.Shared/CompletionUtility.cs b/src/Fallout.Build.Shared/CompletionUtility.cs index 4c8d5c151..378597c3f 100644 --- a/src/Fallout.Build.Shared/CompletionUtility.cs +++ b/src/Fallout.Build.Shared/CompletionUtility.cs @@ -3,10 +3,12 @@ using System.Linq; using System.Text.Json; using System.Text.RegularExpressions; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class CompletionUtility { diff --git a/src/Fallout.Build.Shared/Constants.cs b/src/Fallout.Build.Shared/Constants.cs index 0b5b34454..b28338445 100644 --- a/src/Fallout.Build.Shared/Constants.cs +++ b/src/Fallout.Build.Shared/Constants.cs @@ -2,11 +2,11 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Build.Shared; /// /// Set of constants shared between libraries and IDE extensions. @@ -19,7 +19,9 @@ internal static class Constants // consumer projects keep building until they migrate (manually or via the // forthcoming Fallout.Migrate CLI). New setups always use .fallout/. internal const string LegacyNukeDirectoryName = ".nuke"; - internal const string FalloutCommonPackageId = "Fallout.Common"; + // The consumer-facing meta-package (successor to the dissolved Fallout.Common — ADR-0006 onion + // realignment). This is what `dotnet fallout :setup` adds and `:update` bumps in a build project. + internal const string FalloutPackageId = "Fallout"; internal const string BuildSchemaFileName = "build.schema.json"; internal const string VisualStudioDebugFileName = $"{VisualStudioDebugParameterName}.log"; diff --git a/src/Fallout.Build.Shared/Fallout.Build.Shared.csproj b/src/Fallout.Build.Shared/Fallout.Build.Shared.csproj index 9248a4c2d..644bb38ba 100644 --- a/src/Fallout.Build.Shared/Fallout.Build.Shared.csproj +++ b/src/Fallout.Build.Shared/Fallout.Build.Shared.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Build.Shared/LegacyEnvironment.cs b/src/Fallout.Build.Shared/LegacyEnvironment.cs index 28f195384..035fe8916 100644 --- a/src/Fallout.Build.Shared/LegacyEnvironment.cs +++ b/src/Fallout.Build.Shared/LegacyEnvironment.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Fallout.Common; +namespace Fallout.Build.Shared; /// /// Helpers for reading environment variables during the NUKE → Fallout rename. diff --git a/src/Fallout.Build.Shared/Notifications.cs b/src/Fallout.Build.Shared/Notifications.cs index 78a7302a5..0048ed34d 100644 --- a/src/Fallout.Build.Shared/Notifications.cs +++ b/src/Fallout.Build.Shared/Notifications.cs @@ -3,9 +3,8 @@ using System.Net.Http; using System.Text.Json; using System.Threading.Tasks; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel.IO; +using Fallout.Kernel; namespace Fallout.Build.Shared; diff --git a/src/Fallout.Build/Fallout.Build.csproj b/src/Fallout.Build/Fallout.Build.csproj deleted file mode 100644 index ea2b968c3..000000000 --- a/src/Fallout.Build/Fallout.Build.csproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - net10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Fallout.Cli/BuildProjectResolver.cs b/src/Fallout.Cli/BuildProjectResolver.cs index 98d24e6b4..081cbd0c6 100644 --- a/src/Fallout.Cli/BuildProjectResolver.cs +++ b/src/Fallout.Cli/BuildProjectResolver.cs @@ -1,8 +1,8 @@ using System.IO; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using static Fallout.Common.Constants; +using static Fallout.Build.Shared.Constants; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Fallout.Cli.csproj b/src/Fallout.Cli/Fallout.Cli.csproj index d24af569d..d934312da 100644 --- a/src/Fallout.Cli/Fallout.Cli.csproj +++ b/src/Fallout.Cli/Fallout.Cli.csproj @@ -9,8 +9,10 @@ - - + + + @@ -29,4 +31,19 @@ + + + + + + + + + + + + + + + diff --git a/src/Fallout.Cli/Program.AddPackage.cs b/src/Fallout.Cli/Program.AddPackage.cs index ea6d28cf5..77d43bf5f 100644 --- a/src/Fallout.Cli/Program.AddPackage.cs +++ b/src/Fallout.Cli/Program.AddPackage.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Infrastructure.Tooling; +using Fallout.Application.Tools.DotNet; +using Fallout.Kernel.IO; +using Fallout.Infrastructure.ProjectModel; +using Fallout.Kernel; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Cake.cs b/src/Fallout.Cli/Program.Cake.cs deleted file mode 100644 index 6169798d1..000000000 --- a/src/Fallout.Cli/Program.Cake.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Cli.Rewriting.Cake; -using static Fallout.Common.Constants; -using static Fallout.Common.EnvironmentInfo; - -namespace Fallout.Cli; - -partial class Program -{ - public const string CAKE_FILE_PATTERN = "*.cake"; - - public static int CakeConvert(string[] args, AbsolutePath rootDirectory, AbsolutePath buildScript) - { - PrintInfo(); - Logging.Configure(); - Telemetry.ConvertCake(); - ProjectModelTasks.Initialize(); - - Host.Warning( - new[] - { - "Converting .cake files is a best effort approach using syntax rewriting.", - "Compile errors are to be expected, however, the following elements are currently covered:", - " - Target definitions", - " - Default targets", - " - Parameter declarations", - " - Absolute paths", - " - Globbing patterns", - " - Tool invocations (dotnet CLI, SignTool)", - " - Addin and tool references", - }.JoinNewLine()); - - Host.Debug(); - if (!PromptForConfirmation("Continue?")) - return 0; - Host.Debug(); - - if (buildScript == null && - PromptForConfirmation("Should a NUKE project be created for better results?")) - { - Setup(args, rootDirectory: null, buildScript: null); - } - - var buildScriptFile = WorkingDirectory / CurrentBuildScriptName; - var buildProjectFile = buildScriptFile.Exists() - ? GetConfiguration(buildScriptFile, evaluate: true) - .GetValueOrDefault(BUILD_PROJECT_FILE, defaultValue: null) - : null; - - foreach (var cakeFile in GetCakeFiles()) - { - var outputFile = cakeFile.Parent / cakeFile.NameWithoutExtension.Capitalize() + ".cs"; - var content = GetCakeConvertedContent(cakeFile.ReadAllText()); - outputFile.WriteAllText(content); - } - - if (buildProjectFile != null) - { - var packages = GetCakeFiles().SelectMany(x => GetCakePackages(x.ReadAllText())); - foreach (var package in packages) - AddOrReplacePackage(package.Id, package.Version, package.Type, buildProjectFile); - } - - return 0; - } - - public static int CakeClean(string[] args, AbsolutePath rootDirectory, AbsolutePath buildScript) - { - var cakeFiles = GetCakeFiles().ToList(); - Host.Information("Found .cake files:"); - cakeFiles.ForEach(x => Host.Debug($" - {x}")); - - if (PromptForConfirmation("Delete?")) - cakeFiles.ForEach(x => x.DeleteFile()); - - return 0; - } - - private static IEnumerable GetCakeFiles() - { - return (TryGetRootDirectoryFrom(WorkingDirectory) ?? WorkingDirectory).GlobFiles($"**/{CAKE_FILE_PATTERN}"); - } - - internal static string GetCakeConvertedContent(string content) - { - var options = new CSharpParseOptions(LanguageVersion.Latest, DocumentationMode.None, SourceCodeKind.Script); - var syntaxTree = CSharpSyntaxTree.ParseText(content, options); - return new CSharpSyntaxRewriter[] - { - new RemoveUsingDirectivesRewriter(), - new RenameFieldIdentifierRewriter(), - new ParameterRewriter(), - new AbsolutePathRewriter(), - new RegularFieldRewriter(), - new TargetDefinitionRewriter(), - new InvocationRewriter(), - new MemberAccessRewriter(), - new IdentifierNameRewriter(), - new ToolInvocationRewriter(), - new ClassRewriter(), - new FormattingRewriter() - }.Aggregate(syntaxTree.GetRoot(), (root, rewriter) => rewriter.Visit(root.NormalizeWhitespace(elasticTrivia: true))) - .ToFullString(); - } - - internal static IEnumerable<(string Type, string Id, string Version)> GetCakePackages(string content) - { - IEnumerable<(string Type, string Id, string Version)> GetPackages( - string packageType, - string regexPattern) - { - var regex = new Regex(regexPattern); - foreach (Match match in regex.Matches(content)) - { - var packageId = match.Groups["packageId"].Value; - var packageVersion = match.Groups["version"].Value; - if (packageVersion.IsNullOrEmpty()) - packageVersion = AsyncHelper.RunSync(() => NuGetVersionResolver.GetLatestVersion(packageId, includePrereleases: false)); - yield return new(packageType, packageId, packageVersion); - } - } - - return GetPackages(PACKAGE_TYPE_DOWNLOAD, @"#tool ""nuget:\?package=(?'packageId'[\w\d\.]+)(&version=(?'version'[\w\d\.]+))?S*""") - .Concat(GetPackages(PACKAGE_TYPE_REFERENCE, @"#addin ""nuget:\?package=(?'packageId'[\w\d\.]+)(&version=(?'version'[\w\d\.]+))?S*""")) - .Where(x => !x.Id.ContainsOrdinalIgnoreCase("Cake")); - } -} diff --git a/src/Fallout.Cli/Program.Complete.cs b/src/Fallout.Cli/Program.Complete.cs index d1af3e1fb..2f1f6447a 100644 --- a/src/Fallout.Cli/Program.Complete.cs +++ b/src/Fallout.Cli/Program.Complete.cs @@ -1,11 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Utilities.Text.Yaml; -using static Fallout.Common.Constants; +using Fallout.Kernel; +using static Fallout.Build.Shared.Constants; +using Fallout.Kernel.IO; +using Fallout.Kernel.Text.Yaml; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.GetConfiguration.cs b/src/Fallout.Cli/Program.GetConfiguration.cs index 6600b3273..d8cb5b8ec 100644 --- a/src/Fallout.Cli/Program.GetConfiguration.cs +++ b/src/Fallout.Cli/Program.GetConfiguration.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Navigation.cs b/src/Fallout.Cli/Program.Navigation.cs index 71f8e53a5..ac4a597d2 100644 --- a/src/Fallout.Cli/Program.Navigation.cs +++ b/src/Fallout.Cli/Program.Navigation.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using static Fallout.Common.Constants; +using static Fallout.Build.Shared.Constants; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Run.cs b/src/Fallout.Cli/Program.Run.cs index a9aefc998..564e8715f 100644 --- a/src/Fallout.Cli/Program.Run.cs +++ b/src/Fallout.Cli/Program.Run.cs @@ -3,10 +3,10 @@ using System.Diagnostics; using System.IO; using System.Linq; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using static Fallout.Common.Constants; +using static Fallout.Build.Shared.Constants; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Secrets.cs b/src/Fallout.Cli/Program.Secrets.cs index d6dfc277a..6a2b88be3 100644 --- a/src/Fallout.Cli/Program.Secrets.cs +++ b/src/Fallout.Cli/Program.Secrets.cs @@ -2,12 +2,14 @@ using System.Collections.Generic; using System.Linq; using System.Text.Json.Nodes; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.Constants; -using static Fallout.Common.Utilities.EncryptionUtility; +using Fallout.Kernel; +using static Fallout.Build.Shared.Constants; +using static Fallout.Kernel.EncryptionUtility; +using Fallout.Application; +using Fallout.Application.Utilities; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Setup.cs b/src/Fallout.Cli/Program.Setup.cs index 36bbf1019..87deffae1 100644 --- a/src/Fallout.Cli/Program.Setup.cs +++ b/src/Fallout.Cli/Program.Setup.cs @@ -4,17 +4,18 @@ using System.Linq; using System.Reflection; using System.Text; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Spectre.Console; -using static Fallout.Common.Constants; -using static Fallout.Common.EnvironmentInfo; -using static Fallout.Common.Tooling.ProcessTasks; -using static Fallout.Common.Utilities.TemplateUtility; +using static Fallout.Build.Shared.Constants; +using static Fallout.Kernel.EnvironmentInfo; +using static Fallout.Infrastructure.Tooling.ProcessTasks; +using static Fallout.Kernel.TemplateUtility; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Build.Shared; namespace Fallout.Cli; @@ -38,9 +39,9 @@ public static int Setup(string[] args, AbsolutePath rootDirectory, AbsolutePath #region Basic - var nukeLatestReleaseVersion = NuGetVersionResolver.GetLatestVersion(FalloutCommonPackageId, includePrereleases: false); - var nukeLatestPrereleaseVersion = NuGetVersionResolver.GetLatestVersion(FalloutCommonPackageId, includePrereleases: true); - var nukeLatestLocalVersion = NuGetPackageResolver.GetGlobalInstalledPackage(FalloutCommonPackageId, version: null, packagesConfigFile: null) + var nukeLatestReleaseVersion = NuGetVersionResolver.GetLatestVersion(FalloutPackageId, includePrereleases: false); + var nukeLatestPrereleaseVersion = NuGetVersionResolver.GetLatestVersion(FalloutPackageId, includePrereleases: true); + var nukeLatestLocalVersion = NuGetPackageResolver.GetGlobalInstalledPackage(FalloutPackageId, version: null, packagesConfigFile: null) ?.Version.ToString(); if (rootDirectory == null) @@ -61,7 +62,7 @@ public static int Setup(string[] args, AbsolutePath rootDirectory, AbsolutePath ClearPreviousLine(); ShowInput("round_pushpin", "Build project location", buildProjectRelativeDirectory); - var nukeVersion = PromptForChoice("Which Fallout.Common version should be used?", + var nukeVersion = PromptForChoice("Which Fallout version should be used?", new[] { ("latest release", nukeLatestReleaseVersion.GetAwaiter().GetResult()), @@ -72,7 +73,7 @@ public static int Setup(string[] args, AbsolutePath rootDirectory, AbsolutePath .Where(x => x.Item2 != null) .Distinct(x => x.Item2) .Select(x => (x.Item2, $"{x.Item2} ({x.Item1})")).ToArray()); - ShowInput("gem_stone", "Fallout.Common version", nukeVersion); + ShowInput("gem_stone", "Fallout version", nukeVersion); var solutionFile = (AbsolutePath) PromptForChoice( "Which solution should be the default?", diff --git a/src/Fallout.Cli/Program.Trigger.cs b/src/Fallout.Cli/Program.Trigger.cs index 1497e5626..89516fde0 100644 --- a/src/Fallout.Cli/Program.Trigger.cs +++ b/src/Fallout.Cli/Program.Trigger.cs @@ -1,10 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Common.Tools.Git; -using Fallout.Common.Utilities; +using Fallout.Application.Git; +using Fallout.Application.Tools.Git; +using Fallout.Kernel.IO; +using Fallout.Kernel; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.Update.cs b/src/Fallout.Cli/Program.Update.cs index 145bf805c..0c7d2f659 100644 --- a/src/Fallout.Cli/Program.Update.cs +++ b/src/Fallout.Cli/Program.Update.cs @@ -1,14 +1,16 @@ -using System; +using System; using System.IO; using System.Linq; using System.Text.Json.Nodes; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Utilities; -using static Fallout.Common.Constants; +using static Fallout.Build.Shared.Constants; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Application.Tools.DotNet; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Infrastructure.ProjectModel; +using Fallout.Application.Solutions; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/Program.cs b/src/Fallout.Cli/Program.cs index 1702ab81a..7db6f699a 100644 --- a/src/Fallout.Cli/Program.cs +++ b/src/Fallout.Cli/Program.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; using System.Text; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; using Spectre.Console; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; namespace Fallout.Cli; diff --git a/src/Fallout.Cli/ProjectUpdater.cs b/src/Fallout.Cli/ProjectUpdater.cs index 685ac323f..a9f780786 100644 --- a/src/Fallout.Cli/ProjectUpdater.cs +++ b/src/Fallout.Cli/ProjectUpdater.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using NuGet.Versioning; -using Fallout.Common; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel; +using Fallout.Infrastructure.ProjectModel; +using Fallout.Build.Shared; namespace Fallout.Cli; @@ -30,10 +30,10 @@ private static void UpdateTargetFramework(Microsoft.Build.Evaluation.Project bui private static void UpdateNukeCommonPackage(Microsoft.Build.Evaluation.Project buildProject, out FloatRange previousPackageVersion) { - var packageItem = buildProject.Items.SingleOrDefault(x => x.EvaluatedInclude == Constants.FalloutCommonPackageId).NotNull(); + var packageItem = buildProject.Items.SingleOrDefault(x => x.EvaluatedInclude == Constants.FalloutPackageId).NotNull(); previousPackageVersion = FloatRange.Parse(packageItem.GetMetadataValue("Version")); - var latestPackageVersion = NuGetVersionResolver.GetLatestVersion(Constants.FalloutCommonPackageId, includePrereleases: false).GetAwaiter().GetResult(); + var latestPackageVersion = NuGetVersionResolver.GetLatestVersion(Constants.FalloutPackageId, includePrereleases: false).GetAwaiter().GetResult(); if (previousPackageVersion.Satisfies(NuGetVersion.Parse(latestPackageVersion))) return; diff --git a/src/Fallout.Cli/Rewriting/Cake/AbsolutePathRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/AbsolutePathRewriter.cs deleted file mode 100644 index 9f1fafa8b..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/AbsolutePathRewriter.cs +++ /dev/null @@ -1,198 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class AbsolutePathRewriter : SafeSyntaxRewriter -{ - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - var reducedFieldDeclaration = (FieldDeclarationSyntax) base.VisitFieldDeclaration(node).NotNull(); - if (reducedFieldDeclaration == node) - return node; - - var variableDeclarator = reducedFieldDeclaration.GetSingleDeclarator(); - return SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName(nameof(AbsolutePath)), variableDeclarator.Identifier) - .WithExpressionBody(SyntaxFactory.ArrowExpressionClause(variableDeclarator.Initializer?.Value)) - .WithSemicolonToken(node.SemicolonToken) - .WithTriviaFrom(node); - } - - public override SyntaxNode VisitInterpolatedStringExpression(InterpolatedStringExpressionSyntax node) - { - var textTokens = node.Contents.OfType().Select(x => x.TextToken.Text).ToList(); - if (textTokens.All(x => !x.Contains("/")) || - textTokens.Any(x => x.ContainsAnyOrdinalIgnoreCase("<", ">", ":", " -"))) - return node; - - if (node.Parent is BinaryExpressionSyntax) - return node; - - if (node.Parent?.Parent?.Parent is InvocationExpressionSyntax invocationExpression && - invocationExpression.GetIdentifierName().EqualsAnyOrdinalIgnoreCase("SelectNodes", "SelectSingleNode", "Append")) - return node; - - var str = node.ToString(); - var index = str.IndexOf('*'); - if (index == -1) - return CreateAbsolutePathExpression(new[] { SyntaxFactory.ParseExpression(str.Replace("/", "\" / $\"")) }); - - var lastPathSeparatorIndex = str[..index].LastIndexOf('/'); - if (lastPathSeparatorIndex < 0) - return node; - - var absolutePart = str[..lastPathSeparatorIndex] + "\""; - var wildcardPart = "\"" + str[(lastPathSeparatorIndex + 1)..]; - - return SyntaxFactory.InvocationExpression( - SyntaxFactory.MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - node.Contents.First() is InterpolationSyntax - ? SyntaxFactory.ParseExpression(absolutePart) - : SyntaxFactory.ParenthesizedExpression(CreateAbsolutePathExpression(new[] { SyntaxFactory.ParseExpression(absolutePart) })), - SyntaxFactory.IdentifierName(GetGlobbingMethod(node, wildcardPart.Split("/"))))) - .WithArguments(wildcardPart.TrimMatchingDoubleQuotes().ToLiteralExpression()); - - // var parts = node.Token.ValueText.Split('/', RemoveEmptyEntries).Where(x => x != ".").ToList(); - // var nonWildcardParts = parts.TakeWhile(x => !x.Contains('*')).ToList(); - // var wildcardParts = parts.Skip(nonWildcardParts.Count).ToList(); - // - // var literalExpressions = - // nonWildcardParts.Select(x => LiteralExpression(SyntaxKind.StringLiteralExpression, Literal(x))); - // var absolutePathExpression = CreateAbsolutePathExpression(literalExpressions); - // if (wildcardParts.Count == 0) - // return absolutePathExpression; - // - - // - // return InvocationExpression( - // MemberAccessExpression( - // SyntaxKind.SimpleMemberAccessExpression, - // ParenthesizedExpression(absolutePathExpression), - // IdentifierName(GetGlobbingMethod()))) - // .WithArguments(wildcardParts.Join("/").ToLiteralExpression()); - } - - // "foo/bar" => RootDirectory / "foo" / "bar" - // "foo/**/bar" => (RootDirectory / "foo").GlobDirectories("**/bar") - // "foo/**/bar.*" => (RootDirectory / "foo").GlobFiles("**/bar.*") - public override SyntaxNode VisitLiteralExpression(LiteralExpressionSyntax node) - { - if (node.Token.Value is not string || - !node.Token.ValueText.Contains('/') || - node.Token.ValueText.ContainsAnyOrdinalIgnoreCase("<", ">", ":", " -")) - return node; - - if (node.Parent is BinaryExpressionSyntax) - return node; - - if (node.Parent?.Parent?.Parent is InvocationExpressionSyntax invocationExpression && - invocationExpression.GetIdentifierName().EqualsAnyOrdinalIgnoreCase("SelectNodes", "SelectSingleNode", "Append")) - return node; - - var parts = node.Token.ValueText.Split('/', StringSplitOptions.RemoveEmptyEntries).Where(x => x != ".").ToList(); - var nonWildcardParts = parts.TakeWhile(x => !x.Contains('*')).ToList(); - var wildcardParts = parts.Skip(nonWildcardParts.Count).ToList(); - - var literalExpressions = - nonWildcardParts.Select(x => SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(x))); - var absolutePathExpression = CreateAbsolutePathExpression(literalExpressions); - if (wildcardParts.Count == 0) - return absolutePathExpression; - - return SyntaxFactory.InvocationExpression( - SyntaxFactory.MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - SyntaxFactory.ParenthesizedExpression(absolutePathExpression), - SyntaxFactory.IdentifierName(GetGlobbingMethod(node)))) - .WithArguments(wildcardParts.JoinSlash().ToLiteralExpression()); - } - - private string GetGlobbingMethod(SyntaxNode node, IEnumerable wildcardparts = null) - { - return (wildcardparts?.LastOrDefault()?.Contains(".") ?? false) || - node.Parent?.Parent?.Parent is InvocationExpressionSyntax invocationExpression && - (invocationExpression.GetIdentifierName() == "GetFiles" || - invocationExpression.GetIdentifierName() == "CopyFiles") - ? "GlobFiles" - : "GlobDirectories"; - } - - // MakeAbsolute(expr) => expr - // File(expr) => expr - public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node) - { - node = (InvocationExpressionSyntax) base.VisitInvocationExpression(node).NotNull(); - - if (node.GetIdentifierName() == "MakeAbsolute" || - node.GetIdentifierName() == "Directory" || - node.GetIdentifierName() == "File") - return node.GetSingleArgument(); - - if (node.GetIdentifierName() == "Combine") - return CreateAbsolutePathExpression(node.Arguments()); - - if (node.GetIdentifierName() == "GetFiles") - { - var expr = node.Arguments().Skip(1) - .Aggregate( - node.Arguments().FirstOrDefault()?.ToFullString(), - (f, s) => f + ".Concat(" + s.ToFullString() + ")"); - return SyntaxFactory.ParseExpression(expr); - // return InvocationExpression( - // MemberAccessExpression( - // SyntaxKind.SimpleMemberAccessExpression, - // ParenthesizedExpression( - // CastExpression( - // ParseTypeName("AbsolutePath"), - // ParenthesizedExpression(expressionSyntax))), - // IdentifierName("GlobFiles"))); - } - - if (node.GetIdentifierName() == "CleanDirectories") - { - var expressionSyntax = node.GetSingleArgument(); - return SyntaxFactory.InvocationExpression( - SyntaxFactory.MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - expressionSyntax, - SyntaxFactory.IdentifierName("ForEach"))) - .WithArguments(SyntaxFactory.IdentifierName("EnsureCleanDirectory")); - } - - return node; - } - - private ExpressionSyntax CreateAbsolutePathExpression(IEnumerable parts) - { - return parts.Aggregate( - (ExpressionSyntax) SyntaxFactory.IdentifierName("RootDirectory"), - (left, right) => SyntaxFactory.BinaryExpression(SyntaxKind.DivideExpression, left, right)); - } - - public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) - { - return node.Identifier.Text switch - { - "FilePath" => node.WithIdentifier(SyntaxFactory.Identifier("AbsolutePath")), - "DirectoryPath" => node.WithIdentifier(SyntaxFactory.Identifier("AbsolutePath")), - _ => node - }; - } - - public override SyntaxNode VisitMemberAccessExpression(MemberAccessExpressionSyntax node) - { - node = (MemberAccessExpressionSyntax) base.VisitMemberAccessExpression(node).NotNull(); - if (node.GetIdentifierName() != "FullPath") - return node; - - return node.Expression; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs deleted file mode 100644 index 9bfe9e402..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.Tools.SignTool; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class ClassRewriter : SafeSyntaxRewriter -{ - private static readonly SyntaxTrivia BeginMultilineComment = SyntaxTrivia(SyntaxKind.MultiLineCommentTrivia, "/*"); - private static readonly SyntaxTrivia EndMultilineComment = SyntaxTrivia(SyntaxKind.MultiLineCommentTrivia, "*/"); - - private static string[] NamespaceImports => - new[] - { - "System", - "System.Collections.Generic", - "System.IO", - "System.Linq", - "System.Linq.Expressions", - "System.Security.Cryptography.X509Certificates", - "System.Xml", - "Fallout.Common", - "Fallout.Common.Execution", - "Fallout.Common.IO", - "Fallout.Solutions", - "Fallout.Common.Tooling", - "Fallout.Common.Tools.DotNet", - "Fallout.Common.Tools.GitVersion", - "Fallout.Common.Tools.SignTool", - "Fallout.Common.Utilities.Collections", - }; - - private static Type[] StaticClassImports => - new[] - { - typeof(ControlFlow), - typeof(DotNetTasks), - typeof(MSBuildTasks), - typeof(SignToolTasks), - typeof(NuGetTasks), - typeof(TextTasks), - typeof(XmlTasks), - typeof(EnvironmentInfo), - }; - - private string _defaultTargetFieldName; - private string _defaultTargetName; - - public override SyntaxNode VisitCompilationUnit(CompilationUnitSyntax node) - { - node = (CompilationUnitSyntax) base.VisitCompilationUnit(node).NotNull(); - - var defaultTargetField = node.Members.OfType() - .SingleOrDefault(x => x.GetSingleDeclarator().Identifier.Text == _defaultTargetFieldName); - if (defaultTargetField != null) - { - var literalExpression = defaultTargetField.GetSingleDeclarator().Initializer?.Value as LiteralExpressionSyntax; - var defaultTarget = literalExpression.GetConstantValue(); - var mainMethodDeclaration = ParseMemberDeclaration($"public static int Main() => Execute(x => x.{defaultTarget});"); - node = node.WithMembers(List(new[] { mainMethodDeclaration }.Concat(node.Members.Except(new[] { defaultTargetField })))); - } - else if (_defaultTargetName != null) - { - var mainMethodDeclaration = ParseMemberDeclaration($"public static int Main() => Execute(x => x.{_defaultTargetName});"); - node = node.WithMembers(List(new[] { mainMethodDeclaration }.Concat(node.Members))); - } - - var baseTypes = SeparatedList(new BaseTypeSyntax[] { SimpleBaseType(ParseTypeName(nameof(FalloutBuild))) }); - var classDeclaration = ClassDeclaration("Build") - .WithBaseList(BaseList(baseTypes)) - .WithMembers(List(node.Members.Where(x => x != defaultTargetField))); - - var staticTypes = StaticClassImports; - var staticUsings = staticTypes - .Select(x => x.FullName) - .Select(IdentifierName) - .Select(UsingDirective) - .Select(x => x.WithStaticKeyword(Token(SyntaxKind.StaticKeyword))); - - var namespaceUsings = NamespaceImports - .Concat(staticTypes.Select(x => x.Namespace)) - .Select(IdentifierName) - .Select(UsingDirective); - - return CompilationUnit() - .WithUsings(List(namespaceUsings.Concat(staticUsings))) - .WithMembers(List(new MemberDeclarationSyntax[] { classDeclaration })); - } - - public override SyntaxNode VisitGlobalStatement(GlobalStatementSyntax node) - { - node = (GlobalStatementSyntax) base.VisitGlobalStatement(node).NotNull(); - - if (node.Statement is not ExpressionStatementSyntax expressionStatement) - return node - .WithLeadingTrivia(BeginMultilineComment) - .WithTrailingTrivia(EndMultilineComment); - - var invocationExpression = expressionStatement.Expression as InvocationExpressionSyntax; - var identifierName = invocationExpression?.GetIdentifierName(); - if (identifierName == "Setup" || - identifierName == "Teardown") - return node - .WithLeadingTrivia(BeginMultilineComment) - .WithTrailingTrivia(EndMultilineComment); - - if (identifierName == "RunTarget") - { - var expression = invocationExpression.GetSingleArgument(); - if (expression is IdentifierNameSyntax targetIdentifier) - _defaultTargetFieldName = targetIdentifier.Identifier.Text; - if (expression is LiteralExpressionSyntax literalExpression) - _defaultTargetName = literalExpression.GetConstantValue(); - return null; - } - - return node; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/CodeAnalysisExtensions.cs b/src/Fallout.Cli/Rewriting/Cake/CodeAnalysisExtensions.cs deleted file mode 100644 index 95ddd1c90..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/CodeAnalysisExtensions.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal static class CodeAnalysisExtensions -{ - public static LiteralExpressionSyntax ToLiteralExpression(this string str) - { - return LiteralExpression(SyntaxKind.StringLiteralExpression, Literal(str)); - } - - public static IEnumerable Arguments(this InvocationExpressionSyntax node) - { - return node.ArgumentList.Arguments.Select(x => x.Expression); - } - - public static InvocationExpressionSyntax WithArguments( - this InvocationExpressionSyntax node, - params ExpressionSyntax[] expressions) - { - return node.WithArgumentList(ArgumentList(SeparatedList(expressions.Select(Argument)))); - } - - public static InvocationExpressionSyntax WithArguments(this InvocationExpressionSyntax node, IEnumerable expressions) - { - return node.WithArguments(expressions.ToArray()); - } - - public static InvocationExpressionSyntax WithConvertedArguments( - this InvocationExpressionSyntax node, - Func convert) - { - convert ??= x => x; - return node.WithArguments(node.ArgumentList.Arguments.Select(x => x.Expression).Select(convert)); - } - - public static InvocationExpressionSyntax WithReorderedArguments( - this InvocationExpressionSyntax node, - Func reorder) - { - reorder ??= x => x; - return node.WithArguments(reorder(node.ArgumentList.Arguments.Select(x => x.Expression).ToArray())); - } - - public static string GetIdentifierName(this MemberAccessExpressionSyntax memberAccessExpression) - { - return memberAccessExpression.Name.Identifier.Text; - } - - public static string GetIdentifierName(this InvocationExpressionSyntax invocationExpression) - { - return invocationExpression.Expression switch - { - MemberAccessExpressionSyntax memberAccessExpression => memberAccessExpression.GetIdentifierName(), - IdentifierNameSyntax identifierName => identifierName.Identifier.Text, - GenericNameSyntax genericName => genericName.Identifier.Text, - _ => null - }; - } - - public static TypeSyntax GetSingleGenericArgumentOrNull(this InvocationExpressionSyntax invocationExpression) - { - return invocationExpression.Expression is GenericNameSyntax genericName ? genericName.TypeArgumentList.Arguments.Single() : null; - } - - public static T GetSingleArgument(this InvocationExpressionSyntax invocationExpression) - where T : ExpressionSyntax - { - return invocationExpression.Arguments().Single() as T; - } - - public static T GetArgumentAt(this InvocationExpressionSyntax invocationExpression, int index) - where T : ExpressionSyntax - { - return invocationExpression.Arguments().ElementAtOrDefault(index) as T; - } - - public static T GetConstantValue(this LiteralExpressionSyntax literalExpression) - { - return (T) literalExpression.Token.Value; - } - - public static VariableDeclaratorSyntax GetSingleDeclarator(this FieldDeclarationSyntax fieldDeclaration) - { - return fieldDeclaration.Declaration.Variables.Single(); - } - - public static TypeSyntax GetExpressionType(this ExpressionSyntax expression) - { - if (expression is LiteralExpressionSyntax literalExpression) - { - return literalExpression.Kind() switch - { - SyntaxKind.NumericLiteralExpression => ParseTypeName("int"), - SyntaxKind.TrueLiteralExpression => ParseTypeName("bool"), - SyntaxKind.FalseLiteralExpression => ParseTypeName("bool"), - SyntaxKind.StringLiteralExpression => ParseTypeName("string"), - _ => throw new NotSupportedException() - }; - } - - if (expression is MemberAccessExpressionSyntax memberAccessExpression && - memberAccessExpression.Expression is IdentifierNameSyntax identifierName) - return ParseTypeName(identifierName.Identifier.Text); - - if (expression is ObjectCreationExpressionSyntax objectCreationExpression) - return objectCreationExpression.Type; - - if (expression is ArrayCreationExpressionSyntax arrayCreationExpression) - return arrayCreationExpression.Type; - - return ParseTypeName("object"); - } - - public static LiteralExpressionSyntax GetNonDefaultValue(this LiteralExpressionSyntax literalExpression) - { - var value = literalExpression.ToString(); - return value switch - { - "\"\"" => null, - "0" => null, - "false" => null, - _ => literalExpression - }; - } - - public static T When(this T builder, bool condition, Func action) - { - return condition ? action(builder) : builder; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/FormattingRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/FormattingRewriter.cs deleted file mode 100644 index 63a84b8ad..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/FormattingRewriter.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.Utilities.Collections; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class FormattingRewriter : SafeSyntaxRewriter -{ - private static readonly SyntaxTrivia[] Indent = { Space, Space, Space, Space }; - - public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node) - { - node = (PropertyDeclarationSyntax) base.VisitPropertyDeclaration(node).NotNull(); - - return (node.Type as SimpleNameSyntax)?.Identifier.Text == nameof(Target) - ? node.WithLeadingTrivia(LineFeed.Concat(Indent)) - : node; - } - - public override SyntaxToken VisitToken(SyntaxToken token) - { - if (token.Parent is not MemberAccessExpressionSyntax memberAccessExpression) - return token; - - var identifierName = memberAccessExpression.GetIdentifierName(); - if (identifierName == nameof(ITargetDefinition.Executes) || - identifierName == nameof(ITargetDefinition.DependsOn) || - identifierName == nameof(ITargetDefinition.DependentFor) || - identifierName == nameof(ITargetDefinition.OnlyWhenStatic) || - identifierName == nameof(ITargetDefinition.OnlyWhenDynamic) || - identifierName == nameof(ITargetDefinition.ProceedAfterFailure)) - return token.WithLeadingTrivia(LineFeed.Concat(Indent).Concat(Indent)); - - if (identifierName.StartsWith("Set")) - return token.WithLeadingTrivia(LineFeed.Concat(Indent).Concat(Indent).Concat(Indent)); - - return token; - } - - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - return node - .WithAttributeLists(List(node - .AttributeLists.Select((x, i) => x - .When(i != 0, - _ => _ - .WithoutTrivia()) - .WithTrailingTrivia(Space)))) - .When(node.AttributeLists.Any(), - _ => _ - .WithModifiers(TokenList(node - .Modifiers.Select((x, i) => x - .WithLeadingTrivia(i == 0 ? new SyntaxTrivia[0] : new[] { Space }))))); - } - - public override SyntaxNode VisitInterpolatedStringExpression(InterpolatedStringExpressionSyntax node) - { - return node.Contents.Count() == 1 - ? node.Contents.Single() switch - { - InterpolationSyntax interpolation - => interpolation.Expression, - InterpolatedStringTextSyntax interpolatedStringText - => interpolatedStringText.TextToken.Text.ToLiteralExpression(), - _ => throw new NotSupportedException() - } - : node; - } - - public override SyntaxNode VisitAttributeList(AttributeListSyntax node) - { - return node; - // return node.WithTrailingTrivia(Space); - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs deleted file mode 100644 index 025299a64..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class IdentifierNameRewriter : SafeSyntaxRewriter -{ - private static Dictionary Replacements => - new() - { - ["DotNetCoreVerbosity"] = nameof(DotNetVerbosity), - ["MSBuildToolVersion"] = nameof(MSBuildToolsVersion), - ["PlatformTarget"] = nameof(MSBuildTargetPlatform), - ["IsRunningOnUnix"] = nameof(EnvironmentInfo.IsUnix), - ["IsRunningOnWindows"] = nameof(EnvironmentInfo.IsWin), - ["EnvironmentVariable"] = "GetVariable", - }; - - public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) - { - return Replacements.TryGetValue(node.Identifier.Text, out var replacement) - ? node.WithIdentifier(SyntaxFactory.Identifier(replacement)) - : node; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/InvocationRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/InvocationRewriter.cs deleted file mode 100644 index c30b3efcf..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/InvocationRewriter.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.IO; -using Serilog; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class InvocationRewriter : SafeSyntaxRewriter -{ - private static IEnumerable Replacements => - new ReplacementData[] - { - new(original: "Does", replacement: nameof(ITargetDefinition.Executes), convert: ConvertLambdaBodyToBlock), - new(original: "IsDependentOn", replacement: nameof(ITargetDefinition.DependsOn), convert: ConvertStringToIdentifier), - new(original: "IsDependeeOf", replacement: nameof(ITargetDefinition.DependentFor), convert: ConvertStringToIdentifier), - new(original: "ContinueOnError", replacement: nameof(ITargetDefinition.ProceedAfterFailure)), - new(original: "WithCriteria", replacement: RenameWithCriteria, convert: ConvertWithCriteria), - // Logger - new(original: "Information", replacement: $"{nameof(Log)}.{nameof(Log.Information)}"), - new(original: "Verbose", replacement: $"{nameof(Log)}.{nameof(Log.Debug)}"), - }; - - private static Func ConvertStringToIdentifier = x => - { - var literalExpression = (LiteralExpressionSyntax) x; - var targetName = literalExpression.GetConstantValue(); - return IdentifierName(targetName); - }; - - private static Func ConvertLambdaBodyToBlock = x => - { - var lambdaExpression = (LambdaExpressionSyntax) x; - return lambdaExpression.Block != null - ? lambdaExpression - : lambdaExpression - .WithExpressionBody(null) - .WithBlock(Block( - ExpressionStatement(lambdaExpression.ExpressionBody.NotNull()))); - }; - - private static Func RenameWithCriteria => x => x - .GetSingleArgument() == null - ? nameof(ITargetDefinition.OnlyWhenStatic) - : nameof(ITargetDefinition.OnlyWhenDynamic); - - private static Func ConvertWithCriteria => (i, e) => i - .GetSingleArgument() == null - ? ParenthesizedLambdaExpression(e) - : e; - - public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node) - { - node = (InvocationExpressionSyntax) base.VisitInvocationExpression(node).NotNull(); - var name = node.GetIdentifierName(); - var replacement = Replacements.SingleOrDefault(x => x.Original == name); - if (replacement == null) - return node; - - return node.Expression switch - { - IdentifierNameSyntax identifierName => node - .WithExpression(identifierName.WithIdentifier(Identifier(replacement.Replacement.Invoke(node)))) - .WithConvertedArguments(x => replacement.Convert(node, x)) - .WithReorderedArguments(replacement.Reorder), - MemberAccessExpressionSyntax memberAccessExpression => node - .WithExpression(memberAccessExpression.WithName(IdentifierName(replacement.Replacement.Invoke(node)))) - .WithConvertedArguments(x => replacement.Convert(node, x)) - .WithReorderedArguments(replacement.Reorder), - _ => throw new NotSupportedException(node.Expression.GetType().Name) - }; - } - - private class ReplacementData - { - public ReplacementData( - string original, - string replacement, - Func convert = null, - Func reorder = null) - : this( - original, - _ => replacement, - (_, e) => (convert ?? (x => x)).Invoke(e), - x => (reorder ?? (x => x)).Invoke(x)) - { - } - - public ReplacementData( - string original, - Func replacement, - Func convert = null, - Func reorder = null) - { - Original = original; - Replacement = replacement; - Convert = convert ?? ((_, e) => e); - Reorder = reorder ?? (x => x); - } - - public string Original { get; } - public Func Replacement { get; } - public Func Convert { get; } - public Func Reorder { get; } - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/MemberAccessRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/MemberAccessRewriter.cs deleted file mode 100644 index facc0245f..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/MemberAccessRewriter.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class MemberAccessRewriter : SafeSyntaxRewriter -{ - private Dictionary Replacements => - new() - { - ["BuildSystem"] = null, - }; - - public override SyntaxNode VisitMemberAccessExpression(MemberAccessExpressionSyntax node) - { - node = (MemberAccessExpressionSyntax) base.VisitMemberAccessExpression(node).NotNull(); - return node.Expression is not IdentifierNameSyntax identifierNameSyntax || - !Replacements.TryGetValue(identifierNameSyntax.Identifier.Text, out var newName) - ? node - : newName != null - ? node.WithExpression(identifierNameSyntax.WithIdentifier(Identifier(newName))) - : node.Name; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/ParameterRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/ParameterRewriter.cs deleted file mode 100644 index 4cd1e697f..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/ParameterRewriter.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class ParameterRewriter : SafeSyntaxRewriter -{ - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - if (node.Parent is not CompilationUnitSyntax) - return node; - - var variableDeclarator = node.GetSingleDeclarator(); - var invocationExpression = variableDeclarator.Initializer?.Value as InvocationExpressionSyntax; - if (invocationExpression?.GetIdentifierName() != "Argument") - return node; - - var originalNode = node; - var resolutionName = invocationExpression.GetArgumentAt(0).GetConstantValue(); - var defaultValue = invocationExpression.GetArgumentAt(1); - var nonDefaultValue = defaultValue is LiteralExpressionSyntax literalExpression - ? literalExpression.GetNonDefaultValue() - : defaultValue; - - AttributeListSyntax CreateAttributeListWith(string name, string argument = null) - { - var attribute = Attribute(IdentifierName(name)); - if (argument != null) - attribute = attribute.WithArgumentList(AttributeArgumentList( - SeparatedList(new[] { AttributeArgument(argument.ToLiteralExpression()) }))); - - return AttributeList(SeparatedList(new[] { attribute })); - } - - node = node.WithoutTrivia(); - node = node.AddAttributeLists( - CreateAttributeListWith( - "Parameter", - !resolutionName.Replace("_", string.Empty).Replace("-", string.Empty) - .EqualsOrdinalIgnoreCase(variableDeclarator.Identifier.Text) - ? resolutionName - : null)); - node = node.WithDeclaration( - node.Declaration.WithType( - variableDeclarator.Identifier.Text.ContainsAnyOrdinalIgnoreCase("path", "dir", "file") - ? ParseTypeName(nameof(AbsolutePath)) - : invocationExpression.GetSingleGenericArgumentOrNull() ?? defaultValue.GetExpressionType())); - node = node.WithDeclaration( - node.Declaration - .WithVariables( - SeparatedList(node.Declaration.Variables - .Select(x => x.WithInitializer(nonDefaultValue != null - ? EqualsValueClause(nonDefaultValue) - : null))))); - node = node.WithModifiers(TokenList(Token(SyntaxKind.ReadOnlyKeyword))); - - if (variableDeclarator.Identifier.Text.ContainsAnyOrdinalIgnoreCase("password", "key", "token", "secret", "credentials")) - node = node.AddAttributeLists(CreateAttributeListWith("Secret")); - - return node.WithTriviaFrom(originalNode); - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/RegularFieldRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/RegularFieldRewriter.cs deleted file mode 100644 index f701325c5..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/RegularFieldRewriter.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class RegularFieldRewriter : SafeSyntaxRewriter -{ - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - node = (FieldDeclarationSyntax) base.VisitFieldDeclaration(node).NotNull(); - var initializerValue = node.GetSingleDeclarator().Initializer?.Value; - if (initializerValue != null) - node = node.WithDeclaration(node.Declaration - .WithType(initializerValue.GetExpressionType())); - - return node; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/RemoveUsingDirectivesRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/RemoveUsingDirectivesRewriter.cs deleted file mode 100644 index f1b806dde..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/RemoveUsingDirectivesRewriter.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class RemoveUsingDirectivesRewriter : SafeSyntaxRewriter -{ - public override SyntaxNode VisitUsingDirective(UsingDirectiveSyntax node) - { - return null; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/RenameFieldIdentifierRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/RenameFieldIdentifierRewriter.cs deleted file mode 100644 index f34c732b0..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/RenameFieldIdentifierRewriter.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common.Utilities; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class RenameFieldIdentifierRewriter : SafeSyntaxRewriter -{ - private readonly Dictionary _renames = new(); - - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - if (node.Parent is not CompilationUnitSyntax or ClassDeclarationSyntax) - return node; - - string CreateRename(string name) - => _renames[name] = name.Capitalize().ReplaceKnownWords(); - - var renamedVariables = node.Declaration.Variables - .Select(x => x.WithIdentifier(Identifier(CreateRename(x.Identifier.Text)))); - - return node.WithDeclaration( - node.Declaration.WithVariables( - SeparatedList(renamedVariables))); - } - - public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) - { - return _renames.TryGetValue(node.Identifier.Text, out var rename) - ? IdentifierName(rename) - : node; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/SafeSyntaxRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/SafeSyntaxRewriter.cs deleted file mode 100644 index e0614e8c6..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/SafeSyntaxRewriter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Fallout.Common; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class SafeSyntaxRewriter : CSharpSyntaxRewriter -{ - public override SyntaxNode Visit(SyntaxNode node) - { - try - { - return base.Visit(node); - } - catch (Exception) - { - Host.Warning($"Could not handle fragment '{node.ToFullString().Trim()}', skipping ..."); - return node; - } - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/TargetDefinitionRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/TargetDefinitionRewriter.cs deleted file mode 100644 index 0738e4eac..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/TargetDefinitionRewriter.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.Utilities.Collections; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class TargetDefinitionRewriter : SafeSyntaxRewriter -{ - public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node) - { - node = (InvocationExpressionSyntax) base.VisitInvocationExpression(node).NotNull(); - - if (node.Expression is IdentifierNameSyntax identifierName && - identifierName.Identifier.Text == "Task") - { - return SimpleLambdaExpression(Parameter(Identifier("_"))) - .WithExpressionBody(IdentifierName("_")); - } - - var memberAccessExpression = node.Expression as MemberAccessExpressionSyntax; - // if (memberAccessExpression?.GetIdentifierName() == "IsDependentOn" || - // memberAccessExpression?.GetIdentifierName() == "IsDependeeOf") - // { - // node = node.WithExpression(memberAccessExpression - // .WithName(IdentifierName(memberAccessExpression.GetIdentifierName() - // .Replace("IsDependentOn", nameof(ITargetDefinition.DependsOn)) - // .Replace("IsDependeeOf", nameof(ITargetDefinition.DependentFor))))); - // - // node = node.WithConvertedArguments(x => - // { - // var literalExpression = x as LiteralExpressionSyntax; - // var targetName = literalExpression.GetConstantValue(); - // return IdentifierName(targetName); - // }); - // } - // - // if (memberAccessExpression?.GetIdentifierName() == "WithCriteria") - // { - // node = node.WithExpression(memberAccessExpression - // .WithName(IdentifierName( - // node.GetSingleArgument() == null - // ? nameof(ITargetDefinition.OnlyWhenStatic) - // : nameof(ITargetDefinition.OnlyWhenDynamic)))); - // - // if (node.GetSingleArgument() == null) - // node = node.WithConvertedArguments(ParenthesizedLambdaExpression); - // } - - // if (memberAccessExpression?.GetIdentifierName() == "Does") - // { - // node = node.WithExpression(memberAccessExpression - // .WithName(IdentifierName("Executes"))); - // - // node = node.WithConvertedArguments(x => - // { - // var lambdaExpression = (LambdaExpressionSyntax) x; - // return lambdaExpression.Block != null - // ? lambdaExpression - // : lambdaExpression - // .WithExpressionBody(null) - // .WithBlock(Block(ExpressionStatement(lambdaExpression.ExpressionBody.NotNull()))); - // }); - // } - - return node; - } - - public override SyntaxNode VisitGlobalStatement(GlobalStatementSyntax node) - { - var reducedNode = (GlobalStatementSyntax) base.VisitGlobalStatement(node).NotNull(); - - if (node.Statement is not ExpressionStatementSyntax expressionStatement) - return reducedNode; - - var innerInvocationExpression = (expressionStatement.Expression as InvocationExpressionSyntax) - .Descendants(x => (x.Expression as MemberAccessExpressionSyntax)?.Expression as InvocationExpressionSyntax) - .LastOrDefault(); - - if (innerInvocationExpression?.GetIdentifierName() == "Task") - { - var name = innerInvocationExpression.GetSingleArgument() - .GetConstantValue() - .Replace("-", "_"); - var expression = ((ExpressionStatementSyntax) reducedNode.Statement).Expression; - return PropertyDeclaration(ParseTypeName(nameof(Target)), name) - .WithExpressionBody(ArrowExpressionClause(expression)) - .WithSemicolonToken(expressionStatement.SemicolonToken); - } - - return reducedNode; - } -} diff --git a/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs deleted file mode 100644 index 11801fc82..000000000 --- a/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; - -namespace Fallout.Cli.Rewriting.Cake; - -internal class ToolInvocationRewriter : SafeSyntaxRewriter -{ - private static IEnumerable Replacements => - new ReplacementData[] - { - new(original: "DotNetCoreRestore", replacement: nameof(DotNetTasks.DotNetRestore), positionals: new[] { "ProjectFile" }), - new(original: "DotNetCoreBuild", replacement: nameof(DotNetTasks.DotNetBuild), positionals: new[] { "ProjectFile" }), - new(original: "DotNetCoreTest", replacement: nameof(DotNetTasks.DotNetTest), positionals: new[] { "ProjectFile" }), - new(original: "DotNetCorePack", replacement: nameof(DotNetTasks.DotNetPack), positionals: new[] { "ProjectFile" }), - new(original: "DotNetCorePublish", replacement: nameof(DotNetTasks.DotNetPublish), positionals: new[] { "Project" }), - new(original: "Sign", replacement: nameof(SignToolTasks.SignTool), positionals: new[] { "Files" }), - new(original: "NuGetRestore", replacement: nameof(NuGetTasks.NuGetRestore), positionals: new[] { "TargetPath" }), - new(original: "NuGetPack", replacement: nameof(NuGetTasks.NuGetPack), positionals: new[] { "TargetPath" }), - new(original: "MSBuild", replacement: nameof(MSBuildTasks.MSBuild), positionals: new[] { "TargetPath" }), - }; - - public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node) - { - node = (InvocationExpressionSyntax) base.VisitInvocationExpression(node).NotNull(); - var identifierName = node.GetIdentifierName(); - var replacement = Replacements.SingleOrDefault(x => x.Original == identifierName); - if (replacement == null) - return node; - - var arguments = new List<(string Name, ExpressionSyntax Value)>(); - var settings = node.GetArgumentAt(replacement.Positionals.Length); - - node.Arguments().Take(replacement.Positionals.Length) - .ForEach((x, i) => arguments.Add((replacement.Positionals[i], x))); - settings?.Initializer?.Expressions.Cast() - .ForEach(x => arguments.Add((((IdentifierNameSyntax) x.Left).Identifier.Text, x.Right))); - - ExpressionSyntax expr = IdentifierName("_"); - foreach (var (name, value) in arguments) - { - expr = InvocationExpression( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - expr, - IdentifierName("Set" + replacement.Renames.GetValueOrDefault(name, name)))) - .WithArguments(value); - } - - return InvocationExpression(IdentifierName(replacement.Replacement)) - .WithArguments( - SimpleLambdaExpression(Parameter(Identifier("_"))) - .WithBody(expr)) - .WithTriviaFrom(node); - } - - public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) - { - return node.Identifier.Text == "Append" - ? node.WithIdentifier(Identifier("Add")) - : node; - } - - private class ReplacementData - { - public ReplacementData( - string original, - string replacement, - string[] positionals = null, - Dictionary renames = null) - { - Original = original; - Replacement = replacement; - Positionals = positionals ?? new string[0]; - Renames = renames ?? new Dictionary(); - - Renames.Add("ArgumentCustomization", "ProcessArgumentConfigurator"); - Renames.Add("ToolPath", "ProcessToolPath"); - } - - public string Original { get; } - public string Replacement { get; } - public string[] Positionals { get; } - public Dictionary Renames { get; } - } -} diff --git a/src/Fallout.Cli/templates/Build.cs b/src/Fallout.Cli/templates/Build.cs index 992155c17..52f6a0cba 100644 --- a/src/Fallout.Cli/templates/Build.cs +++ b/src/Fallout.Cli/templates/Build.cs @@ -1,23 +1,22 @@ using System; using System.Linq; -using Fallout.Common; -using Fallout.Common.CI; -using Fallout.Common.Execution; -using Fallout.Common.Git; // GIT -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; // DOTNET -using Fallout.Common.Tools.GitVersion; // GITVERSION -using Fallout.Common.Tools.MSBuild; // MSBUILD -using Fallout.Common.Tools.NuGet; // NUGET && MSBUILD -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.ChangeLog.ChangelogTasks; // CHANGELOG -using static Fallout.Common.EnvironmentInfo; -using static Fallout.Common.IO.PathConstruction; -using static Fallout.Common.Tools.DotNet.DotNetTasks; // DOTNET -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; // MSBUILD -using static Fallout.Common.Tools.NuGet.NuGetTasks; // NUGET && MSBUILD +using Fallout.Application.CI; +using Fallout.Application.Execution; +using Fallout.Application.Git; // GIT +using Fallout.Kernel.IO; +using Fallout.Application.Solutions; +using Fallout.Application.Tooling; +using Fallout.Application.Tools.DotNet; // DOTNET +using Fallout.Application.Tools.GitVersion; // GITVERSION +using Fallout.Application.Tools.MSBuild; // MSBUILD +using Fallout.Application.Tools.NuGet; // NUGET && MSBUILD +using Fallout.Kernel.Collections; +using static Fallout.Application.ChangeLog.ChangelogTasks; // CHANGELOG +using static Fallout.Kernel.EnvironmentInfo; +using static Fallout.Kernel.IO.PathConstruction; +using static Fallout.Application.Tools.DotNet.DotNetTasks; // DOTNET +using static Fallout.Application.Tools.MSBuild.MSBuildTasks; // MSBUILD +using static Fallout.Application.Tools.NuGet.NuGetTasks; // NUGET && MSBUILD [CheckBuildProjectConfigurations] // SOLUTION_FILE [ShutdownDotNetAfterServerBuild] // DOTNET diff --git a/src/Fallout.Cli/templates/_build.csproj b/src/Fallout.Cli/templates/_build.csproj index 54b6ef9ab..4d8a83af9 100644 --- a/src/Fallout.Cli/templates/_build.csproj +++ b/src/Fallout.Cli/templates/_build.csproj @@ -12,7 +12,7 @@ - + // GITVERSION diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStep.cs b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStep.cs deleted file mode 100644 index c25fb30ba..000000000 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStep.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Linq; - -namespace Fallout.Common.CI.AzurePipelines.Configuration; - -public abstract class AzurePipelinesStep : ConfigurationEntity -{ -} diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs b/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs deleted file mode 100644 index 1a691d8a8..000000000 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Linq; - -namespace Fallout.Common.CI.SpaceAutomation.Configuration; - -public abstract class SpaceAutomationTrigger : ConfigurationEntity -{ -} diff --git a/src/Fallout.Common/Fallout.Common.csproj b/src/Fallout.Common/Fallout.Common.csproj deleted file mode 100644 index b0c922b14..000000000 --- a/src/Fallout.Common/Fallout.Common.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - net10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Fallout.Common/Tools/PowerShell/PowerShellTasks.cs b/src/Fallout.Common/Tools/PowerShell/PowerShellTasks.cs deleted file mode 100644 index b5ef996a1..000000000 --- a/src/Fallout.Common/Tools/PowerShell/PowerShellTasks.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using Fallout.Common.Tooling; - -namespace Fallout.Common.Tools.PowerShell; - -partial class PowerShellTasks -{ - protected override string GetToolPath(ToolOptions options = null) - { - return ToolPathResolver.GetPathExecutable(EnvironmentInfo.IsWin ? "powershell" : "pwsh"); - } -} diff --git a/src/Fallout.Core/Execution/ExecutionStatus.cs b/src/Fallout.Domain/Execution/ExecutionStatus.cs similarity index 80% rename from src/Fallout.Core/Execution/ExecutionStatus.cs rename to src/Fallout.Domain/Execution/ExecutionStatus.cs index d48c5a0e9..0de85014e 100644 --- a/src/Fallout.Core/Execution/ExecutionStatus.cs +++ b/src/Fallout.Domain/Execution/ExecutionStatus.cs @@ -1,4 +1,4 @@ -namespace Fallout.Common.Execution; +namespace Fallout.Domain.Execution; public enum ExecutionStatus { diff --git a/src/Fallout.Core/Execution/ITargetModel.cs b/src/Fallout.Domain/Execution/ITargetModel.cs similarity index 97% rename from src/Fallout.Core/Execution/ITargetModel.cs rename to src/Fallout.Domain/Execution/ITargetModel.cs index de86178a9..29685f6ae 100644 --- a/src/Fallout.Core/Execution/ITargetModel.cs +++ b/src/Fallout.Domain/Execution/ITargetModel.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Fallout.Common.Execution; +namespace Fallout.Domain.Execution; /// /// Read-only projection of a build target: its identity, status, and dependency shape. diff --git a/src/Fallout.Core/Fallout.Core.csproj b/src/Fallout.Domain/Fallout.Domain.csproj similarity index 82% rename from src/Fallout.Core/Fallout.Core.csproj rename to src/Fallout.Domain/Fallout.Domain.csproj index 079911a1b..778af8360 100644 --- a/src/Fallout.Core/Fallout.Core.csproj +++ b/src/Fallout.Domain/Fallout.Domain.csproj @@ -1,7 +1,7 @@ - netstandard2.1;net10.0 + net10.0 The reactor core of Fallout — pure domain types and graph algorithms of the build execution pipeline. No I/O, no process, no console, no logging. References nothing else in the repo. diff --git a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponent.cs b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponent.cs similarity index 94% rename from src/Fallout.Core/Planning/Graph/StronglyConnectedComponent.cs rename to src/Fallout.Domain/Planning/Graph/StronglyConnectedComponent.cs index 81d171e0c..1c7322cf2 100644 --- a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponent.cs +++ b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponent.cs @@ -1,7 +1,7 @@ using System.Collections; using System.Collections.Generic; -namespace Fallout.Core.Planning; +namespace Fallout.Domain.Planning; internal class StronglyConnectedComponent : IEnumerable> { diff --git a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponentFinder.cs b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentFinder.cs similarity index 97% rename from src/Fallout.Core/Planning/Graph/StronglyConnectedComponentFinder.cs rename to src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentFinder.cs index 11489cf60..9a7d9a538 100644 --- a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponentFinder.cs +++ b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentFinder.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Fallout.Core.Planning; +namespace Fallout.Domain.Planning; internal class StronglyConnectedComponentFinder { diff --git a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponentList.cs b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentList.cs similarity index 96% rename from src/Fallout.Core/Planning/Graph/StronglyConnectedComponentList.cs rename to src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentList.cs index f2ea8f557..998f9458f 100644 --- a/src/Fallout.Core/Planning/Graph/StronglyConnectedComponentList.cs +++ b/src/Fallout.Domain/Planning/Graph/StronglyConnectedComponentList.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Core.Planning; +namespace Fallout.Domain.Planning; internal class StronglyConnectedComponentList : IEnumerable> { diff --git a/src/Fallout.Core/Planning/Graph/Vertex.cs b/src/Fallout.Domain/Planning/Graph/Vertex.cs similarity index 95% rename from src/Fallout.Core/Planning/Graph/Vertex.cs rename to src/Fallout.Domain/Planning/Graph/Vertex.cs index 2819a4122..1347d2ed6 100644 --- a/src/Fallout.Core/Planning/Graph/Vertex.cs +++ b/src/Fallout.Domain/Planning/Graph/Vertex.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Core.Planning; +namespace Fallout.Domain.Planning; internal class Vertex { diff --git a/src/Fallout.Core/Planning/TopoSort.cs b/src/Fallout.Domain/Planning/TopoSort.cs similarity index 99% rename from src/Fallout.Core/Planning/TopoSort.cs rename to src/Fallout.Domain/Planning/TopoSort.cs index eb0299f2f..d52abe3e2 100644 --- a/src/Fallout.Core/Planning/TopoSort.cs +++ b/src/Fallout.Domain/Planning/TopoSort.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Core.Planning; +namespace Fallout.Domain.Planning; /// /// The outcome of a topological ordering: the ordered nodes, any dependency cycles that were diff --git a/src/Fallout.Core/README.md b/src/Fallout.Domain/README.md similarity index 100% rename from src/Fallout.Core/README.md rename to src/Fallout.Domain/README.md diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyor.Theming.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.Theming.cs similarity index 92% rename from src/Fallout.Common/CI/AppVeyor/AppVeyor.Theming.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.Theming.cs index 9dd8b4413..911c3d396 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyor.Theming.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.Theming.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; -using Fallout.Common.Execution.Theming; +using System.Collections.Generic; using Serilog.Sinks.SystemConsole.Themes; +using Fallout.Application.Execution.Theming; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; public partial class AppVeyor { diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyor.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.cs similarity index 96% rename from src/Fallout.Common/CI/AppVeyor/AppVeyor.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.cs index a9d32edbc..ce012bde4 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyor.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyor.cs @@ -2,10 +2,12 @@ using System.Diagnostics.CodeAnalysis; using System.IO; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; // // [Headers("Accept: application/json")] // public interface IAppVeyorRestClient @@ -26,7 +28,7 @@ public enum AppVeyorMessageCategory /// Interface according to the official website. /// [ExcludeFromCodeCoverage] -public partial class AppVeyor : Host, IBuildServer +public partial class AppVeyor : Host, IBuildServer, IAppVeyor { public new static AppVeyor Instance => Host.Instance as AppVeyor; diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyorAttribute.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorAttribute.cs similarity index 94% rename from src/Fallout.Common/CI/AppVeyor/AppVeyorAttribute.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorAttribute.cs index a0ea0d3b2..8a05fd65a 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyorAttribute.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorAttribute.cs @@ -3,13 +3,14 @@ using System.IO; using System.Linq; using System.Reflection; -using Fallout.Common.CI.AppVeyor.Configuration; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Kernel.Collections; +using Fallout.Kernel.IO; +using Fallout.Infrastructure.CI.AppVeyor.Configuration; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorImage.cs similarity index 89% rename from src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorImage.cs index b870f7c75..2c71600d7 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorImage.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; /// /// See Build environment diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyorSecretAttribute.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorSecretAttribute.cs similarity index 85% rename from src/Fallout.Common/CI/AppVeyor/AppVeyorSecretAttribute.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorSecretAttribute.cs index 830fffd42..aa4a79224 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyorSecretAttribute.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorSecretAttribute.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class AppVeyorSecretAttribute : Attribute diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyorService.cs b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorService.cs similarity index 91% rename from src/Fallout.Common/CI/AppVeyor/AppVeyorService.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorService.cs index 2bfd3551f..4f797f9c3 100644 --- a/src/Fallout.Common/CI/AppVeyor/AppVeyorService.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/AppVeyorService.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.AppVeyor; +namespace Fallout.Infrastructure.CI.AppVeyor; /// /// diff --git a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorBranches.cs b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorBranches.cs similarity index 79% rename from src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorBranches.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorBranches.cs index cb2f721f8..81d6c0160 100644 --- a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorBranches.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorBranches.cs @@ -1,9 +1,10 @@ using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.AppVeyor.Configuration; +namespace Fallout.Infrastructure.CI.AppVeyor.Configuration; public class AppVeyorBranches : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorConfiguration.cs similarity index 94% rename from src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorConfiguration.cs index 4e76c58d6..d2b8f609c 100644 --- a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorConfiguration.cs @@ -1,11 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.AppVeyor; -namespace Fallout.Common.CI.AppVeyor.Configuration; +namespace Fallout.Infrastructure.CI.AppVeyor.Configuration; public class AppVeyorConfiguration : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs similarity index 72% rename from src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs rename to src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs index 5e753554a..360a53363 100644 --- a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs +++ b/src/Fallout.Infrastructure.CI/AppVeyor/Configuration/AppVeyorCustomWriterExtensions.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.AppVeyor.Configuration; +namespace Fallout.Infrastructure.CI.AppVeyor.Configuration; public static class AppVeyorCustomWriterExtensions { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelines.Theming.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.Theming.cs similarity index 93% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelines.Theming.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.Theming.cs index 160de8739..d6f1a9fc1 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelines.Theming.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.Theming.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; -using Fallout.Common.Execution.Theming; -using Fallout.Common.Utilities; using Serilog.Sinks.SystemConsole.Themes; +using Fallout.Application.Execution.Theming; +using Fallout.Kernel; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; public partial class AzurePipelines { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelines.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.cs similarity index 97% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelines.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.cs index 93f66e267..18fee4853 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelines.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelines.cs @@ -1,18 +1,20 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; /// /// Interface according to the official website. /// Azure Pipeline Tasks Documentation /// [ExcludeFromCodeCoverage] -public partial class AzurePipelines : Host, IBuildServer +public partial class AzurePipelines : Host, IBuildServer, IAzurePipelines { public new static AzurePipelines Instance => Host.Instance as AzurePipelines; diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesAttribute.cs similarity index 96% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesAttribute.cs index b6bf766b9..0537789a6 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesAttribute.cs @@ -1,16 +1,18 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.CI.AzurePipelines.Configuration; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using static Fallout.Common.IO.PathConstruction; - -namespace Fallout.Common.CI.AzurePipelines; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.AzurePipelines.Configuration; + +namespace Fallout.Infrastructure.CI.AzurePipelines; [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class AzurePipelinesAttribute : ChainedConfigurationAttributeBase diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesBuildReason.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesBuildReason.cs similarity index 93% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesBuildReason.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesBuildReason.cs index c94bd07e4..d73518023 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesBuildReason.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesBuildReason.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; public enum AzurePipelinesBuildReason { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCachePaths.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesCachePaths.cs similarity index 85% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCachePaths.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesCachePaths.cs index e6908b071..0f3e1b210 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesCachePaths.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesCachePaths.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; // https://docs.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops public static class AzurePipelinesCachePaths diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesImage.cs similarity index 88% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesImage.cs index f03f9b282..635f65aa5 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesImage.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; /// /// See Microsoft-hosted agents diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesIssueType.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesIssueType.cs similarity index 56% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesIssueType.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesIssueType.cs index 750b376a8..345388e99 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesIssueType.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesIssueType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; public enum AzurePipelinesIssueType { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesJobStatus.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesJobStatus.cs similarity index 65% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesJobStatus.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesJobStatus.cs index 5ce6581d9..e7ef10a1c 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesJobStatus.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesJobStatus.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; public enum AzurePipelinesJobStatus { diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesRepositoryType.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesRepositoryType.cs similarity index 91% rename from src/Fallout.Common/CI/AzurePipelines/AzurePipelinesRepositoryType.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesRepositoryType.cs index 498dbada3..1bec24f2b 100644 --- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesRepositoryType.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/AzurePipelinesRepositoryType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.AzurePipelines; +namespace Fallout.Infrastructure.CI.AzurePipelines; public enum AzurePipelinesRepositoryType { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs similarity index 91% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs index 3b1633d9b..3b256daa6 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelineCheckoutStep.cs @@ -1,6 +1,6 @@ -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; // https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git?view=azure-devops&tabs=yaml#checkout-submodules public class AzurePipelineCheckoutStep : AzurePipelinesStep diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs similarity index 84% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs index 555712c7b..19a03e961 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs @@ -1,9 +1,11 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Tooling; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.AzurePipelines; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; // https://docs.microsoft.com/en-us/azure/devops/pipelines/release/caching public class AzurePipelinesCacheStep : AzurePipelinesStep diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs similarity index 86% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs index 1a9b7ed80..0650d01cb 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCmdStep.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesCmdStep : AzurePipelinesStep { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs similarity index 87% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs index 327fa509b..3ee18257a 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesConfiguration.cs @@ -1,7 +1,8 @@ -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesConfiguration : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs similarity index 72% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs index 0d86dbd2d..6f5efcaec 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesCustomWriterExtensions.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public static class AzurePipelinesCustomWriterExtensions { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs similarity index 81% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs index 759ff7fab..a40f3032a 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesDownloadStep.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesDownloadStep : AzurePipelinesStep { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesJob.cs similarity index 82% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesJob.cs index 90ad9ba37..1764033ed 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesJob.cs @@ -1,10 +1,13 @@ using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Infrastructure.CI.AzurePipelines; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesJob : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs similarity index 82% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs index de71af96a..36c8ae90a 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesPublishStep.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesPublishStep : AzurePipelinesStep { diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStage.cs similarity index 78% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStage.cs index 749858e6d..785e855dc 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStage.cs @@ -1,10 +1,13 @@ using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Infrastructure.CI.AzurePipelines; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesStage : ConfigurationEntity { diff --git a/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStep.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStep.cs new file mode 100644 index 000000000..1e1670332 --- /dev/null +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesStep.cs @@ -0,0 +1,9 @@ +using System; +using System.Linq; +using Fallout.Application.CI; + +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; + +public abstract class AzurePipelinesStep : ConfigurationEntity +{ +} diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs similarity index 91% rename from src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs rename to src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs index a5bc905e2..65759b619 100644 --- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs +++ b/src/Fallout.Infrastructure.CI/AzurePipelines/Configuration/AzurePipelinesVcsPushTrigger.cs @@ -1,8 +1,9 @@ -using System.Collections.Generic; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using System.Collections.Generic; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.AzurePipelines.Configuration; +namespace Fallout.Infrastructure.CI.AzurePipelines.Configuration; public class AzurePipelinesVcsPushTrigger : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/Bamboo/Bamboo.cs b/src/Fallout.Infrastructure.CI/Bamboo/Bamboo.cs similarity index 94% rename from src/Fallout.Common/CI/Bamboo/Bamboo.cs rename to src/Fallout.Infrastructure.CI/Bamboo/Bamboo.cs index a963ae45c..d672b987b 100644 --- a/src/Fallout.Common/CI/Bamboo/Bamboo.cs +++ b/src/Fallout.Infrastructure.CI/Bamboo/Bamboo.cs @@ -1,7 +1,10 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI.Bamboo; +namespace Fallout.Infrastructure.CI.Bamboo; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/Bitbucket/Bitbucket.cs b/src/Fallout.Infrastructure.CI/Bitbucket/Bitbucket.cs similarity index 97% rename from src/Fallout.Common/CI/Bitbucket/Bitbucket.cs rename to src/Fallout.Infrastructure.CI/Bitbucket/Bitbucket.cs index cc79eabf9..01a613215 100644 --- a/src/Fallout.Common/CI/Bitbucket/Bitbucket.cs +++ b/src/Fallout.Infrastructure.CI/Bitbucket/Bitbucket.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI.Bitbucket; +namespace Fallout.Infrastructure.CI.Bitbucket; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/Bitrise/Bitrise.cs b/src/Fallout.Infrastructure.CI/Bitrise/Bitrise.cs similarity index 94% rename from src/Fallout.Common/CI/Bitrise/Bitrise.cs rename to src/Fallout.Infrastructure.CI/Bitrise/Bitrise.cs index 3a6920d61..b71f1a409 100644 --- a/src/Fallout.Common/CI/Bitrise/Bitrise.cs +++ b/src/Fallout.Infrastructure.CI/Bitrise/Bitrise.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Kernel; -namespace Fallout.Common.CI.Bitrise; +namespace Fallout.Infrastructure.CI.Bitrise; /// /// Interface according to the official website. diff --git a/src/Fallout.Infrastructure.CI/Fallout.Infrastructure.CI.csproj b/src/Fallout.Infrastructure.CI/Fallout.Infrastructure.CI.csproj new file mode 100644 index 000000000..1a11519d8 --- /dev/null +++ b/src/Fallout.Infrastructure.CI/Fallout.Infrastructure.CI.csproj @@ -0,0 +1,21 @@ + + + + net10.0 + CI host adapters (GitHub Actions, TeamCity, Azure Pipelines, …) behind Fallout.Application.CI ports. + + + + + + + + + + + + + + + + diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs similarity index 85% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs index ae5269c64..a1d71ea7a 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsArtifactStep.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsArtifactStep : GitHubActionsStep { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs similarity index 85% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs index d1fb7da89..e919f5b0a 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCacheStep.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; // https://github.com/actions/cache public class GitHubActionsCacheStep : GitHubActionsStep diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs similarity index 91% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs index 2f2cdb624..cf13bee58 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsCheckoutStep.cs @@ -1,8 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.GitHubActions; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsCheckoutStep : GitHubActionsStep { @@ -16,7 +18,7 @@ public class GitHubActionsCheckoutStep : GitHubActionsStep /// The git ref to check out. When unset, actions/checkout picks the default for the event /// (the merge SHA on pull_request triggers, which leaves HEAD detached). Set to /// ${{ github.head_ref }} on PR workflows that read .git/HEAD directly - /// (e.g. ) so the branch + /// (e.g. ) so the branch /// resolves correctly. When set, the generator also emits a repository: line that /// resolves to the PR head's repo for fork PRs and falls back to the current repo for push /// events — without it, fork PRs fail with "branch or tag could not be found" because the diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs similarity index 89% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs index 97ad0c9c4..32abfe64e 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs @@ -1,9 +1,12 @@ using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Infrastructure.CI.GitHubActions; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsConfiguration : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs similarity index 54% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs index a79de83ca..5e7e18127 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsDetailedTrigger.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application.CI; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public abstract class GitHubActionsDetailedTrigger : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsJob.cs similarity index 90% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsJob.cs index ab19c6ad4..5f3d577d9 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsJob.cs @@ -1,10 +1,13 @@ using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Infrastructure.CI.GitHubActions; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsJob : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsRunStep.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsRunStep.cs similarity index 89% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsRunStep.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsRunStep.cs index 5ff03f0cb..d800d72be 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsRunStep.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsRunStep.cs @@ -1,8 +1,9 @@ using System.Collections.Generic; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsRunStep : GitHubActionsStep { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs similarity index 77% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs index 2814cdd84..a5632efe9 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsScheduledTrigger.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsScheduledTrigger : GitHubActionsDetailedTrigger { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsStep.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsStep.cs similarity index 51% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsStep.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsStep.cs index 4971b527a..2076fb3ae 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsStep.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsStep.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application.CI; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public abstract class GitHubActionsStep : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs similarity index 91% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs index 50b0ce47f..b67178b82 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs @@ -1,10 +1,12 @@ using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; +using Fallout.Infrastructure.CI.GitHubActions; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsVcsTrigger : GitHubActionsDetailedTrigger { diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs similarity index 86% rename from src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs index bf4b77490..89500c51c 100644 --- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/Configuration/GitHubActionsWorkflowDispatchTrigger.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.GitHubActions.Configuration; +namespace Fallout.Infrastructure.CI.GitHubActions.Configuration; public class GitHubActionsWorkflowDispatchTrigger : GitHubActionsDetailedTrigger { diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActions.Client.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Client.cs similarity index 87% rename from src/Fallout.Common/CI/GitHubActions/GitHubActions.Client.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Client.cs index 0f0388729..8d790ee8a 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActions.Client.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Client.cs @@ -1,11 +1,11 @@ -using System.Linq; +using System.Linq; using System.Net.Http; using System.Text.Json.Nodes; using System.Threading.Tasks; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Net; +using Fallout.Kernel.Net; +using Fallout.Kernel; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; public partial class GitHubActions { diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActions.Theming.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Theming.cs similarity index 86% rename from src/Fallout.Common/CI/GitHubActions/GitHubActions.Theming.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Theming.cs index 2dcc184f8..2c95bea07 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActions.Theming.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.Theming.cs @@ -1,8 +1,8 @@ -using System; -using Fallout.Common.Execution.Theming; -using Fallout.Common.Utilities; +using System; +using Fallout.Application.Execution.Theming; +using Fallout.Kernel; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; public partial class GitHubActions { diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.cs similarity index 96% rename from src/Fallout.Common/CI/GitHubActions/GitHubActions.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.cs index 0e76cf618..cc65014f3 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActions.cs @@ -7,17 +7,19 @@ using System.Net.Http.Headers; using System.Text; using System.Text.Json.Nodes; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; /// /// Interface according to the official website. /// [ExcludeFromCodeCoverage] -public partial class GitHubActions : Host, IBuildServer +public partial class GitHubActions : Host, IBuildServer, IGitHubActions { internal static bool IsRunningGitHubActions => EnvironmentInfo.HasVariable("GITHUB_ACTIONS"); diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsAttribute.cs similarity index 97% rename from src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsAttribute.cs index 98c870cd8..82a2dbf42 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsAttribute.cs @@ -1,15 +1,17 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.CI.GitHubActions.Configuration; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; - -namespace Fallout.Common.CI.GitHubActions; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.GitHubActions.Configuration; + +namespace Fallout.Infrastructure.CI.GitHubActions; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsImage.cs similarity index 89% rename from src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsImage.cs index f2e38554e..7050b0aba 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsImage.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; /// /// See Virtual environments for GitHub Actions diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsPermissions.cs similarity index 87% rename from src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsPermissions.cs index a69838d35..7fa3cb855 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsPermissions.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; public enum GitHubActionsPermissions { diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsSubmodules.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsSubmodules.cs similarity index 68% rename from src/Fallout.Common/CI/GitHubActions/GitHubActionsSubmodules.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsSubmodules.cs index 7ce5a1594..8ee22fa59 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsSubmodules.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsSubmodules.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; public enum GitHubActionsSubmodules { diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsTrigger.cs similarity index 70% rename from src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs rename to src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsTrigger.cs index f96098337..636c72ce7 100644 --- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs +++ b/src/Fallout.Infrastructure.CI/GitHubActions/GitHubActionsTrigger.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Tooling; +using Fallout.Application.Tooling; -namespace Fallout.Common.CI.GitHubActions; +namespace Fallout.Infrastructure.CI.GitHubActions; public enum GitHubActionsTrigger { diff --git a/src/Fallout.Common/CI/GitLab/GitLab.Theming.cs b/src/Fallout.Infrastructure.CI/GitLab/GitLab.Theming.cs similarity index 72% rename from src/Fallout.Common/CI/GitLab/GitLab.Theming.cs rename to src/Fallout.Infrastructure.CI/GitLab/GitLab.Theming.cs index 1c917f5f7..59f2589c9 100644 --- a/src/Fallout.Common/CI/GitLab/GitLab.Theming.cs +++ b/src/Fallout.Infrastructure.CI/GitLab/GitLab.Theming.cs @@ -1,8 +1,8 @@ -using System; -using Fallout.Common.Execution.Theming; -using Fallout.Common.Utilities; +using System; +using Fallout.Application.Execution.Theming; +using Fallout.Kernel; -namespace Fallout.Common.CI.GitLab; +namespace Fallout.Infrastructure.CI.GitLab; public partial class GitLab { diff --git a/src/Fallout.Common/CI/GitLab/GitLab.cs b/src/Fallout.Infrastructure.CI/GitLab/GitLab.cs similarity index 99% rename from src/Fallout.Common/CI/GitLab/GitLab.cs rename to src/Fallout.Infrastructure.CI/GitLab/GitLab.cs index c89fe2746..41add550c 100644 --- a/src/Fallout.Common/CI/GitLab/GitLab.cs +++ b/src/Fallout.Infrastructure.CI/GitLab/GitLab.cs @@ -1,9 +1,11 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI.GitLab; +namespace Fallout.Infrastructure.CI.GitLab; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/GitLab/GitLabProjectVisibility.cs b/src/Fallout.Infrastructure.CI/GitLab/GitLabProjectVisibility.cs similarity index 63% rename from src/Fallout.Common/CI/GitLab/GitLabProjectVisibility.cs rename to src/Fallout.Infrastructure.CI/GitLab/GitLabProjectVisibility.cs index 3d7ff8827..e58206a36 100644 --- a/src/Fallout.Common/CI/GitLab/GitLabProjectVisibility.cs +++ b/src/Fallout.Infrastructure.CI/GitLab/GitLabProjectVisibility.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.GitLab; +namespace Fallout.Infrastructure.CI.GitLab; public enum GitLabProjectVisibility { diff --git a/src/Fallout.Common/CI/Jenkins/Jenkins.cs b/src/Fallout.Infrastructure.CI/Jenkins/Jenkins.cs similarity index 97% rename from src/Fallout.Common/CI/Jenkins/Jenkins.cs rename to src/Fallout.Infrastructure.CI/Jenkins/Jenkins.cs index 7707c14b1..5a340f49c 100644 --- a/src/Fallout.Common/CI/Jenkins/Jenkins.cs +++ b/src/Fallout.Infrastructure.CI/Jenkins/Jenkins.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI.Jenkins; +namespace Fallout.Infrastructure.CI.Jenkins; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs similarity index 88% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs index 7e26eb7ec..b48b7301e 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationConfiguration.cs @@ -1,8 +1,10 @@ -using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using System.Linq; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public class SpaceAutomationConfiguration : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs similarity index 84% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs index 4e950362f..b2ce23877 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationContainer.cs @@ -1,10 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public class SpaceAutomationContainer : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs similarity index 67% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs index 92a0dd6f2..a82cee67e 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCronScheduleTrigger.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public class SpaceAutomationCronScheduleTrigger : SpaceAutomationTrigger { diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs similarity index 87% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs index 79e1d096f..6b3e5f11d 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationCustomWriterExtensions.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public static class SpaceAutomationCustomWriterExtensions { diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs similarity index 93% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs index 25bdb3782..1729280f1 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationPushTrigger.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public class SpaceAutomationPushTrigger : SpaceAutomationTrigger { diff --git a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs similarity index 78% rename from src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs index 07784c3d5..35859051b 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationResources.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.SpaceAutomation.Configuration; +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; public class SpaceAutomationResources : ConfigurationEntity { diff --git a/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs new file mode 100644 index 000000000..b457d4afb --- /dev/null +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/Configuration/SpaceAutomationTrigger.cs @@ -0,0 +1,9 @@ +using System; +using System.Linq; +using Fallout.Application.CI; + +namespace Fallout.Infrastructure.CI.SpaceAutomation.Configuration; + +public abstract class SpaceAutomationTrigger : ConfigurationEntity +{ +} diff --git a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.Theming.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.Theming.cs similarity index 57% rename from src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.Theming.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.Theming.cs index 253e8b538..84425c2d4 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.Theming.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.Theming.cs @@ -1,6 +1,6 @@ -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common.CI.SpaceAutomation; +namespace Fallout.Infrastructure.CI.SpaceAutomation; public partial class SpaceAutomation { diff --git a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.cs similarity index 92% rename from src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.cs index 54efe276e..66634e26d 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomation.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomation.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.CI.SpaceAutomation; +namespace Fallout.Infrastructure.CI.SpaceAutomation; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomationAttribute.cs b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomationAttribute.cs similarity index 94% rename from src/Fallout.Common/CI/SpaceAutomation/SpaceAutomationAttribute.cs rename to src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomationAttribute.cs index d14cdd31e..73ef7ae23 100644 --- a/src/Fallout.Common/CI/SpaceAutomation/SpaceAutomationAttribute.cs +++ b/src/Fallout.Infrastructure.CI/SpaceAutomation/SpaceAutomationAttribute.cs @@ -1,13 +1,15 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.CI.SpaceAutomation.Configuration; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Utilities; - -namespace Fallout.Common.CI.SpaceAutomation; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.SpaceAutomation.Configuration; + +namespace Fallout.Infrastructure.CI.SpaceAutomation; [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class SpaceAutomationAttribute : ConfigurationAttributeBase diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityArtifactDependency.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityArtifactDependency.cs similarity index 81% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityArtifactDependency.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityArtifactDependency.cs index bf9080c54..53face862 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityArtifactDependency.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityArtifactDependency.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityArtifactDependency : TeamCityDependency { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildType.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildType.cs similarity index 95% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildType.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildType.cs index 30bf70cc7..0eb1b4b74 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildType.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildType.cs @@ -1,8 +1,10 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityBuildType : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs similarity index 83% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs index 530945720..6714c2734 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityBuildTypeVcsRoot.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityBuildTypeVcsRoot : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfiguration.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfiguration.cs similarity index 84% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfiguration.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfiguration.cs index 49fd4ce09..3e6c29094 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfiguration.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfiguration.cs @@ -1,9 +1,11 @@ using System; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityConfiguration : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs similarity index 94% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs index 3bbe95cff..435ada31f 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityConfigurationParameter.cs @@ -1,9 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityConfigurationParameter : TeamCityParameter { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs similarity index 89% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs index 75b9a1546..469b04b80 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityCustomWriterExtensions.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public static class TeamCityCustomWriterExtensions { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependency.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependency.cs similarity index 53% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependency.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependency.cs index 995ee019a..9b7b3bbf4 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependency.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependency.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application.CI; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public abstract class TeamCityDependency : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs similarity index 75% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs index dfe57f1f2..4ddecedde 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityDependencyFailureAction.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public enum TeamCityDependencyFailureAction { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs similarity index 76% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs index 65d3bdbc1..328b4dbee 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityFinishBuildTrigger.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityFinishBuildTrigger : TeamCityTrigger { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs similarity index 85% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs index 54c28ba41..c02b64e3c 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityKeyValueParameter.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityKeyValueParameter : TeamCityParameter { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameter.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameter.cs similarity index 52% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameter.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameter.cs index 647d3d2ae..96079cea3 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameter.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameter.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application.CI; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public abstract class TeamCityParameter : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterDisplay.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterDisplay.cs similarity index 64% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterDisplay.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterDisplay.cs index 24929f333..0b0cfd236 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterDisplay.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterDisplay.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public enum TeamCityParameterDisplay { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterType.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterType.cs similarity index 67% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterType.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterType.cs index 940f2c943..7351da2a6 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityParameterType.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityParameterType.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public enum TeamCityParameterType { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityProject.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityProject.cs similarity index 87% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityProject.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityProject.cs index 74bd74de6..52b1079de 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityProject.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityProject.cs @@ -1,8 +1,10 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityProject : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs similarity index 91% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs index 82a283544..6f1cea28d 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityScheduledTrigger.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityScheduledTrigger : TeamCityTrigger { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs similarity index 87% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs index d8358967e..0655d56e0 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCitySnapshotDependency.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCitySnapshotDependency : TeamCityDependency { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityTrigger.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityTrigger.cs similarity index 52% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityTrigger.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityTrigger.cs index fa302d64a..c0dc272e1 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityTrigger.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityTrigger.cs @@ -1,7 +1,8 @@ using System; using System.Linq; +using Fallout.Application.CI; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public abstract class TeamCityTrigger : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsRoot.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsRoot.cs similarity index 62% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsRoot.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsRoot.cs index 0435792b9..e4e16b4f4 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsRoot.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsRoot.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.CI; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityVcsRoot : ConfigurationEntity { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsTrigger.cs b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsTrigger.cs similarity index 81% rename from src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsTrigger.cs rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsTrigger.cs index af6010d08..0e11ceed2 100644 --- a/src/Fallout.Common/CI/TeamCity/Configuration/TeamCityVcsTrigger.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/TeamCityVcsTrigger.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Utilities; -namespace Fallout.Common.CI.TeamCity.Configuration; +namespace Fallout.Infrastructure.CI.TeamCity.Configuration; public class TeamCityVcsTrigger : TeamCityTrigger { diff --git a/src/Fallout.Common/CI/TeamCity/Configuration/pom.xml b/src/Fallout.Infrastructure.CI/TeamCity/Configuration/pom.xml similarity index 100% rename from src/Fallout.Common/CI/TeamCity/Configuration/pom.xml rename to src/Fallout.Infrastructure.CI/TeamCity/Configuration/pom.xml diff --git a/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs b/src/Fallout.Infrastructure.CI/TeamCity/DotNetBuildSettingsExtensions.cs similarity index 82% rename from src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs rename to src/Fallout.Infrastructure.CI/TeamCity/DotNetBuildSettingsExtensions.cs index 1298e4cca..b059f3c90 100644 --- a/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/DotNetBuildSettingsExtensions.cs @@ -1,9 +1,11 @@ using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; +using Fallout.Application.Tools.DotNet; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public static class DotNetBuildSettingsExtensions { diff --git a/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs b/src/Fallout.Infrastructure.CI/TeamCity/DotNetTestSettingsExtensions.cs similarity index 78% rename from src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs rename to src/Fallout.Infrastructure.CI/TeamCity/DotNetTestSettingsExtensions.cs index ec8653064..aeb960c1d 100644 --- a/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/DotNetTestSettingsExtensions.cs @@ -1,9 +1,11 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; +using Fallout.Application.Tools.DotNet; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public static class DotNetTestSettingsExtensions { diff --git a/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs b/src/Fallout.Infrastructure.CI/TeamCity/MSBuildSettingsExtensions.cs similarity index 82% rename from src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs rename to src/Fallout.Infrastructure.CI/TeamCity/MSBuildSettingsExtensions.cs index 0dcd951b0..047f598ea 100644 --- a/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/MSBuildSettingsExtensions.cs @@ -1,8 +1,9 @@ using System; using System.Linq; -using Fallout.Common.Tools.MSBuild; +using Fallout.Application.Tools.MSBuild; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public static class MSBuildSettingsExtensions { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCity.Theming.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCity.Theming.cs similarity index 84% rename from src/Fallout.Common/CI/TeamCity/TeamCity.Theming.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCity.Theming.cs index a670029cb..9ed73072b 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCity.Theming.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCity.Theming.cs @@ -1,9 +1,9 @@ -using System; -using Fallout.Common.Execution; -using Fallout.Common.Execution.Theming; -using Fallout.Common.Utilities; +using System; +using Fallout.Application.Execution.Theming; +using Fallout.Application.Execution; +using Fallout.Kernel; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public partial class TeamCity { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCity.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCity.cs similarity index 97% rename from src/Fallout.Common/CI/TeamCity/TeamCity.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCity.cs index b12931127..7427a7025 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCity.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCity.cs @@ -1,22 +1,24 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics.CodeAnalysis; 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; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Application.Tools.DotCover; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; /// /// Interface according to the official website. /// [ExcludeFromCodeCoverage] -public partial class TeamCity : Host, IBuildServer +public partial class TeamCity : Host, IBuildServer, ITeamCity { public new static TeamCity Instance => Host.Instance as TeamCity; diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityAttribute.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityAttribute.cs similarity index 97% rename from src/Fallout.Common/CI/TeamCity/TeamCityAttribute.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityAttribute.cs index 04453628b..e48b1888e 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityAttribute.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityAttribute.cs @@ -5,16 +5,18 @@ using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.CI.TeamCity.Configuration; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; -using Fallout.Common.ValueInjection; -using static Fallout.Common.IO.PathConstruction; - -namespace Fallout.Common.CI.TeamCity; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Application.CI; +using Fallout.Application.Utilities; +using Fallout.Application.Execution; +using Fallout.Application.ValueInjection; +using Fallout.Application; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Infrastructure.CI.TeamCity.Configuration; + +namespace Fallout.Infrastructure.CI.TeamCity; public class TeamCityAttribute : ChainedConfigurationAttributeBase { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityImportTool.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportTool.cs similarity index 82% rename from src/Fallout.Common/CI/TeamCity/TeamCityImportTool.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportTool.cs index 967f97e28..da96972b8 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityImportTool.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportTool.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public enum TeamCityImportTool { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityImportType.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportType.cs similarity index 95% rename from src/Fallout.Common/CI/TeamCity/TeamCityImportType.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportType.cs index b7d119c28..bb3dec46b 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityImportType.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityImportType.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public enum TeamCityImportType { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityNoDataPublishedAction.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityNoDataPublishedAction.cs similarity index 73% rename from src/Fallout.Common/CI/TeamCity/TeamCityNoDataPublishedAction.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityNoDataPublishedAction.cs index 1d193fa68..22bde0a92 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityNoDataPublishedAction.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityNoDataPublishedAction.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; public enum TeamCityNoDataPublishedAction { diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityStatus.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityStatus.cs similarity index 81% rename from src/Fallout.Common/CI/TeamCity/TeamCityStatus.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityStatus.cs index 69155e424..026900e32 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityStatus.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityStatus.cs @@ -2,7 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; [SuppressMessage("ReSharper", "InconsistentNaming")] public enum TeamCityStatus diff --git a/src/Fallout.Common/CI/TeamCity/TeamCityTokenAttribute.cs b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityTokenAttribute.cs similarity index 84% rename from src/Fallout.Common/CI/TeamCity/TeamCityTokenAttribute.cs rename to src/Fallout.Infrastructure.CI/TeamCity/TeamCityTokenAttribute.cs index 397569868..dda909c07 100644 --- a/src/Fallout.Common/CI/TeamCity/TeamCityTokenAttribute.cs +++ b/src/Fallout.Infrastructure.CI/TeamCity/TeamCityTokenAttribute.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.CI.TeamCity; +namespace Fallout.Infrastructure.CI.TeamCity; [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class TeamCityTokenAttribute : Attribute diff --git a/src/Fallout.Common/CI/TravisCI/TravisCI.Theming.cs b/src/Fallout.Infrastructure.CI/TravisCI/TravisCI.Theming.cs similarity index 77% rename from src/Fallout.Common/CI/TravisCI/TravisCI.Theming.cs rename to src/Fallout.Infrastructure.CI/TravisCI/TravisCI.Theming.cs index 2fe5ecfb4..9e9739806 100644 --- a/src/Fallout.Common/CI/TravisCI/TravisCI.Theming.cs +++ b/src/Fallout.Infrastructure.CI/TravisCI/TravisCI.Theming.cs @@ -1,7 +1,7 @@ -using System; -using Fallout.Common.Utilities; +using System; +using Fallout.Kernel; -namespace Fallout.Common.CI.TravisCI; +namespace Fallout.Infrastructure.CI.TravisCI; public partial class TravisCI { diff --git a/src/Fallout.Common/CI/TravisCI/TravisCI.cs b/src/Fallout.Infrastructure.CI/TravisCI/TravisCI.cs similarity index 98% rename from src/Fallout.Common/CI/TravisCI/TravisCI.cs rename to src/Fallout.Infrastructure.CI/TravisCI/TravisCI.cs index 3065a9148..fb90c67b1 100644 --- a/src/Fallout.Common/CI/TravisCI/TravisCI.cs +++ b/src/Fallout.Infrastructure.CI/TravisCI/TravisCI.cs @@ -1,8 +1,11 @@ -using System; +using System; using System.Diagnostics.CodeAnalysis; using System.Linq; +using Fallout.Application; +using Fallout.Application.CI; +using Fallout.Kernel; -namespace Fallout.Common.CI.TravisCI; +namespace Fallout.Infrastructure.CI.TravisCI; /// /// Interface according to the official website. diff --git a/src/Fallout.Common/CI/TravisCI/TravisCIEventType.cs b/src/Fallout.Infrastructure.CI/TravisCI/TravisCIEventType.cs similarity index 70% rename from src/Fallout.Common/CI/TravisCI/TravisCIEventType.cs rename to src/Fallout.Infrastructure.CI/TravisCI/TravisCIEventType.cs index e5cb6e562..f40c79b1b 100644 --- a/src/Fallout.Common/CI/TravisCI/TravisCIEventType.cs +++ b/src/Fallout.Infrastructure.CI/TravisCI/TravisCIEventType.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; // ReSharper disable InconsistentNaming -namespace Fallout.Common.CI.TravisCI; +namespace Fallout.Infrastructure.CI.TravisCI; public enum TravisCIEventType { diff --git a/src/Fallout.ProjectModel/Fallout.ProjectModel.csproj b/src/Fallout.Infrastructure.ProjectModel/Fallout.Infrastructure.ProjectModel.csproj similarity index 63% rename from src/Fallout.ProjectModel/Fallout.ProjectModel.csproj rename to src/Fallout.Infrastructure.ProjectModel/Fallout.Infrastructure.ProjectModel.csproj index 15af5755c..9a7c18be8 100644 --- a/src/Fallout.ProjectModel/Fallout.ProjectModel.csproj +++ b/src/Fallout.Infrastructure.ProjectModel/Fallout.Infrastructure.ProjectModel.csproj @@ -5,9 +5,7 @@ - - - + @@ -18,4 +16,14 @@ + + + + + + + + + + diff --git a/src/Fallout.ProjectModel/Project.GetMSBuildProject.cs b/src/Fallout.Infrastructure.ProjectModel/Project.GetMSBuildProject.cs similarity index 81% rename from src/Fallout.ProjectModel/Project.GetMSBuildProject.cs rename to src/Fallout.Infrastructure.ProjectModel/Project.GetMSBuildProject.cs index f37b8b3a4..9b21fde1e 100644 --- a/src/Fallout.ProjectModel/Project.GetMSBuildProject.cs +++ b/src/Fallout.Infrastructure.ProjectModel/Project.GetMSBuildProject.cs @@ -1,6 +1,7 @@ -using Fallout.Common; +using Fallout.Kernel; +using Fallout.Application.Solutions; -namespace Fallout.Solutions; +namespace Fallout.Infrastructure.ProjectModel; public static partial class ProjectExtensions { diff --git a/src/Fallout.ProjectModel/Project.Items.cs b/src/Fallout.Infrastructure.ProjectModel/Project.Items.cs similarity index 95% rename from src/Fallout.ProjectModel/Project.Items.cs rename to src/Fallout.Infrastructure.ProjectModel/Project.Items.cs index faf415cb5..e2859d128 100644 --- a/src/Fallout.ProjectModel/Project.Items.cs +++ b/src/Fallout.Infrastructure.ProjectModel/Project.Items.cs @@ -1,10 +1,10 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common; +using Fallout.Kernel; +using Fallout.Application.Solutions; -namespace Fallout.Solutions; +namespace Fallout.Infrastructure.ProjectModel; public static partial class ProjectExtensions { diff --git a/src/Fallout.ProjectModel/Project.Misc.cs b/src/Fallout.Infrastructure.ProjectModel/Project.Misc.cs similarity index 86% rename from src/Fallout.ProjectModel/Project.Misc.cs rename to src/Fallout.Infrastructure.ProjectModel/Project.Misc.cs index 8a834a3ed..f1fe5d7c2 100644 --- a/src/Fallout.ProjectModel/Project.Misc.cs +++ b/src/Fallout.Infrastructure.ProjectModel/Project.Misc.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common; +using Fallout.Kernel; +using Fallout.Application.Solutions; -namespace Fallout.Solutions; +namespace Fallout.Infrastructure.ProjectModel; public static partial class ProjectExtensions { @@ -39,14 +40,6 @@ public static string GetOutputType(this Project project) return msbuildProject.GetProperty("OutputType").EvaluatedValue; } - /// - /// Indicates whether the project references a package ID. - /// - public static bool HasPackageReference(this Project project, string packageId) - { - return project.GetItems("PackageReference").Contains(packageId); - } - /// /// Returns the version of the referenced package ID. /// diff --git a/src/Fallout.ProjectModel/Project.Properties.cs b/src/Fallout.Infrastructure.ProjectModel/Project.Properties.cs similarity index 92% rename from src/Fallout.ProjectModel/Project.Properties.cs rename to src/Fallout.Infrastructure.ProjectModel/Project.Properties.cs index 9132e5d61..f26bbaa1b 100644 --- a/src/Fallout.ProjectModel/Project.Properties.cs +++ b/src/Fallout.Infrastructure.ProjectModel/Project.Properties.cs @@ -1,8 +1,8 @@ -using Fallout.Common.Utilities; -using Fallout.Common; +using Fallout.Kernel; +using Fallout.Application.Solutions; -namespace Fallout.Solutions; +namespace Fallout.Infrastructure.ProjectModel; public static partial class ProjectExtensions { diff --git a/src/Fallout.Infrastructure.ProjectModel/ProjectEditorAdapter.cs b/src/Fallout.Infrastructure.ProjectModel/ProjectEditorAdapter.cs new file mode 100644 index 000000000..e03b70360 --- /dev/null +++ b/src/Fallout.Infrastructure.ProjectModel/ProjectEditorAdapter.cs @@ -0,0 +1,55 @@ +using System.Linq; +using System.Runtime.CompilerServices; +using Fallout.Kernel; +using Fallout.Kernel.IO; +using Fallout.Application.Solutions; + +namespace Fallout.Infrastructure.ProjectModel; + +// Infrastructure adapter for the IProjectEditor port (ADR-0006, step 5c). Owns the Microsoft.Build +// evaluation used to read/edit MSBuild project files, keeping the Application ring (e.g. Telemetry) free +// of any Microsoft.Build dependency. Registered into SolutionServices via a module initializer; the CLI +// composition root / MSBuild bootstrapping pulls this assembly in. + +internal sealed class ProjectEditorAdapter : IProjectEditor +{ + public string GetProperty(AbsolutePath projectFile, params string[] propertyNames) + { + ProjectModelTasks.Initialize(); + var project = ProjectModelTasks.ParseProject(projectFile); + foreach (var name in propertyNames) + { + var property = project.Properties.FirstOrDefault(x => x.Name.EqualsOrdinalIgnoreCase(name)); + if (property != null) + return property.EvaluatedValue; + } + + return null; + } + + public void SetProperty(AbsolutePath projectFile, string name, string value) + { + ProjectModelTasks.Initialize(); + var project = ProjectModelTasks.ParseProject(projectFile); + project.SetProperty(name, value); + project.Save(); + } + + public bool HasPackageReference(AbsolutePath projectFile, string packageId) + { + ProjectModelTasks.Initialize(); + var project = ProjectModelTasks.ParseProject(projectFile); + return project.GetItems("PackageReference").Any(x => x.EvaluatedInclude == packageId); + } +} + +internal static class ProjectEditorRegistration +{ +#pragma warning disable CA2255 + [ModuleInitializer] +#pragma warning restore CA2255 + internal static void Register() + { + SolutionServices.Projects ??= new ProjectEditorAdapter(); + } +} diff --git a/src/Fallout.ProjectModel/ProjectModelTasks.cs b/src/Fallout.Infrastructure.ProjectModel/ProjectModelTasks.cs similarity index 96% rename from src/Fallout.ProjectModel/ProjectModelTasks.cs rename to src/Fallout.Infrastructure.ProjectModel/ProjectModelTasks.cs index 65e604ae3..d5f9e263a 100644 --- a/src/Fallout.ProjectModel/ProjectModelTasks.cs +++ b/src/Fallout.Infrastructure.ProjectModel/ProjectModelTasks.cs @@ -1,18 +1,17 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using Microsoft.Build.Evaluation; using Microsoft.Build.Locator; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; using Serilog; #pragma warning disable CA2255 -using Fallout.Common; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Solutions; +namespace Fallout.Infrastructure.ProjectModel; public static class ProjectModelTasks { diff --git a/src/Fallout.Infrastructure.Solutions/Fallout.Infrastructure.Solutions.csproj b/src/Fallout.Infrastructure.Solutions/Fallout.Infrastructure.Solutions.csproj new file mode 100644 index 000000000..a777172ba --- /dev/null +++ b/src/Fallout.Infrastructure.Solutions/Fallout.Infrastructure.Solutions.csproj @@ -0,0 +1,16 @@ + + + + + netstandard2.0;net10.0 + Concrete .sln/.slnx serializer adapter behind Fallout.Application.Solutions' ports. + + + + + + + + + diff --git a/src/Fallout.Infrastructure.Solutions/ModuleInitializerPolyfill.cs b/src/Fallout.Infrastructure.Solutions/ModuleInitializerPolyfill.cs new file mode 100644 index 000000000..9226f1dcc --- /dev/null +++ b/src/Fallout.Infrastructure.Solutions/ModuleInitializerPolyfill.cs @@ -0,0 +1,13 @@ +// ModuleInitializerAttribute ships in the BCL only on .NET 5+. Fallout.Solution also targets +// netstandard2.0, so polyfill it there (internal) to let SolutionSerializerRegistration use +// [ModuleInitializer] across both target frameworks. Standard, well-known shim — the C# compiler +// recognises any matching type. +#if !NET5_0_OR_GREATER +namespace System.Runtime.CompilerServices +{ + [System.AttributeUsage(System.AttributeTargets.Method, Inherited = false)] + internal sealed class ModuleInitializerAttribute : System.Attribute + { + } +} +#endif diff --git a/src/Fallout.Infrastructure.Solutions/SolutionReader.cs b/src/Fallout.Infrastructure.Solutions/SolutionReader.cs new file mode 100644 index 000000000..69ddd661c --- /dev/null +++ b/src/Fallout.Infrastructure.Solutions/SolutionReader.cs @@ -0,0 +1,15 @@ +using Fallout.Application.Solutions; +using Fallout.Kernel.IO; + +namespace Fallout.Infrastructure.Solutions; + +/// +/// Direct entry into the solution serializer for build-time tooling (the strongly-typed-solution source +/// generator). It bypasses the runtime locator: a Roslyn generator host +/// can't run this assembly's module initializer to register the adapter, so it calls the adapter directly. +/// Runtime build code keeps using AbsolutePath.ReadSolution() (port-based). +/// +public static class SolutionReader +{ + public static Solution Read(AbsolutePath path) => new SolutionSerializerAdapter().Open(path); +} diff --git a/src/Fallout.Infrastructure.Solutions/SolutionSerializerAdapter.cs b/src/Fallout.Infrastructure.Solutions/SolutionSerializerAdapter.cs new file mode 100644 index 000000000..2a60357e0 --- /dev/null +++ b/src/Fallout.Infrastructure.Solutions/SolutionSerializerAdapter.cs @@ -0,0 +1,96 @@ +using System.Collections.Generic; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Threading; +using Fallout.Persistence.Solution.Model; +using Fallout.Persistence.Solution.Serializer; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Application.Solutions; + +namespace Fallout.Infrastructure.Solutions; + +// Infrastructure adapter for the ISolutionSerializer port (ADR-0006, step 5c). It owns the only references +// to the vendored, format-specific serializers (legacy .sln = SlnV12, XML .slnx = SlnXml — selected by +// moniker) and translates the vendored SolutionModel into the Fallout-owned Solution tree. The Fallout +// model never names a vendored type; the round-trip-fidelity carrier is the opaque Solution.Handle, which +// only this adapter casts back. Co-hosted with the model + port (like ToolingServices) so the module +// initializer always runs once this assembly loads. + +internal sealed class SolutionSerializerAdapter : ISolutionSerializer +{ + public Solution Open(AbsolutePath path) => Open(path); + + public T Open(AbsolutePath path) + where T : Solution + { + var serializer = SolutionSerializers.GetSerializerByMoniker(path).NotNull(); + var model = AsyncHelper.RunSync(() => serializer.OpenAsync(path, CancellationToken.None)); + + var solution = Create(path, model); + Populate(solution, model); + return solution; + } + + public void Save(Solution solution, AbsolutePath path) + { + var model = (SolutionModel)solution.Handle.NotNull( + "Solution was not read from a file and cannot be saved."); + var serializer = SolutionSerializers.GetSerializerByMoniker(path).NotNull(); + AsyncHelper.RunSync(() => serializer.SaveAsync(path, model, CancellationToken.None)); + } + + private static T Create(AbsolutePath path, SolutionModel model) + where T : Solution + { + // The (AbsolutePath, object) constructor is non-public on Solution and on the generated + // strongly-typed subclasses, so bind explicitly to non-public ctors. + return (T)System.Activator.CreateInstance( + typeof(T), + BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, + binder: null, + args: [path, model], + culture: null); + } + + /// + /// Walks the vendored serializer model and builds the Fallout solution tree (projects + folders + + /// parent links). After this the Fallout model holds no reference to the vendored types beyond the + /// opaque . + /// + private static void Populate(Solution solution, SolutionModel model) + { + var folders = new Dictionary(); + foreach (var folderModel in model.SolutionFolders) + folders[folderModel] = new SolutionFolder(folderModel.ActualDisplayName, solution); + + foreach (var folderModel in model.SolutionFolders) + { + var folder = folders[folderModel]; + folder.Parent = folderModel.Parent != null ? folders[folderModel.Parent] : solution; + solution.AddSolutionFolder(folder); + } + + foreach (var projectModel in model.SolutionProjects) + { + var project = new Project(projectModel.ActualDisplayName, projectModel.FilePath, solution) + { + Parent = projectModel.Parent != null ? folders[projectModel.Parent] : solution, + }; + solution.AddProject(project); + } + } +} + +internal static class SolutionSerializerRegistration +{ + // CA2255: the module initializer is the intended wiring point — registers the Infrastructure adapter + // into the Application-ring SolutionServices when this assembly loads, before any model code runs. +#pragma warning disable CA2255 + [ModuleInitializer] +#pragma warning restore CA2255 + internal static void Register() + { + SolutionServices.Serializer ??= new SolutionSerializerAdapter(); + } +} diff --git a/src/Fallout.Infrastructure.Tooling/Fallout.Infrastructure.Tooling.csproj b/src/Fallout.Infrastructure.Tooling/Fallout.Infrastructure.Tooling.csproj new file mode 100644 index 000000000..95ecd620b --- /dev/null +++ b/src/Fallout.Infrastructure.Tooling/Fallout.Infrastructure.Tooling.csproj @@ -0,0 +1,18 @@ + + + + + net10.0 + + + + + + + + + + + + + diff --git a/src/Fallout.Infrastructure.Tooling/ModuleInitializerPolyfill.cs b/src/Fallout.Infrastructure.Tooling/ModuleInitializerPolyfill.cs new file mode 100644 index 000000000..3aca6cd2f --- /dev/null +++ b/src/Fallout.Infrastructure.Tooling/ModuleInitializerPolyfill.cs @@ -0,0 +1,12 @@ +// ModuleInitializerAttribute ships in the BCL only on .NET 5+. Fallout.Tooling also targets +// netstandard2.0, so polyfill it there (internal) to let ToolingServicesRegistration use [ModuleInitializer] +// across both target frameworks. Standard, well-known shim — the C# compiler recognises any matching type. +#if !NET5_0_OR_GREATER +namespace System.Runtime.CompilerServices +{ + [System.AttributeUsage(System.AttributeTargets.Method, Inherited = false)] + internal sealed class ModuleInitializerAttribute : System.Attribute + { + } +} +#endif diff --git a/src/Fallout.Tooling/NpmToolPathResolver.cs b/src/Fallout.Infrastructure.Tooling/NpmToolPathResolver.cs similarity index 81% rename from src/Fallout.Tooling/NpmToolPathResolver.cs rename to src/Fallout.Infrastructure.Tooling/NpmToolPathResolver.cs index d94f91d66..34b406c25 100644 --- a/src/Fallout.Tooling/NpmToolPathResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/NpmToolPathResolver.cs @@ -1,8 +1,10 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class NpmToolPathResolver { diff --git a/src/Fallout.Tooling/NpmVersionResolver.cs b/src/Fallout.Infrastructure.Tooling/NpmVersionResolver.cs similarity index 93% rename from src/Fallout.Tooling/NpmVersionResolver.cs rename to src/Fallout.Infrastructure.Tooling/NpmVersionResolver.cs index 314165e71..578a4e916 100644 --- a/src/Fallout.Tooling/NpmVersionResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/NpmVersionResolver.cs @@ -2,7 +2,7 @@ using System.Text.Json.Nodes; using System.Threading.Tasks; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class NpmVersionResolver { diff --git a/src/Fallout.Tooling/NuGetPackageResolver.cs b/src/Fallout.Infrastructure.Tooling/NuGetPackageResolver.cs similarity index 99% rename from src/Fallout.Tooling/NuGetPackageResolver.cs rename to src/Fallout.Infrastructure.Tooling/NuGetPackageResolver.cs index 3e1372dba..39d4361f9 100644 --- a/src/Fallout.Tooling/NuGetPackageResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/NuGetPackageResolver.cs @@ -6,11 +6,11 @@ using System.Xml.Linq; using NuGet.Packaging; using NuGet.Versioning; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class NuGetPackageResolver { diff --git a/src/Fallout.Tooling/NuGetToolPathResolver.cs b/src/Fallout.Infrastructure.Tooling/NuGetToolPathResolver.cs similarity index 98% rename from src/Fallout.Tooling/NuGetToolPathResolver.cs rename to src/Fallout.Infrastructure.Tooling/NuGetToolPathResolver.cs index ec9d7f10c..8acfad788 100644 --- a/src/Fallout.Tooling/NuGetToolPathResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/NuGetToolPathResolver.cs @@ -1,13 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.Versioning; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class NuGetToolPathResolver { diff --git a/src/Fallout.Tooling/NuGetVersionResolver.cs b/src/Fallout.Infrastructure.Tooling/NuGetVersionResolver.cs similarity index 94% rename from src/Fallout.Tooling/NuGetVersionResolver.cs rename to src/Fallout.Infrastructure.Tooling/NuGetVersionResolver.cs index 89bdac61e..81999958c 100644 --- a/src/Fallout.Tooling/NuGetVersionResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/NuGetVersionResolver.cs @@ -2,9 +2,9 @@ using System.Net.Http; using System.Text.Json.Nodes; using System.Threading.Tasks; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class NuGetVersionResolver { diff --git a/src/Fallout.Tooling/PaketPackageResolver.cs b/src/Fallout.Infrastructure.Tooling/PaketPackageResolver.cs similarity index 90% rename from src/Fallout.Tooling/PaketPackageResolver.cs rename to src/Fallout.Infrastructure.Tooling/PaketPackageResolver.cs index b7647bbfa..8ec018f70 100644 --- a/src/Fallout.Tooling/PaketPackageResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/PaketPackageResolver.cs @@ -1,8 +1,9 @@ using System; using System.IO; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; // TODO: Add similar methods to NuGetPackageResolver public static class PaketPackageResolver diff --git a/src/Fallout.Tooling/Process2.cs b/src/Fallout.Infrastructure.Tooling/Process2.cs similarity index 93% rename from src/Fallout.Tooling/Process2.cs rename to src/Fallout.Infrastructure.Tooling/Process2.cs index 154ef8fe4..45bbe3b0b 100644 --- a/src/Fallout.Tooling/Process2.cs +++ b/src/Fallout.Infrastructure.Tooling/Process2.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public class Process2 : IProcess { diff --git a/src/Fallout.Tooling/ProcessTasks.cs b/src/Fallout.Infrastructure.Tooling/ProcessTasks.cs similarity index 92% rename from src/Fallout.Tooling/ProcessTasks.cs rename to src/Fallout.Infrastructure.Tooling/ProcessTasks.cs index d95a4fbed..2bc26206e 100644 --- a/src/Fallout.Tooling/ProcessTasks.cs +++ b/src/Fallout.Infrastructure.Tooling/ProcessTasks.cs @@ -5,12 +5,13 @@ using System.IO; using System.Linq; using System.Text; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; using Serilog.Events; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class ProcessTasks { @@ -19,6 +20,12 @@ public static class ProcessTasks public static bool LogWorkingDirectory = true; public static string DefaultWorkingDirectory = EnvironmentInfo.WorkingDirectory; + /// + /// The process-execution port (ADR-0006). Defaults to spawning a real OS process; tests (and, later, + /// a hosted runner) swap in a fake/alternate . + /// + public static IProcessRunner Runner { get; set; } = new SystemProcessRunner(); + private static readonly char[] s_pathSeparators = { EnvironmentInfo.IsWin ? ';' : ':' }; private static readonly object s_lock = new(); @@ -158,12 +165,8 @@ private static IProcess StartProcessInternal( if (logInvocation) LogInvocation(startInfo, outputFilter, environmentVariables != null); - var process = Process.Start(startInfo); - if (process == null) - return null; - - var output = GetOutputCollection(process, logger, outputFilter); - return new Process2(process, outputFilter, timeout, output); + // The one impure step — spawning the OS process — goes through the execution port. + return Runner.Start(startInfo, timeout, logger, outputFilter); } private static void LogInvocation(ProcessStartInfo startInfo, Func outputFilter, bool hasEnvironmentVariables) @@ -188,7 +191,7 @@ private static void LogInvocation(ProcessStartInfo startInfo, Func GetOutputCollection( + internal static BlockingCollection GetOutputCollection( Process process, Action logger, Func outputFilter) diff --git a/src/Fallout.Infrastructure.Tooling/SystemProcessRunner.cs b/src/Fallout.Infrastructure.Tooling/SystemProcessRunner.cs new file mode 100644 index 000000000..e4a26c9b1 --- /dev/null +++ b/src/Fallout.Infrastructure.Tooling/SystemProcessRunner.cs @@ -0,0 +1,22 @@ +using System; +using System.Diagnostics; +using Fallout.Application.Tooling; + +namespace Fallout.Infrastructure.Tooling; + +/// +/// Default — spawns a real OS process. This is the infrastructure adapter +/// behind the execution port; the rest of the tooling layer never touches directly. +/// +public sealed class SystemProcessRunner : IProcessRunner +{ + public IProcess Start(ProcessStartInfo startInfo, int? timeout, Action logger, Func outputFilter) + { + var process = Process.Start(startInfo); + if (process == null) + return null; + + var output = ProcessTasks.GetOutputCollection(process, logger, outputFilter); + return new Process2(process, outputFilter, timeout, output); + } +} diff --git a/src/Fallout.Tooling/ToolExecutor.cs b/src/Fallout.Infrastructure.Tooling/ToolExecutor.cs similarity index 95% rename from src/Fallout.Tooling/ToolExecutor.cs rename to src/Fallout.Infrastructure.Tooling/ToolExecutor.cs index 1b443019c..ed373ea3b 100644 --- a/src/Fallout.Tooling/ToolExecutor.cs +++ b/src/Fallout.Infrastructure.Tooling/ToolExecutor.cs @@ -1,8 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; internal class ToolExecutor { diff --git a/src/Fallout.Tooling/ToolPathResolver.cs b/src/Fallout.Infrastructure.Tooling/ToolPathResolver.cs similarity index 95% rename from src/Fallout.Tooling/ToolPathResolver.cs rename to src/Fallout.Infrastructure.Tooling/ToolPathResolver.cs index 15dc0bb43..f26b9209e 100644 --- a/src/Fallout.Tooling/ToolPathResolver.cs +++ b/src/Fallout.Infrastructure.Tooling/ToolPathResolver.cs @@ -1,9 +1,10 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.Utilities; +using Fallout.Application.Tooling; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class ToolPathResolver { diff --git a/src/Fallout.Tooling/ToolingExtensions.cs b/src/Fallout.Infrastructure.Tooling/ToolingExtensions.cs similarity index 94% rename from src/Fallout.Tooling/ToolingExtensions.cs rename to src/Fallout.Infrastructure.Tooling/ToolingExtensions.cs index 640bada62..acf112a8e 100644 --- a/src/Fallout.Tooling/ToolingExtensions.cs +++ b/src/Fallout.Infrastructure.Tooling/ToolingExtensions.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; using Serilog.Events; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.Tooling; +namespace Fallout.Infrastructure.Tooling; public static class ToolingExtensions { diff --git a/src/Fallout.Infrastructure.Tooling/ToolingServicesRegistration.cs b/src/Fallout.Infrastructure.Tooling/ToolingServicesRegistration.cs new file mode 100644 index 000000000..f318eaf18 --- /dev/null +++ b/src/Fallout.Infrastructure.Tooling/ToolingServicesRegistration.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; + +namespace Fallout.Infrastructure.Tooling; + +// Infrastructure adapters for the Application-ring tool-execution ports (ADR-0006). Each is a thin forward to +// the existing process/resolver statics; the module initializer registers them into ToolingServices when the +// assembly loads — before any Application code can touch a Fallout.Tooling type. Adapters reference both rings +// (Infrastructure → Application port), which is the correct inward onion direction. + +internal sealed class ProcessExecutorAdapter : IProcessExecutor +{ + public IProcess StartProcess( + string toolPath, string arguments, string workingDirectory, + IReadOnlyDictionary environmentVariables, int? timeout, + bool? logOutput, bool? logInvocation, Action logger, Func outputFilter) + => ProcessTasks.StartProcess(toolPath, arguments, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger, outputFilter); + + public IProcess StartShell( + string command, string workingDirectory, + IReadOnlyDictionary environmentVariables, int? timeout, + bool? logOutput, bool? logInvocation, Action logger, Func outputFilter) + => ProcessTasks.StartShell(command, workingDirectory, environmentVariables, timeout, logOutput, logInvocation, logger, outputFilter); + + public void CheckPathEnvironmentVariable() => ProcessTasks.CheckPathEnvironmentVariable(); + public bool DefaultLogOutput => ProcessTasks.DefaultLogOutput; + public Tool GetTool(string toolPath) => new ToolExecutor(toolPath).Execute; +} + +internal sealed class ToolPathResolverAdapter : IToolPathResolver +{ + public string TryGetEnvironmentExecutable(string environmentExecutable) => ToolPathResolver.TryGetEnvironmentExecutable(environmentExecutable); + public string GetPathExecutable(string pathExecutable) => ToolPathResolver.GetPathExecutable(pathExecutable); + public string GetPackageExecutable(string packageId, string packageExecutable, string version, string framework) => NuGetToolPathResolver.GetPackageExecutable(packageId, packageExecutable, version, framework); + public string GetNpmExecutable(string npmExecutable) => NpmToolPathResolver.GetNpmExecutable(npmExecutable); + public AbsolutePath GetNuGetPackagesDirectory() => NuGetPackageResolver.GetPackagesDirectory(NuGetToolPathResolver.NuGetPackagesConfigFile); + public string GetPackagesConfigFile(string projectDirectory) => NuGetPackageResolver.GetPackagesConfigFile(projectDirectory); + + public string EmbeddedPackagesDirectory { set => NuGetToolPathResolver.EmbeddedPackagesDirectory = value; } + public string NuGetPackagesConfigFile { get => NuGetToolPathResolver.NuGetPackagesConfigFile; set => NuGetToolPathResolver.NuGetPackagesConfigFile = value; } + public string NuGetAssetsConfigFile { set => NuGetToolPathResolver.NuGetAssetsConfigFile = value; } + public AbsolutePath NpmPackageJsonFile { set => NpmToolPathResolver.NpmPackageJsonFile = value; } +} + +internal sealed class ToolVersionResolverAdapter : IToolVersionResolver +{ + public Task GetLatestNuGetVersion(string packageId, bool includePrereleases, bool includeUnlisted) => NuGetVersionResolver.GetLatestVersion(packageId, includePrereleases, includeUnlisted); + public Task GetLatestNpmVersion(string packageId) => NpmVersionResolver.GetLatestVersion(packageId); +} + +internal static class ToolingServicesRegistration +{ + // CA2255: the module initializer is the intended wiring point — it registers the Infrastructure adapters + // into the Application-ring ToolingServices when this assembly loads, before any Application code runs. +#pragma warning disable CA2255 + [ModuleInitializer] +#pragma warning restore CA2255 + internal static void Register() + { + ToolingServices.Process ??= new ProcessExecutorAdapter(); + ToolingServices.ToolPaths ??= new ToolPathResolverAdapter(); + ToolingServices.Versions ??= new ToolVersionResolverAdapter(); + } +} diff --git a/src/Fallout.Utilities.IO.Compression/CompressionExtensions.cs b/src/Fallout.Kernel.IO.Compression/CompressionExtensions.cs similarity index 98% rename from src/Fallout.Utilities.IO.Compression/CompressionExtensions.cs rename to src/Fallout.Kernel.IO.Compression/CompressionExtensions.cs index 85c69b524..6db7977d0 100644 --- a/src/Fallout.Utilities.IO.Compression/CompressionExtensions.cs +++ b/src/Fallout.Kernel.IO.Compression/CompressionExtensions.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.IO.Compression; @@ -7,9 +7,10 @@ using ICSharpCode.SharpZipLib.GZip; using ICSharpCode.SharpZipLib.Tar; using ICSharpCode.SharpZipLib.Zip; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static class CompressionExtensions { diff --git a/src/Fallout.Utilities.IO.Compression/Fallout.Utilities.IO.Compression.csproj b/src/Fallout.Kernel.IO.Compression/Fallout.Kernel.IO.Compression.csproj similarity index 75% rename from src/Fallout.Utilities.IO.Compression/Fallout.Utilities.IO.Compression.csproj rename to src/Fallout.Kernel.IO.Compression/Fallout.Kernel.IO.Compression.csproj index 456306f23..affe33d39 100644 --- a/src/Fallout.Utilities.IO.Compression/Fallout.Utilities.IO.Compression.csproj +++ b/src/Fallout.Kernel.IO.Compression/Fallout.Kernel.IO.Compression.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Utilities.IO.Globbing/Fallout.Utilities.IO.Globbing.csproj b/src/Fallout.Kernel.IO.Globbing/Fallout.Kernel.IO.Globbing.csproj similarity index 74% rename from src/Fallout.Utilities.IO.Globbing/Fallout.Utilities.IO.Globbing.csproj rename to src/Fallout.Kernel.IO.Globbing/Fallout.Kernel.IO.Globbing.csproj index 5c5cf390c..678972fd9 100644 --- a/src/Fallout.Utilities.IO.Globbing/Fallout.Utilities.IO.Globbing.csproj +++ b/src/Fallout.Kernel.IO.Globbing/Fallout.Kernel.IO.Globbing.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Utilities.IO.Globbing/Globbing.cs b/src/Fallout.Kernel.IO.Globbing/Globbing.cs similarity index 94% rename from src/Fallout.Utilities.IO.Globbing/Globbing.cs rename to src/Fallout.Kernel.IO.Globbing/Globbing.cs index c80710f10..c87edf2e6 100644 --- a/src/Fallout.Utilities.IO.Globbing/Globbing.cs +++ b/src/Fallout.Kernel.IO.Globbing/Globbing.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using GlobExpressions; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static class Globbing { diff --git a/src/Fallout.Utilities.IO.Globbing/GlobbingCaseSensitivity.cs b/src/Fallout.Kernel.IO.Globbing/GlobbingCaseSensitivity.cs similarity index 95% rename from src/Fallout.Utilities.IO.Globbing/GlobbingCaseSensitivity.cs rename to src/Fallout.Kernel.IO.Globbing/GlobbingCaseSensitivity.cs index fe8829bc4..dbc7cdc25 100644 --- a/src/Fallout.Utilities.IO.Globbing/GlobbingCaseSensitivity.cs +++ b/src/Fallout.Kernel.IO.Globbing/GlobbingCaseSensitivity.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; /// /// Indicates the case sensitivity used for globbing. diff --git a/src/Fallout.Utilities.Net/Fallout.Utilities.Net.csproj b/src/Fallout.Kernel.Net/Fallout.Kernel.Net.csproj similarity index 78% rename from src/Fallout.Utilities.Net/Fallout.Utilities.Net.csproj rename to src/Fallout.Kernel.Net/Fallout.Kernel.Net.csproj index 88b94ce7d..902511af6 100644 --- a/src/Fallout.Utilities.Net/Fallout.Utilities.Net.csproj +++ b/src/Fallout.Kernel.Net/Fallout.Kernel.Net.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Utilities.Net/HttpClient.Request.cs b/src/Fallout.Kernel.Net/HttpClient.Request.cs similarity index 94% rename from src/Fallout.Utilities.Net/HttpClient.Request.cs rename to src/Fallout.Kernel.Net/HttpClient.Request.cs index 62e75fd9d..25b28b2e9 100644 --- a/src/Fallout.Utilities.Net/HttpClient.Request.cs +++ b/src/Fallout.Kernel.Net/HttpClient.Request.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Net.Http; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpClientExtensions { diff --git a/src/Fallout.Utilities.Net/HttpRequest.Authentication.cs b/src/Fallout.Kernel.Net/HttpRequest.Authentication.cs similarity index 95% rename from src/Fallout.Utilities.Net/HttpRequest.Authentication.cs rename to src/Fallout.Kernel.Net/HttpRequest.Authentication.cs index 9d000161a..f01ab8c65 100644 --- a/src/Fallout.Utilities.Net/HttpRequest.Authentication.cs +++ b/src/Fallout.Kernel.Net/HttpRequest.Authentication.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using System.Net.Http.Headers; using System.Text; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpRequestExtensions { diff --git a/src/Fallout.Utilities.Net/HttpRequest.Content.cs b/src/Fallout.Kernel.Net/HttpRequest.Content.cs similarity index 98% rename from src/Fallout.Utilities.Net/HttpRequest.Content.cs rename to src/Fallout.Kernel.Net/HttpRequest.Content.cs index d666ff822..d5cc5dcb1 100644 --- a/src/Fallout.Utilities.Net/HttpRequest.Content.cs +++ b/src/Fallout.Kernel.Net/HttpRequest.Content.cs @@ -6,7 +6,7 @@ using System.Text; using System.Text.Json; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpRequestExtensions { diff --git a/src/Fallout.Utilities.Net/HttpRequest.Response.cs b/src/Fallout.Kernel.Net/HttpRequest.Response.cs similarity index 94% rename from src/Fallout.Utilities.Net/HttpRequest.Response.cs rename to src/Fallout.Kernel.Net/HttpRequest.Response.cs index 21f7e98c0..5a8c0ec8c 100644 --- a/src/Fallout.Utilities.Net/HttpRequest.Response.cs +++ b/src/Fallout.Kernel.Net/HttpRequest.Response.cs @@ -1,8 +1,8 @@ -using System.Net.Http; +using System.Net.Http; using System.Threading; using System.Threading.Tasks; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpRequestExtensions { diff --git a/src/Fallout.Utilities.Net/HttpResponse.Assert.cs b/src/Fallout.Kernel.Net/HttpResponse.Assert.cs similarity index 97% rename from src/Fallout.Utilities.Net/HttpResponse.Assert.cs rename to src/Fallout.Kernel.Net/HttpResponse.Assert.cs index 4c6f51ece..cd635d68d 100644 --- a/src/Fallout.Utilities.Net/HttpResponse.Assert.cs +++ b/src/Fallout.Kernel.Net/HttpResponse.Assert.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Net; using System.Net.Http; using System.Runtime.Serialization; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpResponseExtensions { diff --git a/src/Fallout.Utilities.Net/HttpResponse.Body.cs b/src/Fallout.Kernel.Net/HttpResponse.Body.cs similarity index 96% rename from src/Fallout.Utilities.Net/HttpResponse.Body.cs rename to src/Fallout.Kernel.Net/HttpResponse.Body.cs index cc5a7f2a1..1bdc9d7ce 100644 --- a/src/Fallout.Utilities.Net/HttpResponse.Body.cs +++ b/src/Fallout.Kernel.Net/HttpResponse.Body.cs @@ -2,9 +2,9 @@ using System.Text.Json; using System.Text.Json.Nodes; using System.Threading.Tasks; -using Fallout.Common.IO; +using Fallout.Kernel.IO; -namespace Fallout.Common.Utilities.Net; +namespace Fallout.Kernel.Net; public static partial class HttpResponseExtensions { diff --git a/src/Fallout.Utilities.Text.Json/Fallout.Utilities.Text.Json.csproj b/src/Fallout.Kernel.Text.Json/Fallout.Kernel.Text.Json.csproj similarity index 75% rename from src/Fallout.Utilities.Text.Json/Fallout.Utilities.Text.Json.csproj rename to src/Fallout.Kernel.Text.Json/Fallout.Kernel.Text.Json.csproj index 0d0bf0f4a..4cd3d31dd 100644 --- a/src/Fallout.Utilities.Text.Json/Fallout.Utilities.Text.Json.csproj +++ b/src/Fallout.Kernel.Text.Json/Fallout.Kernel.Text.Json.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Utilities.Text.Json/JsonExtensions.cs b/src/Fallout.Kernel.Text.Json/JsonExtensions.cs similarity index 98% rename from src/Fallout.Utilities.Text.Json/JsonExtensions.cs rename to src/Fallout.Kernel.Text.Json/JsonExtensions.cs index bda118acf..c84f1ec3b 100644 --- a/src/Fallout.Utilities.Text.Json/JsonExtensions.cs +++ b/src/Fallout.Kernel.Text.Json/JsonExtensions.cs @@ -2,9 +2,9 @@ using System.Text.Json; using System.Text.Json.Nodes; using System.Text.Json.Serialization; -using Fallout.Common.IO; +using Fallout.Kernel.IO; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class JsonExtensions { diff --git a/src/Fallout.Utilities.Text.Json/JsonObject.GetChildren.cs b/src/Fallout.Kernel.Text.Json/JsonObject.GetChildren.cs similarity index 96% rename from src/Fallout.Utilities.Text.Json/JsonObject.GetChildren.cs rename to src/Fallout.Kernel.Text.Json/JsonObject.GetChildren.cs index 1e7674b04..f01c517e7 100644 --- a/src/Fallout.Utilities.Text.Json/JsonObject.GetChildren.cs +++ b/src/Fallout.Kernel.Text.Json/JsonObject.GetChildren.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Text.Json.Nodes; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class JsonNodeExtensions { diff --git a/src/Fallout.Utilities.Text.Json/JsonObject.GetPropertyValue.cs b/src/Fallout.Kernel.Text.Json/JsonObject.GetPropertyValue.cs similarity index 97% rename from src/Fallout.Utilities.Text.Json/JsonObject.GetPropertyValue.cs rename to src/Fallout.Kernel.Text.Json/JsonObject.GetPropertyValue.cs index 5d0cd438d..01804e4c7 100644 --- a/src/Fallout.Utilities.Text.Json/JsonObject.GetPropertyValue.cs +++ b/src/Fallout.Kernel.Text.Json/JsonObject.GetPropertyValue.cs @@ -1,6 +1,6 @@ using System.Text.Json.Nodes; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class JsonNodeExtensions { diff --git a/src/Fallout.Utilities.Text.Yaml/Fallout.Utilities.Text.Yaml.csproj b/src/Fallout.Kernel.Text.Yaml/Fallout.Kernel.Text.Yaml.csproj similarity index 75% rename from src/Fallout.Utilities.Text.Yaml/Fallout.Utilities.Text.Yaml.csproj rename to src/Fallout.Kernel.Text.Yaml/Fallout.Kernel.Text.Yaml.csproj index c0bb0d03b..e07995573 100644 --- a/src/Fallout.Utilities.Text.Yaml/Fallout.Utilities.Text.Yaml.csproj +++ b/src/Fallout.Kernel.Text.Yaml/Fallout.Kernel.Text.Yaml.csproj @@ -5,7 +5,7 @@ - + diff --git a/src/Fallout.Utilities.Text.Yaml/YamlExtensions.cs b/src/Fallout.Kernel.Text.Yaml/YamlExtensions.cs similarity index 97% rename from src/Fallout.Utilities.Text.Yaml/YamlExtensions.cs rename to src/Fallout.Kernel.Text.Yaml/YamlExtensions.cs index c144590b3..813d65471 100644 --- a/src/Fallout.Utilities.Text.Yaml/YamlExtensions.cs +++ b/src/Fallout.Kernel.Text.Yaml/YamlExtensions.cs @@ -1,9 +1,9 @@ using System; -using Fallout.Common.IO; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; +using Fallout.Kernel.IO; -namespace Fallout.Utilities.Text.Yaml; +namespace Fallout.Kernel.Text.Yaml; public static class YamlExtensions { diff --git a/src/Fallout.Utilities/ArgumentParser.cs b/src/Fallout.Kernel/ArgumentParser.cs similarity index 97% rename from src/Fallout.Utilities/ArgumentParser.cs rename to src/Fallout.Kernel/ArgumentParser.cs index 9880831a4..ec3b76958 100644 --- a/src/Fallout.Utilities/ArgumentParser.cs +++ b/src/Fallout.Kernel/ArgumentParser.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common; +namespace Fallout.Kernel; internal class ArgumentParser { diff --git a/src/Fallout.Utilities/Assert.cs b/src/Fallout.Kernel/Assert.cs similarity index 99% rename from src/Fallout.Utilities/Assert.cs rename to src/Fallout.Kernel/Assert.cs index d8ce8016b..9fe85a0e0 100644 --- a/src/Fallout.Utilities/Assert.cs +++ b/src/Fallout.Kernel/Assert.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.CompilerServices; -namespace Fallout.Common; +namespace Fallout.Kernel; /// /// Provides a collection of common assertion methods. diff --git a/src/Fallout.Utilities/AsyncHelper.cs b/src/Fallout.Kernel/AsyncHelper.cs similarity index 94% rename from src/Fallout.Utilities/AsyncHelper.cs rename to src/Fallout.Kernel/AsyncHelper.cs index b93610205..eaa9f4f55 100644 --- a/src/Fallout.Utilities/AsyncHelper.cs +++ b/src/Fallout.Kernel/AsyncHelper.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using System.Threading; using System.Threading.Tasks; -namespace Fallout.Common; +namespace Fallout.Kernel; internal static class AsyncHelper { diff --git a/src/Fallout.Utilities/Collections/Array.Deconstruct.cs b/src/Fallout.Kernel/Collections/Array.Deconstruct.cs similarity index 95% rename from src/Fallout.Utilities/Collections/Array.Deconstruct.cs rename to src/Fallout.Kernel/Collections/Array.Deconstruct.cs index 17252c509..bda2c5d14 100644 --- a/src/Fallout.Utilities/Collections/Array.Deconstruct.cs +++ b/src/Fallout.Kernel/Collections/Array.Deconstruct.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static class ArrayExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.AddDictionary.cs b/src/Fallout.Kernel/Collections/Dictionary.AddDictionary.cs similarity index 94% rename from src/Fallout.Utilities/Collections/Dictionary.AddDictionary.cs rename to src/Fallout.Kernel/Collections/Dictionary.AddDictionary.cs index cd3a62757..fa77dbe25 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.AddDictionary.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.AddDictionary.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.AddKeyValue.cs b/src/Fallout.Kernel/Collections/Dictionary.AddKeyValue.cs similarity index 94% rename from src/Fallout.Utilities/Collections/Dictionary.AddKeyValue.cs rename to src/Fallout.Kernel/Collections/Dictionary.AddKeyValue.cs index 5b47676b4..bbc4c5da2 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.AddKeyValue.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.AddKeyValue.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.AsReadOnly.cs b/src/Fallout.Kernel/Collections/Dictionary.AsReadOnly.cs similarity index 83% rename from src/Fallout.Utilities/Collections/Dictionary.AsReadOnly.cs rename to src/Fallout.Kernel/Collections/Dictionary.AsReadOnly.cs index df64d800c..72e913209 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.AsReadOnly.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.AsReadOnly.cs @@ -1,11 +1,11 @@ -#if NETSTANDARD2_0 +#if NETSTANDARD2_0 using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.Deconstruct.cs b/src/Fallout.Kernel/Collections/Dictionary.Deconstruct.cs similarity index 84% rename from src/Fallout.Utilities/Collections/Dictionary.Deconstruct.cs rename to src/Fallout.Kernel/Collections/Dictionary.Deconstruct.cs index 6174d8662..69a8c6640 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.Deconstruct.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.Deconstruct.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.GetOrDefault.cs b/src/Fallout.Kernel/Collections/Dictionary.GetOrDefault.cs similarity index 87% rename from src/Fallout.Utilities/Collections/Dictionary.GetOrDefault.cs rename to src/Fallout.Kernel/Collections/Dictionary.GetOrDefault.cs index 82d545718..b11a9db20 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.GetOrDefault.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.GetOrDefault.cs @@ -1,11 +1,11 @@ -#if NETSTANDARD2_0 +#if NETSTANDARD2_0 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; [DebuggerStepThrough] [DebuggerNonUserCode] diff --git a/src/Fallout.Utilities/Collections/Dictionary.SetKeyValue.cs b/src/Fallout.Kernel/Collections/Dictionary.SetKeyValue.cs similarity index 84% rename from src/Fallout.Utilities/Collections/Dictionary.SetKeyValue.cs rename to src/Fallout.Kernel/Collections/Dictionary.SetKeyValue.cs index ee539df87..a98cd0042 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.SetKeyValue.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.SetKeyValue.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Dictionary.ToGeneric.cs b/src/Fallout.Kernel/Collections/Dictionary.ToGeneric.cs similarity index 89% rename from src/Fallout.Utilities/Collections/Dictionary.ToGeneric.cs rename to src/Fallout.Kernel/Collections/Dictionary.ToGeneric.cs index ddb67bd03..8187cda0e 100644 --- a/src/Fallout.Utilities/Collections/Dictionary.ToGeneric.cs +++ b/src/Fallout.Kernel/Collections/Dictionary.ToGeneric.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class DictionaryExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.AsEnumerable.cs b/src/Fallout.Kernel/Collections/Enumerable.AsEnumerable.cs similarity index 83% rename from src/Fallout.Utilities/Collections/Enumerable.AsEnumerable.cs rename to src/Fallout.Kernel/Collections/Enumerable.AsEnumerable.cs index eec6fb0c2..74f954905 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.AsEnumerable.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.AsEnumerable.cs @@ -1,8 +1,8 @@ -using System.Collections; +using System.Collections; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.Concat.cs b/src/Fallout.Kernel/Collections/Enumerable.Concat.cs similarity index 91% rename from src/Fallout.Utilities/Collections/Enumerable.Concat.cs rename to src/Fallout.Kernel/Collections/Enumerable.Concat.cs index 947b78494..8a0be1b85 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.Concat.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.Concat.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; [SuppressMessage("ReSharper", "MissingXmlDoc")] [DebuggerNonUserCode] diff --git a/src/Fallout.Utilities/Collections/Enumerable.Distinct.cs b/src/Fallout.Kernel/Collections/Enumerable.Distinct.cs similarity index 95% rename from src/Fallout.Utilities/Collections/Enumerable.Distinct.cs rename to src/Fallout.Kernel/Collections/Enumerable.Distinct.cs index 4e313e871..c43f40f27 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.Distinct.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.Distinct.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.Emptiness.cs b/src/Fallout.Kernel/Collections/Enumerable.Emptiness.cs similarity index 85% rename from src/Fallout.Utilities/Collections/Enumerable.Emptiness.cs rename to src/Fallout.Kernel/Collections/Enumerable.Emptiness.cs index 8da151ea9..32b2bf359 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.Emptiness.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.Emptiness.cs @@ -1,7 +1,7 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.ForEach.cs b/src/Fallout.Kernel/Collections/Enumerable.ForEach.cs similarity index 93% rename from src/Fallout.Utilities/Collections/Enumerable.ForEach.cs rename to src/Fallout.Kernel/Collections/Enumerable.ForEach.cs index a83dac1fe..1b245f8cb 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.ForEach.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.ForEach.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.Random.cs b/src/Fallout.Kernel/Collections/Enumerable.Random.cs similarity index 93% rename from src/Fallout.Utilities/Collections/Enumerable.Random.cs rename to src/Fallout.Kernel/Collections/Enumerable.Random.cs index a06b9cd8c..39af0d301 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.Random.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.Random.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.Sequence.cs b/src/Fallout.Kernel/Collections/Enumerable.Sequence.cs similarity index 83% rename from src/Fallout.Utilities/Collections/Enumerable.Sequence.cs rename to src/Fallout.Kernel/Collections/Enumerable.Sequence.cs index 718418fb7..e8799972e 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.Sequence.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.Sequence.cs @@ -1,7 +1,7 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.SingleOrDefaultOrError.cs b/src/Fallout.Kernel/Collections/Enumerable.SingleOrDefaultOrError.cs similarity index 95% rename from src/Fallout.Utilities/Collections/Enumerable.SingleOrDefaultOrError.cs rename to src/Fallout.Kernel/Collections/Enumerable.SingleOrDefaultOrError.cs index b23e9f75f..7ece6c538 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.SingleOrDefaultOrError.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.SingleOrDefaultOrError.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.TakeUntil.cs b/src/Fallout.Kernel/Collections/Enumerable.TakeUntil.cs similarity index 90% rename from src/Fallout.Utilities/Collections/Enumerable.TakeUntil.cs rename to src/Fallout.Kernel/Collections/Enumerable.TakeUntil.cs index 4574eaea7..e670b7f41 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.TakeUntil.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.TakeUntil.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.ToDictionary.cs b/src/Fallout.Kernel/Collections/Enumerable.ToDictionary.cs similarity index 95% rename from src/Fallout.Utilities/Collections/Enumerable.ToDictionary.cs rename to src/Fallout.Kernel/Collections/Enumerable.ToDictionary.cs index 0ff9935dd..feca28992 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.ToDictionary.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.ToDictionary.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.ToEmptyIfNull.cs b/src/Fallout.Kernel/Collections/Enumerable.ToEmptyIfNull.cs similarity index 81% rename from src/Fallout.Utilities/Collections/Enumerable.ToEmptyIfNull.cs rename to src/Fallout.Kernel/Collections/Enumerable.ToEmptyIfNull.cs index 867d17d0c..c4f7adda1 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.ToEmptyIfNull.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.ToEmptyIfNull.cs @@ -1,6 +1,6 @@ -using System.Collections.Generic; +using System.Collections.Generic; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.ToLookupTable.cs b/src/Fallout.Kernel/Collections/Enumerable.ToLookupTable.cs similarity index 86% rename from src/Fallout.Utilities/Collections/Enumerable.ToLookupTable.cs rename to src/Fallout.Kernel/Collections/Enumerable.ToLookupTable.cs index f153d1d64..9a55cc881 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.ToLookupTable.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.ToLookupTable.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.TopologicalSort.cs b/src/Fallout.Kernel/Collections/Enumerable.TopologicalSort.cs similarity index 93% rename from src/Fallout.Utilities/Collections/Enumerable.TopologicalSort.cs rename to src/Fallout.Kernel/Collections/Enumerable.TopologicalSort.cs index b4bc26522..8412bbbc4 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.TopologicalSort.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.TopologicalSort.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Enumerable.WhereNotNull.cs b/src/Fallout.Kernel/Collections/Enumerable.WhereNotNull.cs similarity index 91% rename from src/Fallout.Utilities/Collections/Enumerable.WhereNotNull.cs rename to src/Fallout.Kernel/Collections/Enumerable.WhereNotNull.cs index cf61e5d0c..8bccb41c2 100644 --- a/src/Fallout.Utilities/Collections/Enumerable.WhereNotNull.cs +++ b/src/Fallout.Kernel/Collections/Enumerable.WhereNotNull.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Lookup.ToLookupTable.cs b/src/Fallout.Kernel/Collections/Lookup.ToLookupTable.cs similarity index 82% rename from src/Fallout.Utilities/Collections/Lookup.ToLookupTable.cs rename to src/Fallout.Kernel/Collections/Lookup.ToLookupTable.cs index 748d37053..6d5dd06eb 100644 --- a/src/Fallout.Utilities/Collections/Lookup.ToLookupTable.cs +++ b/src/Fallout.Kernel/Collections/Lookup.ToLookupTable.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static class LookupExtensions { diff --git a/src/Fallout.Utilities/Collections/LookupTable.cs b/src/Fallout.Kernel/Collections/LookupTable.cs similarity index 96% rename from src/Fallout.Utilities/Collections/LookupTable.cs rename to src/Fallout.Kernel/Collections/LookupTable.cs index 49e0be619..2ede199c9 100644 --- a/src/Fallout.Utilities/Collections/LookupTable.cs +++ b/src/Fallout.Kernel/Collections/LookupTable.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; [Serializable] public class LookupTable(Dictionary> dictionary) : ILookup diff --git a/src/Fallout.Utilities/Collections/Object.DescendantsAndSelf.cs b/src/Fallout.Kernel/Collections/Object.DescendantsAndSelf.cs similarity index 96% rename from src/Fallout.Utilities/Collections/Object.DescendantsAndSelf.cs rename to src/Fallout.Kernel/Collections/Object.DescendantsAndSelf.cs index 95b70cb79..01b03a21c 100644 --- a/src/Fallout.Utilities/Collections/Object.DescendantsAndSelf.cs +++ b/src/Fallout.Kernel/Collections/Object.DescendantsAndSelf.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; public static partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/Collections/Object.ToPropertyDictionary.cs b/src/Fallout.Kernel/Collections/Object.ToPropertyDictionary.cs similarity index 92% rename from src/Fallout.Utilities/Collections/Object.ToPropertyDictionary.cs rename to src/Fallout.Kernel/Collections/Object.ToPropertyDictionary.cs index 039ae8cd3..102996477 100644 --- a/src/Fallout.Utilities/Collections/Object.ToPropertyDictionary.cs +++ b/src/Fallout.Kernel/Collections/Object.ToPropertyDictionary.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Reflection; -namespace Fallout.Common.Utilities.Collections; +namespace Fallout.Kernel.Collections; partial class EnumerableExtensions { diff --git a/src/Fallout.Utilities/DelegateDisposable.cs b/src/Fallout.Kernel/DelegateDisposable.cs similarity index 97% rename from src/Fallout.Utilities/DelegateDisposable.cs rename to src/Fallout.Kernel/DelegateDisposable.cs index 2431cc6ba..46ff2a990 100644 --- a/src/Fallout.Utilities/DelegateDisposable.cs +++ b/src/Fallout.Kernel/DelegateDisposable.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Linq.Expressions; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; /// /// Represents an that executes a delegate upon . diff --git a/src/Fallout.Utilities/Disposable.CombineWith.cs b/src/Fallout.Kernel/Disposable.CombineWith.cs similarity index 95% rename from src/Fallout.Utilities/Disposable.CombineWith.cs rename to src/Fallout.Kernel/Disposable.CombineWith.cs index 196c80754..bed695c0a 100644 --- a/src/Fallout.Utilities/Disposable.CombineWith.cs +++ b/src/Fallout.Kernel/Disposable.CombineWith.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class DisposableExtensions { diff --git a/src/Fallout.Utilities/EnvironmentInfo.Arguments.cs b/src/Fallout.Kernel/EnvironmentInfo.Arguments.cs similarity index 97% rename from src/Fallout.Utilities/EnvironmentInfo.Arguments.cs rename to src/Fallout.Kernel/EnvironmentInfo.Arguments.cs index 9092c5c94..b34d5d90d 100644 --- a/src/Fallout.Utilities/EnvironmentInfo.Arguments.cs +++ b/src/Fallout.Kernel/EnvironmentInfo.Arguments.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Kernel; public static partial class EnvironmentInfo { diff --git a/src/Fallout.Utilities/EnvironmentInfo.Platform.cs b/src/Fallout.Kernel/EnvironmentInfo.Platform.cs similarity index 97% rename from src/Fallout.Utilities/EnvironmentInfo.Platform.cs rename to src/Fallout.Kernel/EnvironmentInfo.Platform.cs index 639b26ee1..98ccbe074 100644 --- a/src/Fallout.Utilities/EnvironmentInfo.Platform.cs +++ b/src/Fallout.Kernel/EnvironmentInfo.Platform.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Runtime.Versioning; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Kernel; public enum PlatformFamily { diff --git a/src/Fallout.Utilities/EnvironmentInfo.SpecialFolder.cs b/src/Fallout.Kernel/EnvironmentInfo.SpecialFolder.cs similarity index 90% rename from src/Fallout.Utilities/EnvironmentInfo.SpecialFolder.cs rename to src/Fallout.Kernel/EnvironmentInfo.SpecialFolder.cs index e2d0a3ecc..65b67791f 100644 --- a/src/Fallout.Utilities/EnvironmentInfo.SpecialFolder.cs +++ b/src/Fallout.Kernel/EnvironmentInfo.SpecialFolder.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Kernel; public enum SpecialFolders { diff --git a/src/Fallout.Utilities/EnvironmentInfo.Variables.cs b/src/Fallout.Kernel/EnvironmentInfo.Variables.cs similarity index 96% rename from src/Fallout.Utilities/EnvironmentInfo.Variables.cs rename to src/Fallout.Kernel/EnvironmentInfo.Variables.cs index f3a7a7358..f374f09b5 100644 --- a/src/Fallout.Utilities/EnvironmentInfo.Variables.cs +++ b/src/Fallout.Kernel/EnvironmentInfo.Variables.cs @@ -1,13 +1,13 @@ -using System; +using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Text.RegularExpressions; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/EnvironmentInfo.cs b/src/Fallout.Kernel/EnvironmentInfo.cs similarity index 90% rename from src/Fallout.Utilities/EnvironmentInfo.cs rename to src/Fallout.Kernel/EnvironmentInfo.cs index 3a6d5eb0b..ae5bc496d 100644 --- a/src/Fallout.Utilities/EnvironmentInfo.cs +++ b/src/Fallout.Kernel/EnvironmentInfo.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common; +namespace Fallout.Kernel; /// /// Provides access to environment relevant information. diff --git a/src/Fallout.Utilities/Exception.Unwrap.cs b/src/Fallout.Kernel/Exception.Unwrap.cs similarity index 95% rename from src/Fallout.Utilities/Exception.Unwrap.cs rename to src/Fallout.Kernel/Exception.Unwrap.cs index 98a1d04fe..cd45ce48e 100644 --- a/src/Fallout.Utilities/Exception.Unwrap.cs +++ b/src/Fallout.Kernel/Exception.Unwrap.cs @@ -2,7 +2,7 @@ using System.Diagnostics; using System.Reflection; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/Fallout.Utilities.csproj b/src/Fallout.Kernel/Fallout.Kernel.csproj similarity index 100% rename from src/Fallout.Utilities/Fallout.Utilities.csproj rename to src/Fallout.Kernel/Fallout.Kernel.csproj diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Children.cs b/src/Fallout.Kernel/IO/AbsolutePath.Children.cs similarity index 94% rename from src/Fallout.Utilities/IO/AbsolutePath.Children.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Children.cs index ef2316aea..7eab1267d 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Children.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Children.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Create.cs b/src/Fallout.Kernel/IO/AbsolutePath.Create.cs similarity index 95% rename from src/Fallout.Utilities/IO/AbsolutePath.Create.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Create.cs index 35e2fa466..2a9c2786e 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Create.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Create.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.IO; using System.Linq; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Delete.cs b/src/Fallout.Kernel/IO/AbsolutePath.Delete.cs similarity index 91% rename from src/Fallout.Utilities/IO/AbsolutePath.Delete.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Delete.cs index 5f69bbb6c..890c81de8 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Delete.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Delete.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.IO; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Exists.cs b/src/Fallout.Kernel/IO/AbsolutePath.Exists.cs similarity index 97% rename from src/Fallout.Utilities/IO/AbsolutePath.Exists.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Exists.cs index b6b5abf31..8b931b449 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Exists.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Exists.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.CompilerServices; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Extension.cs b/src/Fallout.Kernel/IO/AbsolutePath.Extension.cs similarity index 83% rename from src/Fallout.Utilities/IO/AbsolutePath.Extension.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Extension.cs index b73ee3d22..06b144eb1 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Extension.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Extension.cs @@ -1,8 +1,8 @@ -using System.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using System.IO; +using Fallout.Kernel; +using Fallout.Kernel.Collections; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Find.cs b/src/Fallout.Kernel/IO/AbsolutePath.Find.cs similarity index 88% rename from src/Fallout.Utilities/IO/AbsolutePath.Find.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Find.cs index 9664c0c98..281952b5e 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Find.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Find.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Hash.cs b/src/Fallout.Kernel/IO/AbsolutePath.Hash.cs similarity index 97% rename from src/Fallout.Utilities/IO/AbsolutePath.Hash.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Hash.cs index aebe9c4da..6a628cec3 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Hash.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Hash.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Info.cs b/src/Fallout.Kernel/IO/AbsolutePath.Info.cs similarity index 91% rename from src/Fallout.Utilities/IO/AbsolutePath.Info.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Info.cs index 113eb96db..766951a50 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Info.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Info.cs @@ -1,6 +1,6 @@ -using System.IO; +using System.IO; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Misc.cs b/src/Fallout.Kernel/IO/AbsolutePath.Misc.cs similarity index 82% rename from src/Fallout.Utilities/IO/AbsolutePath.Misc.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Misc.cs index c68ffdf36..fb29d588d 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Misc.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Misc.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.IO; using System.Linq; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.MoveCopy.cs b/src/Fallout.Kernel/IO/AbsolutePath.MoveCopy.cs similarity index 98% rename from src/Fallout.Utilities/IO/AbsolutePath.MoveCopy.cs rename to src/Fallout.Kernel/IO/AbsolutePath.MoveCopy.cs index 829c7e524..3c7062ce0 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.MoveCopy.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.MoveCopy.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.IO; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; [Flags] public enum ExistsPolicy diff --git a/src/Fallout.Utilities/IO/AbsolutePath.ReadWrite.cs b/src/Fallout.Kernel/IO/AbsolutePath.ReadWrite.cs similarity index 98% rename from src/Fallout.Utilities/IO/AbsolutePath.ReadWrite.cs rename to src/Fallout.Kernel/IO/AbsolutePath.ReadWrite.cs index d23b71f68..16fbb8e7d 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.ReadWrite.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.ReadWrite.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; -using Fallout.Common.Utilities; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.Time.cs b/src/Fallout.Kernel/IO/AbsolutePath.Time.cs similarity index 90% rename from src/Fallout.Utilities/IO/AbsolutePath.Time.cs rename to src/Fallout.Kernel/IO/AbsolutePath.Time.cs index a962509bb..b8be962c4 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.Time.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.Time.cs @@ -1,8 +1,9 @@ -using System; +using System; using System.IO; using System.Linq; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; partial class AbsolutePathExtensions { diff --git a/src/Fallout.Utilities/IO/AbsolutePath.cs b/src/Fallout.Kernel/IO/AbsolutePath.cs similarity index 98% rename from src/Fallout.Utilities/IO/AbsolutePath.cs rename to src/Fallout.Kernel/IO/AbsolutePath.cs index c95fd5136..e15069136 100644 --- a/src/Fallout.Utilities/IO/AbsolutePath.cs +++ b/src/Fallout.Kernel/IO/AbsolutePath.cs @@ -5,10 +5,10 @@ using System.Globalization; using System.IO; using System.Linq; -using Fallout.Common.Utilities; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; /// /// Represents an absolute path without distinction between files and directories. diff --git a/src/Fallout.Utilities/IO/IAbsolutePathHolder.cs b/src/Fallout.Kernel/IO/IAbsolutePathHolder.cs similarity index 78% rename from src/Fallout.Utilities/IO/IAbsolutePathHolder.cs rename to src/Fallout.Kernel/IO/IAbsolutePathHolder.cs index 3a92d9f1f..572cacbf6 100644 --- a/src/Fallout.Utilities/IO/IAbsolutePathHolder.cs +++ b/src/Fallout.Kernel/IO/IAbsolutePathHolder.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public interface IAbsolutePathHolder { diff --git a/src/Fallout.Utilities/IO/PathConstruction.cs b/src/Fallout.Kernel/IO/PathConstruction.cs similarity index 98% rename from src/Fallout.Utilities/IO/PathConstruction.cs rename to src/Fallout.Kernel/IO/PathConstruction.cs index 6761ff189..73d099654 100644 --- a/src/Fallout.Utilities/IO/PathConstruction.cs +++ b/src/Fallout.Kernel/IO/PathConstruction.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; // ReSharper disable ArrangeMethodOrOperatorBody -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; /// ///

Provides an abstraction for generating Windows/Unix/UNC-compliant diff --git a/src/Fallout.Utilities/IO/RelativePath.cs b/src/Fallout.Kernel/IO/RelativePath.cs similarity index 93% rename from src/Fallout.Utilities/IO/RelativePath.cs rename to src/Fallout.Kernel/IO/RelativePath.cs index 3ac4af348..687724298 100644 --- a/src/Fallout.Utilities/IO/RelativePath.cs +++ b/src/Fallout.Kernel/IO/RelativePath.cs @@ -1,9 +1,10 @@ using System; using System.Diagnostics; using System.Linq; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; ///

/// Represents a relative path with the separator of the current operating system. diff --git a/src/Fallout.Common/IO/TextTasks.cs b/src/Fallout.Kernel/IO/TextTasks.cs similarity index 89% rename from src/Fallout.Common/IO/TextTasks.cs rename to src/Fallout.Kernel/IO/TextTasks.cs index b941d1db6..e9b722b66 100644 --- a/src/Fallout.Common/IO/TextTasks.cs +++ b/src/Fallout.Kernel/IO/TextTasks.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static class TextTasks { diff --git a/src/Fallout.Utilities/IO/UnixRelativePath.cs b/src/Fallout.Kernel/IO/UnixRelativePath.cs similarity index 85% rename from src/Fallout.Utilities/IO/UnixRelativePath.cs rename to src/Fallout.Kernel/IO/UnixRelativePath.cs index b1561a0a0..348bb20a2 100644 --- a/src/Fallout.Utilities/IO/UnixRelativePath.cs +++ b/src/Fallout.Kernel/IO/UnixRelativePath.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; /// /// Represents a relative path with the UNIX separator (forward slash). diff --git a/src/Fallout.Utilities/IO/WinRelativePath.cs b/src/Fallout.Kernel/IO/WinRelativePath.cs similarity index 85% rename from src/Fallout.Utilities/IO/WinRelativePath.cs rename to src/Fallout.Kernel/IO/WinRelativePath.cs index 45330a634..a9db7147f 100644 --- a/src/Fallout.Utilities/IO/WinRelativePath.cs +++ b/src/Fallout.Kernel/IO/WinRelativePath.cs @@ -1,8 +1,8 @@ using System; using System.Linq; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; /// /// Represents a relative path with the Windows separator (backward slash). diff --git a/src/Fallout.Common/IO/XmlTasks.cs b/src/Fallout.Kernel/IO/XmlTasks.cs similarity index 98% rename from src/Fallout.Common/IO/XmlTasks.cs rename to src/Fallout.Kernel/IO/XmlTasks.cs index 684b0eddb..f1a3e73c8 100644 --- a/src/Fallout.Common/IO/XmlTasks.cs +++ b/src/Fallout.Kernel/IO/XmlTasks.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -6,8 +6,9 @@ using System.Xml; using System.Xml.Linq; using System.Xml.XPath; +using Fallout.Kernel; -namespace Fallout.Common.IO; +namespace Fallout.Kernel.IO; public static class XmlTasks { diff --git a/src/Fallout.Utilities/Lazy.cs b/src/Fallout.Kernel/Lazy.cs similarity index 85% rename from src/Fallout.Utilities/Lazy.cs rename to src/Fallout.Kernel/Lazy.cs index f5f69da89..da31fc9cc 100644 --- a/src/Fallout.Utilities/Lazy.cs +++ b/src/Fallout.Kernel/Lazy.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Diagnostics; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/Object.Apply.cs b/src/Fallout.Kernel/Object.Apply.cs similarity index 86% rename from src/Fallout.Utilities/Object.Apply.cs rename to src/Fallout.Kernel/Object.Apply.cs index 18ef3f025..dd017aa11 100644 --- a/src/Fallout.Utilities/Object.Apply.cs +++ b/src/Fallout.Kernel/Object.Apply.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; partial class ObjectExtensions { diff --git a/src/Fallout.Utilities/Object.Clone.cs b/src/Fallout.Kernel/Object.Clone.cs similarity index 94% rename from src/Fallout.Utilities/Object.Clone.cs rename to src/Fallout.Kernel/Object.Clone.cs index 5b42508cf..74fbad892 100644 --- a/src/Fallout.Utilities/Object.Clone.cs +++ b/src/Fallout.Kernel/Object.Clone.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Runtime.Serialization; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/Object.When.cs b/src/Fallout.Kernel/Object.When.cs similarity index 88% rename from src/Fallout.Utilities/Object.When.cs rename to src/Fallout.Kernel/Object.When.cs index 7f9c0df29..acd946fe0 100644 --- a/src/Fallout.Utilities/Object.When.cs +++ b/src/Fallout.Kernel/Object.When.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; partial class ObjectExtensions { diff --git a/src/Fallout.Utilities/Reflection/Assembly.Versioning.cs b/src/Fallout.Kernel/Reflection/Assembly.Versioning.cs similarity index 95% rename from src/Fallout.Utilities/Reflection/Assembly.Versioning.cs rename to src/Fallout.Kernel/Reflection/Assembly.Versioning.cs index dca95e18e..17248e653 100644 --- a/src/Fallout.Utilities/Reflection/Assembly.Versioning.cs +++ b/src/Fallout.Kernel/Reflection/Assembly.Versioning.cs @@ -2,7 +2,7 @@ using System.Linq; using System.Reflection; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class AssemblyExtensions { diff --git a/src/Fallout.Utilities/Reflection/ReflectionUtility.Conversion.cs b/src/Fallout.Kernel/Reflection/ReflectionUtility.Conversion.cs similarity index 96% rename from src/Fallout.Utilities/Reflection/ReflectionUtility.Conversion.cs rename to src/Fallout.Kernel/Reflection/ReflectionUtility.Conversion.cs index 0e689e788..c5b4c9ac4 100644 --- a/src/Fallout.Utilities/Reflection/ReflectionUtility.Conversion.cs +++ b/src/Fallout.Kernel/Reflection/ReflectionUtility.Conversion.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class ReflectionUtility { diff --git a/src/Fallout.Utilities/Reflection/ReflectionUtility.DisplayText.cs b/src/Fallout.Kernel/Reflection/ReflectionUtility.DisplayText.cs similarity index 98% rename from src/Fallout.Utilities/Reflection/ReflectionUtility.DisplayText.cs rename to src/Fallout.Kernel/Reflection/ReflectionUtility.DisplayText.cs index 1bc409fd5..622e5e0e2 100644 --- a/src/Fallout.Utilities/Reflection/ReflectionUtility.DisplayText.cs +++ b/src/Fallout.Kernel/Reflection/ReflectionUtility.DisplayText.cs @@ -1,11 +1,11 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class ReflectionUtility { diff --git a/src/Fallout.Utilities/Reflection/ReflectionUtility.Expressions.cs b/src/Fallout.Kernel/Reflection/ReflectionUtility.Expressions.cs similarity index 95% rename from src/Fallout.Utilities/Reflection/ReflectionUtility.Expressions.cs rename to src/Fallout.Kernel/Reflection/ReflectionUtility.Expressions.cs index 102e6ed0e..2028bdd66 100644 --- a/src/Fallout.Utilities/Reflection/ReflectionUtility.Expressions.cs +++ b/src/Fallout.Kernel/Reflection/ReflectionUtility.Expressions.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Reflection; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class ReflectionUtility { diff --git a/src/Fallout.Utilities/Reflection/ReflectionUtility.Invocation.cs b/src/Fallout.Kernel/Reflection/ReflectionUtility.Invocation.cs similarity index 98% rename from src/Fallout.Utilities/Reflection/ReflectionUtility.Invocation.cs rename to src/Fallout.Kernel/Reflection/ReflectionUtility.Invocation.cs index c8c8c59ce..1f73e7e28 100644 --- a/src/Fallout.Utilities/Reflection/ReflectionUtility.Invocation.cs +++ b/src/Fallout.Kernel/Reflection/ReflectionUtility.Invocation.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using System.Linq.Expressions; using System.Reflection; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class ReflectionUtility { diff --git a/src/Fallout.Utilities/Reflection/ReflectionUtility.cs b/src/Fallout.Kernel/Reflection/ReflectionUtility.cs similarity index 99% rename from src/Fallout.Utilities/Reflection/ReflectionUtility.cs rename to src/Fallout.Kernel/Reflection/ReflectionUtility.cs index 46ddb1b55..d3a5d7192 100644 --- a/src/Fallout.Utilities/Reflection/ReflectionUtility.cs +++ b/src/Fallout.Kernel/Reflection/ReflectionUtility.cs @@ -3,9 +3,9 @@ using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class ReflectionUtility { diff --git a/src/Fallout.Utilities/Reflection/ResourceUtility.cs b/src/Fallout.Kernel/Reflection/ResourceUtility.cs similarity index 94% rename from src/Fallout.Utilities/Reflection/ResourceUtility.cs rename to src/Fallout.Kernel/Reflection/ResourceUtility.cs index ddb8c2584..1c244c4bb 100644 --- a/src/Fallout.Utilities/Reflection/ResourceUtility.cs +++ b/src/Fallout.Kernel/Reflection/ResourceUtility.cs @@ -3,9 +3,9 @@ using System.IO; using System.Linq; using System.Reflection; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class ResourceUtility { diff --git a/src/Fallout.Utilities/Security/EncryptionUtility.cs b/src/Fallout.Kernel/Security/EncryptionUtility.cs similarity index 99% rename from src/Fallout.Utilities/Security/EncryptionUtility.cs rename to src/Fallout.Kernel/Security/EncryptionUtility.cs index f5978a29f..b2db6116c 100644 --- a/src/Fallout.Utilities/Security/EncryptionUtility.cs +++ b/src/Fallout.Kernel/Security/EncryptionUtility.cs @@ -5,7 +5,7 @@ using System.Security.Cryptography; using System.Text; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; /// /// Symmetric encryption for the fallout :secrets flow. Two ciphertext formats are recognised: diff --git a/src/Fallout.Utilities/Shims/CallerArgumentExpressionAttribute.cs b/src/Fallout.Kernel/Shims/CallerArgumentExpressionAttribute.cs similarity index 100% rename from src/Fallout.Utilities/Shims/CallerArgumentExpressionAttribute.cs rename to src/Fallout.Kernel/Shims/CallerArgumentExpressionAttribute.cs diff --git a/src/Fallout.Utilities/Shims/ExcludeAssemblyFromCodeCoverageAttribute.cs b/src/Fallout.Kernel/Shims/ExcludeAssemblyFromCodeCoverageAttribute.cs similarity index 100% rename from src/Fallout.Utilities/Shims/ExcludeAssemblyFromCodeCoverageAttribute.cs rename to src/Fallout.Kernel/Shims/ExcludeAssemblyFromCodeCoverageAttribute.cs diff --git a/src/Fallout.Utilities/Shims/IsExternalInit.cs b/src/Fallout.Kernel/Shims/IsExternalInit.cs similarity index 100% rename from src/Fallout.Utilities/Shims/IsExternalInit.cs rename to src/Fallout.Kernel/Shims/IsExternalInit.cs diff --git a/src/Fallout.Utilities/Task.WaitAll.cs b/src/Fallout.Kernel/Task.WaitAll.cs similarity index 91% rename from src/Fallout.Utilities/Task.WaitAll.cs rename to src/Fallout.Kernel/Task.WaitAll.cs index 3c88a60ca..982b6b934 100644 --- a/src/Fallout.Utilities/Task.WaitAll.cs +++ b/src/Fallout.Kernel/Task.WaitAll.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/Text/String.Capitalize.cs b/src/Fallout.Kernel/Text/String.Capitalize.cs similarity index 93% rename from src/Fallout.Utilities/Text/String.Capitalize.cs rename to src/Fallout.Kernel/Text/String.Capitalize.cs index a7504e9af..57abf924d 100644 --- a/src/Fallout.Utilities/Text/String.Capitalize.cs +++ b/src/Fallout.Kernel/Text/String.Capitalize.cs @@ -1,7 +1,7 @@ using System.Diagnostics; using System.Globalization; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.Utilities/Text/String.Emptiness.cs b/src/Fallout.Kernel/Text/String.Emptiness.cs similarity index 96% rename from src/Fallout.Utilities/Text/String.Emptiness.cs rename to src/Fallout.Kernel/Text/String.Emptiness.cs index af6abbb26..63efd37f6 100644 --- a/src/Fallout.Utilities/Text/String.Emptiness.cs +++ b/src/Fallout.Kernel/Text/String.Emptiness.cs @@ -1,5 +1,5 @@ -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Escape.cs b/src/Fallout.Kernel/Text/String.Escape.cs similarity index 89% rename from src/Fallout.Utilities/Text/String.Escape.cs rename to src/Fallout.Kernel/Text/String.Escape.cs index 84da36d33..9960102c7 100644 --- a/src/Fallout.Utilities/Text/String.Escape.cs +++ b/src/Fallout.Kernel/Text/String.Escape.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.GetHash.cs b/src/Fallout.Kernel/Text/String.GetHash.cs similarity index 97% rename from src/Fallout.Utilities/Text/String.GetHash.cs rename to src/Fallout.Kernel/Text/String.GetHash.cs index 477a7e0ea..e8135d192 100644 --- a/src/Fallout.Utilities/Text/String.GetHash.cs +++ b/src/Fallout.Kernel/Text/String.GetHash.cs @@ -3,7 +3,7 @@ using System.Security.Cryptography; using System.Text; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Indent.cs b/src/Fallout.Kernel/Text/String.Indent.cs similarity index 82% rename from src/Fallout.Utilities/Text/String.Indent.cs rename to src/Fallout.Kernel/Text/String.Indent.cs index 4fd5c7da1..9753b774b 100644 --- a/src/Fallout.Utilities/Text/String.Indent.cs +++ b/src/Fallout.Kernel/Text/String.Indent.cs @@ -1,5 +1,5 @@ -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.IndexOf.cs b/src/Fallout.Kernel/Text/String.IndexOf.cs similarity index 81% rename from src/Fallout.Utilities/Text/String.IndexOf.cs rename to src/Fallout.Kernel/Text/String.IndexOf.cs index 4314d4206..e4b3f79c3 100644 --- a/src/Fallout.Utilities/Text/String.IndexOf.cs +++ b/src/Fallout.Kernel/Text/String.IndexOf.cs @@ -1,6 +1,6 @@ -using System.Text.RegularExpressions; +using System.Text.RegularExpressions; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Join.cs b/src/Fallout.Kernel/Text/String.Join.cs similarity index 99% rename from src/Fallout.Utilities/Text/String.Join.cs rename to src/Fallout.Kernel/Text/String.Join.cs index 2e5c9b17d..3335f5323 100644 --- a/src/Fallout.Utilities/Text/String.Join.cs +++ b/src/Fallout.Kernel/Text/String.Join.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.KnownWords.cs b/src/Fallout.Kernel/Text/String.KnownWords.cs similarity index 89% rename from src/Fallout.Utilities/Text/String.KnownWords.cs rename to src/Fallout.Kernel/Text/String.KnownWords.cs index 62bff0920..796bc0f66 100644 --- a/src/Fallout.Utilities/Text/String.KnownWords.cs +++ b/src/Fallout.Kernel/Text/String.KnownWords.cs @@ -1,4 +1,4 @@ -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.PrependAppend.cs b/src/Fallout.Kernel/Text/String.PrependAppend.cs similarity index 92% rename from src/Fallout.Utilities/Text/String.PrependAppend.cs rename to src/Fallout.Kernel/Text/String.PrependAppend.cs index 7c4c44304..c57123aa1 100644 --- a/src/Fallout.Utilities/Text/String.PrependAppend.cs +++ b/src/Fallout.Kernel/Text/String.PrependAppend.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Quoting.cs b/src/Fallout.Kernel/Text/String.Quoting.cs similarity index 98% rename from src/Fallout.Utilities/Text/String.Quoting.cs rename to src/Fallout.Kernel/Text/String.Quoting.cs index c34040ccb..e32ccc968 100644 --- a/src/Fallout.Utilities/Text/String.Quoting.cs +++ b/src/Fallout.Kernel/Text/String.Quoting.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Repeat.cs b/src/Fallout.Kernel/Text/String.Repeat.cs similarity index 79% rename from src/Fallout.Utilities/Text/String.Repeat.cs rename to src/Fallout.Kernel/Text/String.Repeat.cs index 31c5b60a5..b347075f5 100644 --- a/src/Fallout.Utilities/Text/String.Repeat.cs +++ b/src/Fallout.Kernel/Text/String.Repeat.cs @@ -1,5 +1,5 @@ - -namespace Fallout.Common.Utilities; + +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Replace.cs b/src/Fallout.Kernel/Text/String.Replace.cs similarity index 96% rename from src/Fallout.Utilities/Text/String.Replace.cs rename to src/Fallout.Kernel/Text/String.Replace.cs index 6fa3db28d..3ab13230d 100644 --- a/src/Fallout.Utilities/Text/String.Replace.cs +++ b/src/Fallout.Kernel/Text/String.Replace.cs @@ -3,7 +3,7 @@ using System.Linq; using System.Text.RegularExpressions; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Split.cs b/src/Fallout.Kernel/Text/String.Split.cs similarity index 98% rename from src/Fallout.Utilities/Text/String.Split.cs rename to src/Fallout.Kernel/Text/String.Split.cs index 8b7e5877f..2fdfebff9 100644 --- a/src/Fallout.Utilities/Text/String.Split.cs +++ b/src/Fallout.Kernel/Text/String.Split.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.StartsEndsContains.cs b/src/Fallout.Kernel/Text/String.StartsEndsContains.cs similarity index 99% rename from src/Fallout.Utilities/Text/String.StartsEndsContains.cs rename to src/Fallout.Kernel/Text/String.StartsEndsContains.cs index 94c65c23f..dbe38b009 100644 --- a/src/Fallout.Utilities/Text/String.StartsEndsContains.cs +++ b/src/Fallout.Kernel/Text/String.StartsEndsContains.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Trim.cs b/src/Fallout.Kernel/Text/String.Trim.cs similarity index 98% rename from src/Fallout.Utilities/Text/String.Trim.cs rename to src/Fallout.Kernel/Text/String.Trim.cs index b72b53c13..dfa74d3ec 100644 --- a/src/Fallout.Utilities/Text/String.Trim.cs +++ b/src/Fallout.Kernel/Text/String.Trim.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/String.Truncate.cs b/src/Fallout.Kernel/Text/String.Truncate.cs similarity index 86% rename from src/Fallout.Utilities/Text/String.Truncate.cs rename to src/Fallout.Kernel/Text/String.Truncate.cs index 7270b5acc..7828e8fca 100644 --- a/src/Fallout.Utilities/Text/String.Truncate.cs +++ b/src/Fallout.Kernel/Text/String.Truncate.cs @@ -1,7 +1,7 @@ using System; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; partial class StringExtensions { diff --git a/src/Fallout.Utilities/Text/Xml/XElement.GetAttributeValue.cs b/src/Fallout.Kernel/Text/Xml/XElement.GetAttributeValue.cs similarity index 82% rename from src/Fallout.Utilities/Text/Xml/XElement.GetAttributeValue.cs rename to src/Fallout.Kernel/Text/Xml/XElement.GetAttributeValue.cs index 947306a76..70fbf1adf 100644 --- a/src/Fallout.Utilities/Text/Xml/XElement.GetAttributeValue.cs +++ b/src/Fallout.Kernel/Text/Xml/XElement.GetAttributeValue.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Linq; using System.Xml.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class XElementExtensions { diff --git a/src/Fallout.Utilities/Text/Xml/XNode.XPathEvaluateValue.cs b/src/Fallout.Kernel/Text/Xml/XNode.XPathEvaluateValue.cs similarity index 97% rename from src/Fallout.Utilities/Text/Xml/XNode.XPathEvaluateValue.cs rename to src/Fallout.Kernel/Text/Xml/XNode.XPathEvaluateValue.cs index 38b68371d..0ddda4bf0 100644 --- a/src/Fallout.Utilities/Text/Xml/XNode.XPathEvaluateValue.cs +++ b/src/Fallout.Kernel/Text/Xml/XNode.XPathEvaluateValue.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; @@ -6,7 +6,7 @@ using System.Xml.Linq; using System.Xml.XPath; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static partial class XNodeExtensions { diff --git a/src/Fallout.Utilities/Text/Xml/XmlExtensions.cs b/src/Fallout.Kernel/Text/Xml/XmlExtensions.cs similarity index 98% rename from src/Fallout.Utilities/Text/Xml/XmlExtensions.cs rename to src/Fallout.Kernel/Text/Xml/XmlExtensions.cs index a99ba8a9d..d088e40d1 100644 --- a/src/Fallout.Utilities/Text/Xml/XmlExtensions.cs +++ b/src/Fallout.Kernel/Text/Xml/XmlExtensions.cs @@ -1,9 +1,9 @@ using System; using System.Xml.Linq; using System.Xml.Serialization; -using Fallout.Common.IO; +using Fallout.Kernel.IO; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; public static class XmlExtensions { diff --git a/src/Fallout.Utilities/Url.WithUtmValues.cs b/src/Fallout.Kernel/Url.WithUtmValues.cs similarity index 94% rename from src/Fallout.Utilities/Url.WithUtmValues.cs rename to src/Fallout.Kernel/Url.WithUtmValues.cs index 937d55da5..cfb754936 100644 --- a/src/Fallout.Utilities/Url.WithUtmValues.cs +++ b/src/Fallout.Kernel/Url.WithUtmValues.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -namespace Fallout.Common.Utilities; +namespace Fallout.Kernel; [DebuggerNonUserCode] [DebuggerStepThrough] diff --git a/src/Fallout.MSBuildTasks/CodeGenerationTask.cs b/src/Fallout.MSBuildTasks/CodeGenerationTask.cs index 042b73cda..fb463af6f 100644 --- a/src/Fallout.MSBuildTasks/CodeGenerationTask.cs +++ b/src/Fallout.MSBuildTasks/CodeGenerationTask.cs @@ -3,8 +3,8 @@ using Microsoft.Build.Framework; using Fallout.CodeGeneration; using Fallout.CodeGeneration.Model; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; namespace Fallout.MSBuildTasks; diff --git a/src/Fallout.MSBuildTasks/ContextAwareTask.cs b/src/Fallout.MSBuildTasks/ContextAwareTask.cs index a3dfb9f4d..2214eb318 100644 --- a/src/Fallout.MSBuildTasks/ContextAwareTask.cs +++ b/src/Fallout.MSBuildTasks/ContextAwareTask.cs @@ -4,10 +4,9 @@ using System.Reflection; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -using Fallout.Common; +using Fallout.Kernel; #if NETCOREAPP using System.Runtime.Loader; -using Fallout.Common.Utilities; #endif namespace Fallout.MSBuildTasks; diff --git a/src/Fallout.MSBuildTasks/EmbedPackagesForSelfContainedTask.cs b/src/Fallout.MSBuildTasks/EmbedPackagesForSelfContainedTask.cs index 6304e11e5..b9ef8809d 100644 --- a/src/Fallout.MSBuildTasks/EmbedPackagesForSelfContainedTask.cs +++ b/src/Fallout.MSBuildTasks/EmbedPackagesForSelfContainedTask.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.IO; using System.Linq; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel; namespace Fallout.MSBuildTasks; diff --git a/src/Fallout.MSBuildTasks/Fallout.MSBuildTasks.csproj b/src/Fallout.MSBuildTasks/Fallout.MSBuildTasks.csproj index 4a9ebce16..f1df506e6 100644 --- a/src/Fallout.MSBuildTasks/Fallout.MSBuildTasks.csproj +++ b/src/Fallout.MSBuildTasks/Fallout.MSBuildTasks.csproj @@ -2,11 +2,10 @@ false - net10.0;net472 + net10.0 - @@ -40,4 +39,9 @@ + + + + + diff --git a/src/Fallout.MSBuildTasks/PackPackageToolsTask.cs b/src/Fallout.MSBuildTasks/PackPackageToolsTask.cs index 4de298bed..8882b0fd0 100644 --- a/src/Fallout.MSBuildTasks/PackPackageToolsTask.cs +++ b/src/Fallout.MSBuildTasks/PackPackageToolsTask.cs @@ -4,8 +4,9 @@ using System.Linq; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; -using Fallout.Common.Tooling; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel.IO; namespace Fallout.MSBuildTasks; diff --git a/src/Fallout.Migrate.Analyzers/Fallout.Migrate.Analyzers.csproj b/src/Fallout.Migrate.Analyzers/Fallout.Migrate.Analyzers.csproj index a9326eb9d..22175ccc7 100644 --- a/src/Fallout.Migrate.Analyzers/Fallout.Migrate.Analyzers.csproj +++ b/src/Fallout.Migrate.Analyzers/Fallout.Migrate.Analyzers.csproj @@ -30,4 +30,11 @@ + + + + + + diff --git a/src/Fallout.Migrate.Analyzers/NukeMigrationCodeFix.cs b/src/Fallout.Migrate.Analyzers/NukeMigrationCodeFix.cs index d3a0758e7..4554e0848 100644 --- a/src/Fallout.Migrate.Analyzers/NukeMigrationCodeFix.cs +++ b/src/Fallout.Migrate.Analyzers/NukeMigrationCodeFix.cs @@ -6,6 +6,7 @@ using Microsoft.CodeAnalysis.CodeFixes; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Fallout.Migration.Shared; namespace Fallout.Migrate.Analyzers; @@ -54,13 +55,24 @@ private static async Task ApplyFixAsync(Document document, SyntaxNode private sealed class NukeToFalloutRewriter : CSharpSyntaxRewriter { + public override SyntaxNode? VisitQualifiedName(QualifiedNameSyntax node) + { + // Map the whole dotted name by longest Nuke prefix (e.g. Nuke.Common.Tools.DotNet → + // Fallout.Application.Tools.DotNet), via the shared canonical map. Replacing the bare `Nuke` + // token alone would yield the dead `Fallout.Common.*` namespace (post-onion). + var mapped = MapNamespacePrefix(node.ToString()); + return mapped is null + ? base.VisitQualifiedName(node) + : SyntaxFactory.ParseName(mapped).WithTriviaFrom(node); + } + public override SyntaxNode? VisitIdentifierName(IdentifierNameSyntax node) { var replacement = node.Identifier.ValueText switch { - "Nuke" => "Fallout", "NukeBuild" => "FalloutBuild", "INukeBuild" => "IFalloutBuild", + "Nuke" => "Fallout", // lone Nuke identifier (not part of a qualified name) _ => null, }; @@ -72,5 +84,18 @@ private sealed class NukeToFalloutRewriter : CSharpSyntaxRewriter replacement, node.Identifier.TrailingTrivia)); } + + /// Applies the canonical Nuke→Fallout prefix map (longest first); null if no prefix matches. + private static string? MapNamespacePrefix(string dottedName) + { + foreach (var pair in NukeNamespaceMap.MigrationPairsLongestFirst) + { + if (dottedName == pair.Key) + return pair.Value; + if (dottedName.StartsWith(pair.Key + ".", System.StringComparison.Ordinal)) + return pair.Value + dottedName.Substring(pair.Key.Length); + } + return null; + } } } diff --git a/src/Fallout.Migrate/CodeRewriter.cs b/src/Fallout.Migrate/CodeRewriter.cs index 9eeff637b..c5d3a3966 100644 --- a/src/Fallout.Migrate/CodeRewriter.cs +++ b/src/Fallout.Migrate/CodeRewriter.cs @@ -1,15 +1,21 @@ +using System.Linq; using System.Text.RegularExpressions; +using Fallout.Migration.Shared; namespace Fallout.Migrate; internal static class CodeRewriter { - // Anchored prefix swap: `\bNuke\.` → `Fallout.`. Covers using directives, - // attribute references, qualified type names, namespace declarations. - // The trailing `(?=[A-Z])` lookahead avoids matching `Nuke.json` filenames - // or other lowercase tails the prefix audit deliberately preserved. - private static readonly Regex NamespacePrefix = - new(@"\bNuke\.(?=[A-Z])", RegexOptions.Compiled); + // Per-namespace prefix rewrites driven by the canonical Nuke<->Fallout map (longest Nuke prefix first, + // so `Nuke.Common.Tools` resolves to `Fallout.Application.Tools` before the catch-all `Nuke.Common` → + // `Fallout.Application` rule). This replaces the old blind `Nuke.` → `Fallout.` swap, which the onion + // realignment broke: it produced dead `Fallout.Common.*` namespaces (now `Fallout.Application.*` etc.). + // Each prefix is matched on a word boundary + a `.`/non-identifier tail so we hit namespace segments, + // not filenames (`Nuke.json`) or unrelated identifiers. + private static readonly (Regex Pattern, string Replacement)[] s_namespaceRewrites = + NukeNamespaceMap.MigrationPairsLongestFirst + .Select(p => (new Regex($@"\b{Regex.Escape(p.Key)}(?=\.|\b)", RegexOptions.Compiled), p.Value)) + .ToArray(); // Bare type renames done in the Fallout rebrand (#59). private static readonly Regex NukeBuildType = new(@"\bNukeBuild\b", RegexOptions.Compiled); @@ -19,7 +25,10 @@ public static RewriteResult Rewrite(string original) { var edits = 0; - var content = NamespacePrefix.Replace(original, _ => { edits++; return "Fallout."; }); + var content = original; + foreach (var (pattern, replacement) in s_namespaceRewrites) + content = pattern.Replace(content, _ => { edits++; return replacement; }); + content = INukeBuildType.Replace(content, _ => { edits++; return "IFalloutBuild"; }); content = NukeBuildType.Replace(content, _ => { edits++; return "FalloutBuild"; }); diff --git a/src/Fallout.Migrate/CsprojRewriter.cs b/src/Fallout.Migrate/CsprojRewriter.cs index 1aca7300a..81f404f83 100644 --- a/src/Fallout.Migrate/CsprojRewriter.cs +++ b/src/Fallout.Migrate/CsprojRewriter.cs @@ -1,24 +1,29 @@ +using System.Collections.Generic; using System.Text.RegularExpressions; +using Fallout.Migration.Shared; namespace Fallout.Migrate; internal static class CsprojRewriter { - // Combined rewrite: Nuke.X PackageReference WITH an inline Version attribute → Fallout.X - // at the current Fallout version. NUKE-era pins (e.g. `Version="10.1.0"`) don't exist as - // Fallout.* packages and produce NU1603 ("not found, falling back to next-higher") which - // `WarningsAsErrors` in the migrated project escalates. Bumping in the same pass avoids - // a broken post-migrate build (#217). Tolerates extra attributes between Include and Version - // (e.g. `PrivateAssets="all"`). + // The known NUKE→Fallout package-ID rewrites (canonical map). Post-onion these are NOT a `Nuke.X → + // Fallout.X` prefix swap: NUKE's Nuke.Common consumer package maps to the `Fallout` meta-package, and + // Nuke.Components to Fallout.Application.Components. A blind swap would emit dead `Fallout.Common`/ + // `Fallout.Components` package IDs. + private static readonly IReadOnlyDictionary s_packageIdMap = NukeNamespaceMap.PackageIdMap; + + // Combined rewrite: a known Nuke.X PackageReference WITH an inline Version attribute → its Fallout + // package at the current Fallout version. NUKE-era pins (e.g. `Version="10.1.0"`) don't exist as the + // Fallout packages and produce NU1603 which `WarningsAsErrors` escalates; bumping in the same pass + // avoids a broken post-migrate build (#217). Tolerates extra attributes between Include and Version. private static readonly Regex NukePackageWithInlineVersionPattern = new( - @"(?[A-Z][A-Za-z0-9.]+)(?""[^>]*?\s+Version="")[^""]+", + @"(?Nuke\.[A-Z][A-Za-z0-9.]+)(?""[^>]*?\s+Version="")[^""]+", RegexOptions.Compiled); - // PackageReference / ProjectReference `Include="Nuke.X"` → `Include="Fallout.X"` — namespace - // only. Catches references that DON'T have an inline Version (central package management). - // Must run AFTER NukePackageWithInlineVersionPattern so it only touches what's left. + // PackageReference / ProjectReference `Include="Nuke.X"` → the mapped Fallout package — catches refs + // that DON'T have an inline Version (central package management). Runs after the inline-version pass. private static readonly Regex PackageReferencePattern = - new(@"(?<=\b(?:Include|Update|Remove)="")Nuke\.(?=[A-Z])", RegexOptions.Compiled); + new(@"(?<=\b(?:Include|Update|Remove)="")(?Nuke\.[A-Za-z0-9.]+)", RegexOptions.Compiled); // MSBuild element/property names that begin with `Nuke` followed by an uppercase // letter (e.g. ...). Limited to known consumer-facing names from @@ -48,19 +53,24 @@ public static RewriteResult Rewrite(string original, string falloutVersion) var edits = 0; var content = original; - // Pass 1 — combined Include + Version rewrite for Nuke.X PackageReferences with inline Version. + // Pass 1 — combined Include + Version rewrite for known Nuke.X PackageReferences with inline Version. content = NukePackageWithInlineVersionPattern.Replace(content, m => { + if (!s_packageIdMap.TryGetValue(m.Groups["id"].Value, out var falloutId)) + return m.Value; // unknown Nuke.* package — leave it (don't invent a dead Fallout id) edits++; - return m.Groups["prefix"].Value - + "Fallout." + m.Groups["name"].Value - + m.Groups["between"].Value - + falloutVersion; + return m.Groups["prefix"].Value + falloutId + m.Groups["between"].Value + falloutVersion; }); - // Pass 2 — namespace-only rewrites for anything Pass 1 didn't consume (CPM-managed - // PackageReferences without inline Version, ProjectReferences, MSBuild properties). - content = PackageReferencePattern.Replace(content, _ => { edits++; return "Fallout."; }); + // Pass 2 — Include/Update/Remove rewrites for anything Pass 1 didn't consume (CPM-managed + // PackageReferences without inline Version, ProjectReferences). Known package IDs only. + content = PackageReferencePattern.Replace(content, m => + { + if (!s_packageIdMap.TryGetValue(m.Groups["id"].Value, out var falloutId)) + return m.Value; + edits++; + return falloutId; + }); content = MSBuildPropertyPattern.Replace(content, _ => { edits++; return "Fallout"; }); // Pass 3 — strip the stale System.Security.Cryptography.Xml direct pin. diff --git a/src/Fallout.Migrate/Fallout.Migrate.csproj b/src/Fallout.Migrate/Fallout.Migrate.csproj index 4427b3e44..a982d6197 100644 --- a/src/Fallout.Migrate/Fallout.Migrate.csproj +++ b/src/Fallout.Migrate/Fallout.Migrate.csproj @@ -14,4 +14,11 @@ + + + + + + diff --git a/src/Fallout.SourceGenerators/CodeAnalysisExtensions.cs b/src/Fallout.SourceGenerators/CodeAnalysisExtensions.cs index a00c38fff..ae332dbe8 100644 --- a/src/Fallout.SourceGenerators/CodeAnalysisExtensions.cs +++ b/src/Fallout.SourceGenerators/CodeAnalysisExtensions.cs @@ -1,8 +1,8 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Microsoft.CodeAnalysis; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; namespace Fallout.SourceGenerators; diff --git a/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj b/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj index 4bb79c6b1..e20866180 100644 --- a/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj +++ b/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj @@ -13,9 +13,8 @@ - - - + + @@ -40,13 +39,27 @@ - - - + + + + + + + + + + + + + + + + diff --git a/src/Fallout.SourceGenerators/Shims/FalloutBuild.cs b/src/Fallout.SourceGenerators/Shims/FalloutBuild.cs deleted file mode 100644 index a556028f4..000000000 --- a/src/Fallout.SourceGenerators/Shims/FalloutBuild.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Linq; - -namespace Fallout.Common; - -internal static class FalloutBuild -{ -} diff --git a/src/Fallout.SourceGenerators/StronglyTypedSolutionGenerator.cs b/src/Fallout.SourceGenerators/StronglyTypedSolutionGenerator.cs index 689f6ef9a..7316863c7 100644 --- a/src/Fallout.SourceGenerators/StronglyTypedSolutionGenerator.cs +++ b/src/Fallout.SourceGenerators/StronglyTypedSolutionGenerator.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -7,13 +7,14 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Infrastructure.Solutions; using Scriban; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; +using Fallout.Application.Solutions; +using Fallout.Build.Shared; namespace Fallout.SourceGenerators; @@ -31,7 +32,7 @@ public void Execute(GeneratorExecutionContext context) var allTypes = context.Compilation.Assembly.GlobalNamespace.GetAllTypes(); var members = allTypes.SelectMany(x => x.GetMembers()) .Where(x => x is IPropertySymbol or IFieldSymbol) - .Select(x => (Member: x, AttributeData: x.GetAttributeData("global::Fallout.Solutions.SolutionAttribute"))) + .Select(x => (Member: x, AttributeData: x.GetAttributeData("global::Fallout.Application.Solutions.SolutionAttribute"))) .Where(x => x.AttributeData?.NamedArguments.SingleOrDefault(x => x.Key == "GenerateProjects").Value.Value as bool? ?? false) .ToList(); if (members.Count == 0) @@ -46,7 +47,7 @@ public void Execute(GeneratorExecutionContext context) : GetSolutionFileFromParametersFile(rootDirectory, member.Name); var fancyNaming = attribute.NamedArguments.SingleOrDefault(x => x.Key == "FancyNames").Value.Value as bool? ?? false; - var solution = solutionFile.ReadSolution(); + var solution = SolutionReader.Read(solutionFile); var hintName = member.Name + ".g.cs"; var declaration = GetDeclaration(solution); @@ -54,9 +55,8 @@ public void Execute(GeneratorExecutionContext context) context.AddSource(hintName, $""" // - using Fallout.Persistence.Solution.Model; - using Fallout.Solutions; - using Fallout.Common.IO; + using Fallout.Application.Solutions; + using Fallout.Kernel.IO; using System.Runtime.CompilerServices; {declaration} @@ -95,13 +95,13 @@ string GetDeclaration(IProjectContainer container, string folderName = null) // lang=csharp var template = Template.Parse(""" {{~ if is_solution ~}} - internal class {{ name }}(SolutionModel model, AbsolutePath path) : Fallout.Solutions.Solution(model, path) + internal class {{ name }}(AbsolutePath path, object handle) : Fallout.Application.Solutions.Solution(path, handle) {{~ else ~}} - internal class {{ name }}(SolutionFolderModel model, Fallout.Solutions.Solution solution) : Fallout.Solutions.SolutionFolder(model, solution) + internal class {{ name }} : Fallout.Application.Solutions.SolutionFolder {{~ end ~}} { {{~ for project in projects ~}} - public Fallout.Solutions.Project {{ project.escaped_name }} => this.GetProject("{{ project.name }}"); + public Fallout.Application.Solutions.Project {{ project.escaped_name }} => this.GetProject("{{ project.name }}"); {{~ end ~}} {{~ for folder in folders ~}} diff --git a/src/Fallout.SourceGenerators/TransitionShimGenerator.cs b/src/Fallout.SourceGenerators/TransitionShimGenerator.cs index ee277d6d9..023ec1d9b 100644 --- a/src/Fallout.SourceGenerators/TransitionShimGenerator.cs +++ b/src/Fallout.SourceGenerators/TransitionShimGenerator.cs @@ -7,13 +7,15 @@ using System.Text; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; +using Fallout.Migration.Shared; namespace Fallout.SourceGenerators; /// -/// Source generator that produces transition shims under the Nuke.* namespaces by -/// mirroring public types from canonical Fallout.* assemblies. See the -/// marker emitted via PostInitializationOutput. +/// Source generator that produces transition shims under the Nuke.* namespaces by mirroring public types +/// from canonical Fallout.* assemblies. The Fallout→Nuke namespace correspondence is the shared +/// ; this generator emits the rows whose ShimPackage equals the +/// compiling assembly's name (so only the Nuke.Common / Nuke.Components shim assemblies produce output). /// /// /// Session 1 scope (Easy tier): regular classes, abstract classes, interfaces, @@ -23,10 +25,6 @@ namespace Fallout.SourceGenerators; [Generator(LanguageNames.CSharp)] public sealed class TransitionShimGenerator : IIncrementalGenerator { - private const string AttributeNamespace = "Fallout.Migrate.Shims"; - private const string AttributeName = "ShimAllPublicTypesUnderAttribute"; - private const string AttributeFullName = AttributeNamespace + "." + AttributeName; - // SHIM001: actionable skips. Something COULD still bridge these — un-seal // the canonical, promote a ctor's visibility, dedup across assemblies, or // hand-write a shim. Warning by default. @@ -54,69 +52,55 @@ public sealed class TransitionShimGenerator : IIncrementalGenerator public void Initialize(IncrementalGeneratorInitializationContext context) { - // Emit the marker attribute into the consuming compilation so shim - // projects can declare `[assembly: ShimAllPublicTypesUnder(...)]` without - // depending on a separate runtime assembly. - context.RegisterPostInitializationOutput(ctx => - ctx.AddSource("ShimAllPublicTypesUnderAttribute.g.cs", ShimAttributeSource)); - - // Find marker assembly attribute uses, then combine with the full - // compilation so we can walk referenced assemblies. - var markers = context.SyntaxProvider - .ForAttributeWithMetadataName( - AttributeFullName, - predicate: static (_, _) => true, - transform: static (syntaxCtx, _) => ExtractMarkers(syntaxCtx.TargetSymbol)) - .SelectMany(static (markers, _) => markers); - - var combined = markers.Collect().Combine(context.CompilationProvider); - - context.RegisterSourceOutput(combined, static (ctx, input) => + // Markers come from the shared canonical map, scoped to the compiling shim assembly (by name), + // instead of per-assembly `[assembly: ShimAllPublicTypesUnder(...)]` attributes — one source of + // truth, shared with the migration rewriters. Non-shim assemblies that reference this generator + // (any project pulling the analyzer) produce no rows → no output. + context.RegisterSourceOutput(context.CompilationProvider, static (ctx, compilation) => { - var (markers, compilation) = input; - if (markers.IsDefaultOrEmpty) + var shimPackage = compilation.AssemblyName; + if (string.IsNullOrEmpty(shimPackage)) return; - foreach (var marker in markers) - { - EmitShimsForMarker(ctx, compilation, marker); - } + var rows = NukeNamespaceMap.ShimRowsFor(shimPackage!).ToList(); + var siblingFromPrefixes = rows.Select(r => r.FalloutPrefix).ToList(); + foreach (var row in rows) + EmitShimsForMarker(ctx, compilation, new ShimMarker(row.FalloutPrefix, row.NukePrefix, siblingFromPrefixes)); }); } // ─────────────────────────────────────────────────────────────────────── - // Marker extraction + // Marker (a single Fallout→Nuke prefix pair, derived from NukeNamespaceMap) // ─────────────────────────────────────────────────────────────────────── private readonly struct ShimMarker { - public ShimMarker(string fromPrefix, string toPrefix) + // siblingFromPrefixes = every Fallout-prefix row in the same shim package (incl. this one). Used to + // give a type to the LONGEST matching prefix, so e.g. Fallout.Kernel.IO types are owned by the + // Nuke.Common.IO row, not also by the broader Nuke.Common.Utilities→Fallout.Kernel row (which would + // double-emit and throw on a duplicate hint name). + public ShimMarker(string fromPrefix, string toPrefix, IReadOnlyList siblingFromPrefixes = null) { FromPrefix = fromPrefix; ToPrefix = toPrefix; + _siblings = siblingFromPrefixes ?? new[] { fromPrefix }; } public string FromPrefix { get; } public string ToPrefix { get; } - } + private readonly IReadOnlyList _siblings; - private static ImmutableArray ExtractMarkers(ISymbol target) - { - // The target is the assembly itself (since this is an assembly-targeted - // attribute). Pull the attributes off and extract the two string args. - var results = ImmutableArray.CreateBuilder(); - foreach (var attr in target.GetAttributes()) + private static bool Covers(string prefix, string ns) + => ns == prefix || ns.StartsWith(prefix + ".", StringComparison.Ordinal); + + /// This marker owns iff its prefix matches and no longer sibling prefix does. + public bool Owns(string ns) { - if (attr.AttributeClass?.ToDisplayString() != AttributeFullName) - continue; - if (attr.ConstructorArguments.Length < 2) - continue; - var from = attr.ConstructorArguments[0].Value as string; - var to = attr.ConstructorArguments[1].Value as string; - if (string.IsNullOrEmpty(from) || string.IsNullOrEmpty(to)) - continue; - results.Add(new ShimMarker(from!, to!)); + if (!Covers(FromPrefix, ns)) return false; + foreach (var s in _siblings) + if (s.Length > FromPrefix.Length && Covers(s, ns)) + return false; + return true; } - return results.ToImmutable(); } // ─────────────────────────────────────────────────────────────────────── @@ -190,9 +174,7 @@ private static void CountFqnsInNamespace(INamespaceSymbol ns, ShimMarker marker, if (type.DeclaredAccessibility != Accessibility.Public) continue; var fullNamespace = type.ContainingNamespace?.ToDisplayString() ?? string.Empty; if (string.IsNullOrEmpty(fullNamespace)) continue; - var matches = fullNamespace == marker.FromPrefix - || fullNamespace.StartsWith(marker.FromPrefix + ".", StringComparison.Ordinal); - if (!matches) continue; + if (!marker.Owns(fullNamespace)) continue; var fqn = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat); counts[fqn] = counts.TryGetValue(fqn, out var existing) ? existing + 1 : 1; } @@ -211,9 +193,7 @@ private static void VisitNamespace(SourceProductionContext ctx, INamespaceSymbol // Match `Fallout.Common` exactly OR any sub-namespace `Fallout.Common.X.Y`. // The marker stores the prefix without trailing dot. if (string.IsNullOrEmpty(fullNamespace)) continue; - var matches = fullNamespace == marker.FromPrefix - || fullNamespace.StartsWith(marker.FromPrefix + ".", StringComparison.Ordinal); - if (!matches) continue; + if (!marker.Owns(fullNamespace)) continue; EmitOrSkipType(ctx, type, marker, emittedHints, ambiguousFqns, handBridgedFqns); } @@ -662,28 +642,4 @@ private static string HintName(INamedTypeSymbol type) // Marker attribute source (emitted via PostInit) // ─────────────────────────────────────────────────────────────────────── - private const string ShimAttributeSource = """ - // - #nullable enable - namespace Fallout.Migrate.Shims; - - /// - /// Marks the consuming assembly as a transition-shim project. The - /// TransitionShimGenerator walks referenced Fallout.* assemblies and emits - /// shim types under mirroring the - /// public types whose namespace begins with . - /// - [System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple = true)] - internal sealed class ShimAllPublicTypesUnderAttribute : System.Attribute - { - public ShimAllPublicTypesUnderAttribute(string fromNamespacePrefix, string toNamespacePrefix) - { - FromNamespacePrefix = fromNamespacePrefix; - ToNamespacePrefix = toNamespacePrefix; - } - - public string FromNamespacePrefix { get; } - public string ToNamespacePrefix { get; } - } - """; } diff --git a/src/Fallout.Tooling.Generator/CodeGenerator.cs b/src/Fallout.Tooling.Generator/CodeGenerator.cs index f37f81fd1..aabfda2c0 100644 --- a/src/Fallout.Tooling.Generator/CodeGenerator.cs +++ b/src/Fallout.Tooling.Generator/CodeGenerator.cs @@ -1,13 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; using Fallout.CodeGeneration.Generators; using Fallout.CodeGeneration.Model; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; +using Fallout.Kernel; namespace Fallout.CodeGeneration; diff --git a/src/Fallout.Tooling.Generator/Fallout.Tooling.Generator.csproj b/src/Fallout.Tooling.Generator/Fallout.Tooling.Generator.csproj index 8f9534c6c..dca50ed31 100644 --- a/src/Fallout.Tooling.Generator/Fallout.Tooling.Generator.csproj +++ b/src/Fallout.Tooling.Generator/Fallout.Tooling.Generator.csproj @@ -14,13 +14,17 @@ - - - + + + + + + + diff --git a/src/Fallout.Tooling.Generator/Generators/DataClassExtensionGenerator.cs b/src/Fallout.Tooling.Generator/Generators/DataClassExtensionGenerator.cs index 86bd6cb56..d52da9655 100644 --- a/src/Fallout.Tooling.Generator/Generators/DataClassExtensionGenerator.cs +++ b/src/Fallout.Tooling.Generator/Generators/DataClassExtensionGenerator.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using Fallout.CodeGeneration.Model; using Fallout.CodeGeneration.Writers; -using Fallout.Common.Utilities; using Serilog; +using Fallout.Kernel; // ReSharper disable UnusedMethodReturnValue.Local diff --git a/src/Fallout.Tooling.Generator/Generators/DataClassGenerator.cs b/src/Fallout.Tooling.Generator/Generators/DataClassGenerator.cs index cf53c541c..383916c28 100644 --- a/src/Fallout.Tooling.Generator/Generators/DataClassGenerator.cs +++ b/src/Fallout.Tooling.Generator/Generators/DataClassGenerator.cs @@ -2,10 +2,10 @@ using System.Linq; using Fallout.CodeGeneration.Model; using Fallout.CodeGeneration.Writers; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; +using Fallout.Application.Tooling; +using Fallout.Kernel; +using Fallout.Kernel.Collections; // ReSharper disable UnusedMethodReturnValue.Local diff --git a/src/Fallout.Tooling.Generator/Generators/ModelExtensions.cs b/src/Fallout.Tooling.Generator/Generators/ModelExtensions.cs index 9968d1933..52820e974 100644 --- a/src/Fallout.Tooling.Generator/Generators/ModelExtensions.cs +++ b/src/Fallout.Tooling.Generator/Generators/ModelExtensions.cs @@ -2,8 +2,7 @@ using System.Linq; using System.Text.RegularExpressions; using Fallout.CodeGeneration.Model; -using Fallout.Common; -using Fallout.Common.Utilities; +using Fallout.Kernel; namespace Fallout.CodeGeneration.Generators; diff --git a/src/Fallout.Tooling.Generator/Generators/StringExtensions.cs b/src/Fallout.Tooling.Generator/Generators/StringExtensions.cs index a63bfd7c0..9ff06b3f3 100644 --- a/src/Fallout.Tooling.Generator/Generators/StringExtensions.cs +++ b/src/Fallout.Tooling.Generator/Generators/StringExtensions.cs @@ -3,7 +3,7 @@ using System.Globalization; using System.Linq; using Humanizer; -using Fallout.Common; +using Fallout.Kernel; namespace Fallout.CodeGeneration.Generators; diff --git a/src/Fallout.Tooling.Generator/Generators/TaskGenerator.cs b/src/Fallout.Tooling.Generator/Generators/TaskGenerator.cs index 1c3ea9158..7e83c122a 100644 --- a/src/Fallout.Tooling.Generator/Generators/TaskGenerator.cs +++ b/src/Fallout.Tooling.Generator/Generators/TaskGenerator.cs @@ -2,8 +2,8 @@ using System.Linq; using Fallout.CodeGeneration.Model; using Fallout.CodeGeneration.Writers; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; +using Fallout.Kernel.Collections; // ReSharper disable UnusedMethodReturnValue.Local diff --git a/src/Fallout.Tooling.Generator/Generators/ToolGenerator.cs b/src/Fallout.Tooling.Generator/Generators/ToolGenerator.cs index 2e6c95168..ae026ba28 100644 --- a/src/Fallout.Tooling.Generator/Generators/ToolGenerator.cs +++ b/src/Fallout.Tooling.Generator/Generators/ToolGenerator.cs @@ -4,7 +4,7 @@ using System.Linq; using Fallout.CodeGeneration.Model; using Fallout.CodeGeneration.Writers; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel.Collections; // ReSharper disable UnusedMethodReturnValue.Local @@ -61,7 +61,7 @@ private static IEnumerable GetNamespaceImports(Tool tool) "Fallout.Common", "Fallout.Common.Tooling", "Fallout.Common.Tools", - "Fallout.Common.Utilities.Collections", + "Fallout.Kernel.Collections", "System", "System.Collections.Generic", "System.Collections.ObjectModel", diff --git a/src/Fallout.Tooling.Generator/Generators/WriterExtensions.cs b/src/Fallout.Tooling.Generator/Generators/WriterExtensions.cs index 04da2350e..c3909d3f5 100644 --- a/src/Fallout.Tooling.Generator/Generators/WriterExtensions.cs +++ b/src/Fallout.Tooling.Generator/Generators/WriterExtensions.cs @@ -3,9 +3,9 @@ using System.Linq; using Fallout.CodeGeneration.Model; using Fallout.CodeGeneration.Writers; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; using Serilog; +using Fallout.Kernel; +using Fallout.Kernel.Collections; namespace Fallout.CodeGeneration.Generators; diff --git a/src/Fallout.Tooling.Generator/ReferenceUpdater.cs b/src/Fallout.Tooling.Generator/ReferenceUpdater.cs index 7220a4aba..8ca5303ee 100644 --- a/src/Fallout.Tooling.Generator/ReferenceUpdater.cs +++ b/src/Fallout.Tooling.Generator/ReferenceUpdater.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -7,9 +7,9 @@ using System.Threading.Tasks; using HtmlAgilityPack; using Fallout.CodeGeneration.Model; -using Fallout.Common; -using Fallout.Common.Utilities.Net; using Serilog; +using Fallout.Kernel.Net; +using Fallout.Kernel; namespace Fallout.CodeGeneration; diff --git a/src/Fallout.Tooling.Generator/ToolSerializer.cs b/src/Fallout.Tooling.Generator/ToolSerializer.cs index 861e21c19..05b7ef70f 100644 --- a/src/Fallout.Tooling.Generator/ToolSerializer.cs +++ b/src/Fallout.Tooling.Generator/ToolSerializer.cs @@ -8,9 +8,9 @@ using System.Text.Json.Serialization; using System.Text.Json.Serialization.Metadata; using Fallout.CodeGeneration.Model; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel; using Serilog; +using Fallout.Kernel.IO; namespace Fallout.CodeGeneration; diff --git a/src/Fallout.Tooling.Generator/Writers/ToolWriter.cs b/src/Fallout.Tooling.Generator/Writers/ToolWriter.cs index 7db2a3e28..47f4c60be 100644 --- a/src/Fallout.Tooling.Generator/Writers/ToolWriter.cs +++ b/src/Fallout.Tooling.Generator/Writers/ToolWriter.cs @@ -2,7 +2,7 @@ using System.IO; using System.Linq; using Fallout.CodeGeneration.Model; -using Fallout.Common.Utilities; +using Fallout.Kernel; namespace Fallout.CodeGeneration.Writers; diff --git a/src/Fallout.Tooling/Fallout.Tooling.csproj b/src/Fallout.Tooling/Fallout.Tooling.csproj deleted file mode 100644 index 2200aa636..000000000 --- a/src/Fallout.Tooling/Fallout.Tooling.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - net10.0;netstandard2.0 - - - - - - - - - - - - - diff --git a/src/Fallout/Fallout.csproj b/src/Fallout/Fallout.csproj new file mode 100644 index 000000000..580b9330d --- /dev/null +++ b/src/Fallout/Fallout.csproj @@ -0,0 +1,47 @@ + + + + + net10.0 + Fallout — build automation for .NET. Reference this package to author a build. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Fallout.Common/Fallout.Common.props b/src/Fallout/Fallout.props similarity index 100% rename from src/Fallout.Common/Fallout.Common.props rename to src/Fallout/Fallout.props diff --git a/src/Fallout.Common/Fallout.Common.targets b/src/Fallout/Fallout.targets similarity index 100% rename from src/Fallout.Common/Fallout.Common.targets rename to src/Fallout/Fallout.targets diff --git a/src/Persistence/Fallout.Persistence.Solution/Fallout.Persistence.Solution.csproj b/src/Persistence/Fallout.Persistence.Solution/Fallout.Persistence.Solution.csproj index d9a7e8c6b..0560b90b3 100644 --- a/src/Persistence/Fallout.Persistence.Solution/Fallout.Persistence.Solution.csproj +++ b/src/Persistence/Fallout.Persistence.Solution/Fallout.Persistence.Solution.csproj @@ -23,7 +23,7 @@ - + diff --git a/src/Persistence/Fallout.Solution/Fallout.Solution.csproj b/src/Persistence/Fallout.Solution/Fallout.Solution.csproj deleted file mode 100644 index b41b02c0c..000000000 --- a/src/Persistence/Fallout.Solution/Fallout.Solution.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - - netstandard2.0;net10.0 - Fallout.Solutions - Fallout's public API for working with .NET solution files. - - - - - - - - diff --git a/src/Persistence/Fallout.Solution/Model.cs b/src/Persistence/Fallout.Solution/Model.cs deleted file mode 100644 index cdc84fe94..000000000 --- a/src/Persistence/Fallout.Solution/Model.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading; -using Fallout.Persistence.Solution.Model; -using Fallout.Persistence.Solution.Serializer; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; - -namespace Fallout.Solutions; - -public interface IProjectContainer -{ - IProjectContainer Parent { get; } - IReadOnlyCollection Projects { get; } - IReadOnlyCollection SolutionFolders { get; } -} - -public static class ProjectContainerExtensions -{ - public static SolutionFolder GetSolutionFolder(this IProjectContainer container, string name) - { - return container.SolutionFolders.SingleOrDefault(x => name.Equals(x.Name, StringComparison.Ordinal)); - } - - /// - /// Gets a project by its name. - /// - public static Project GetProject(this IProjectContainer container, string name) - { - return container.Projects.SingleOrDefault(x => name.Equals(x.Name, StringComparison.Ordinal)); - } -} - -public class Solution(SolutionModel model, AbsolutePath path = null) : IProjectContainer, IAbsolutePathHolder -{ - private ConcurrentDictionary wrappers { get; } = new(); - - internal T GetOrCreate(object model) - { - lock (wrappers) - { - return (T)wrappers.GetOrAdd(model, x => x switch - { - SolutionProjectModel project => new Project(project, this), - SolutionFolderModel folder => new SolutionFolder(folder, this), - _ => throw new ArgumentOutOfRangeException(nameof(x), x, null) - }); - } - } - - public SolutionModel GetModel() => model; - - public AbsolutePath Path { get; set; } = path; - public string Name => Path?.NameWithoutExtension; - public string FileName => Path?.Name; - public AbsolutePath Directory => Path?.Parent; - - public IReadOnlyCollection AllProjects => model.SolutionProjects.Select(GetOrCreate).ToList(); - public IReadOnlyCollection AllSolutionFolders => model.SolutionFolders.Select(GetOrCreate).ToList(); - - IProjectContainer IProjectContainer.Parent => null; - public IReadOnlyCollection Projects => AllProjects.Where(x => x.Parent == this).ToList(); - public IReadOnlyCollection SolutionFolders => AllSolutionFolders.Where(x => x.Parent == this).ToList(); - - public static implicit operator string(Solution solution) => solution.Path; - public static implicit operator AbsolutePath(Solution solution) => solution.Path; - - public IEnumerable GetAllProjects(string wildcardPattern) - { - wildcardPattern = $"^{wildcardPattern}$"; - var regex = new Regex(wildcardPattern - .Replace(".", "\\.") - .Replace("*", ".*")); - return AllProjects.Where(x => regex.IsMatch(x.Name)); - } - - public void Save(AbsolutePath path = null) - { - Path = (path ?? Path).NotNull(); - var serializer = SolutionSerializers.GetSerializerByMoniker(Path).NotNull(); - AsyncHelper.RunSync(() => serializer.SaveAsync(Path, model, CancellationToken.None)); - } -} - -public class SolutionItem(SolutionItemModel model, Solution solution) -{ - public string Name => model.ActualDisplayName; - - public Solution Solution => solution; - public IProjectContainer Parent => (IProjectContainer)model.Parent?.Apply(solution.GetOrCreate) ?? solution; - - public override string ToString() => model.ActualDisplayName; -} - -public class SolutionFolder(SolutionFolderModel model, Solution solution) : SolutionItem(model, solution), IProjectContainer -{ - public SolutionFolderModel GetModel() => model; - - public IReadOnlyCollection Projects => Solution.AllProjects.Where(x => x.Parent == this).ToList(); - public IReadOnlyCollection SolutionFolders => Solution.AllSolutionFolders.Where(x => x.Parent == this).ToList(); -} - -public class Project(SolutionProjectModel model, Solution solution) : SolutionItem(model, solution), IAbsolutePathHolder -{ - public SolutionProjectModel GetModel() => model; - - public string RelativePath => model.FilePath; - public AbsolutePath Path => Solution.Directory.NotNull() / model.FilePath; - public string FileName => System.IO.Path.GetFileName(RelativePath); - public AbsolutePath Directory => Path?.Parent; - - public static implicit operator string(Project project) => project.Path; - public static implicit operator AbsolutePath(Project project) => project.Path; -} diff --git a/src/Persistence/Fallout.Solution/SolutionModelExtensions.cs b/src/Persistence/Fallout.Solution/SolutionModelExtensions.cs deleted file mode 100644 index 015634ee0..000000000 --- a/src/Persistence/Fallout.Solution/SolutionModelExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Threading; -using Fallout.Persistence.Solution.Serializer; -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Common.Utilities; - -namespace Fallout.Solutions; - -public static class SolutionModelExtensions -{ - public static Solution ReadSolution(this AbsolutePath path) - { - return path.ReadSolution(); - } - - public static Solution ReadSolution(this AbsolutePath path) - where T : Solution - { - var serializer = SolutionSerializers.GetSerializerByMoniker(path).NotNull(); - var model = AsyncHelper.RunSync(() => serializer.OpenAsync(path, CancellationToken.None)); - return typeof(T).CreateInstance(model, path); - } -} diff --git a/src/Shared/NukeNamespaceMap.cs b/src/Shared/NukeNamespaceMap.cs new file mode 100644 index 000000000..f8e905ebc --- /dev/null +++ b/src/Shared/NukeNamespaceMap.cs @@ -0,0 +1,114 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Fallout.Migration.Shared; + +/// +/// The single canonical correspondence between legacy Nuke.* namespaces and their post-onion +/// Fallout.* homes. Linked (as source) into the three consumers so there is ONE source of truth: +/// +/// the transition-shim generator (Fallout.SourceGenerators) emits Fallout.* → Nuke.* +/// re-exports per shim package; +/// the migration rewriters (Fallout.Migrate, Fallout.Migrate.Analyzers) rewrite +/// Nuke.* → Fallout.*. +/// +/// A few NUKE namespaces SPLIT across rings post-onion (CI, ProjectModel, IO). The shim direction unions +/// every row for a Nuke prefix; the migration direction (a pure prefix replace) uses the single row flagged +/// as that prefix's dominant home (the rarer secondary +/// home is shim-only — code using it keeps compiling via the shim, and the migration analyzer flags the +/// residue for manual touch-up; deliberate, given low migration demand). +/// +internal sealed class NukeNamespaceMapping +{ + public NukeNamespaceMapping(string nukePrefix, string falloutPrefix, string shimPackage, bool isMigrationTarget = true) + { + NukePrefix = nukePrefix; + FalloutPrefix = falloutPrefix; + ShimPackage = shimPackage; + IsMigrationTarget = isMigrationTarget; + } + + /// Legacy namespace prefix, e.g. Nuke.Common.Tools. + public string NukePrefix { get; } + + /// Post-onion Fallout namespace prefix, e.g. Fallout.Application.Tools. + public string FalloutPrefix { get; } + + /// Which shim package re-exports this row (Nuke.Common or Nuke.Components). + public string ShimPackage { get; } + + /// + /// True if this row is the dominant Nuke→Fallout migration target for its . + /// Exactly one row per distinct is the migration target; split-namespace + /// secondaries are shim-only (false). + /// + public bool IsMigrationTarget { get; } +} + +internal static class NukeNamespaceMap +{ + public const string NukeCommonPackage = "Nuke.Common"; + public const string NukeComponentsPackage = "Nuke.Components"; + + /// The canonical map. Order is not significant; consumers sort as needed. + public static readonly IReadOnlyList All = new[] + { + // ── Nuke.Common ─────────────────────────────────────────────────────────────────────────── + new NukeNamespaceMapping("Nuke.Common.Tooling", "Fallout.Application.Tooling", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.Tools", "Fallout.Application.Tools", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.Git", "Fallout.Application.Git", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.Execution", "Fallout.Application.Execution", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.ValueInjection", "Fallout.Application.ValueInjection", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.ChangeLog", "Fallout.Application.ChangeLog", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.Utilities", "Fallout.Kernel", NukeCommonPackage), + + // Split namespaces: migration target = the dominant consumer-facing home; secondary = shim-only. + // CI: providers (Infrastructure.CI) are what `using Nuke.Common.CI.` consumers reference; + // the port enums in Application.CI are the rarer secondary. + new NukeNamespaceMapping("Nuke.Common.CI", "Fallout.Infrastructure.CI", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.CI", "Fallout.Application.CI", NukeCommonPackage, isMigrationTarget: false), + // ProjectModel: the Solution/Project model + [Solution] (Application.Solutions) is dominant; the + // MSBuild evaluator (Infrastructure.ProjectModel) is the rarer secondary. + new NukeNamespaceMapping("Nuke.Common.ProjectModel", "Fallout.Application.Solutions", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.ProjectModel", "Fallout.Infrastructure.ProjectModel", NukeCommonPackage, isMigrationTarget: false), + // IO: AbsolutePath/glob fluent API (Kernel.IO) is dominant; the build-injection IO attrs + // (Application.IO) are the secondary. + new NukeNamespaceMapping("Nuke.Common.IO", "Fallout.Kernel.IO", NukeCommonPackage), + new NukeNamespaceMapping("Nuke.Common.IO", "Fallout.Application.IO", NukeCommonPackage, isMigrationTarget: false), + + // Root: NukeBuild/Target/[Parameter]/[Secret]/Host/… → Fallout.Application. Kept LAST so the more + // specific Nuke.Common.* prefixes above win longest-prefix-first matching in the migration rewriter. + new NukeNamespaceMapping("Nuke.Common", "Fallout.Application", NukeCommonPackage), + + // ── Nuke.Components ─────────────────────────────────────────────────────────────────────── + new NukeNamespaceMapping("Nuke.Components", "Fallout.Application.Components", NukeComponentsPackage), + }; + + /// + /// NUKE consumer NuGet package ID → its post-onion Fallout package, for the migration's + /// <PackageReference> rewrite. NUKE consumers reference Nuke.Common (→ the Fallout + /// meta-package, which pulls every ring) and optionally Nuke.Components (→ Fallout.Application.Components); + /// the bogus Nuke.Build package folds into the meta. Distinct from the namespace map — package IDs + /// don't track namespaces post-onion (e.g. the Fallout meta has no namespace of its own). + /// + public static readonly IReadOnlyDictionary PackageIdMap = new Dictionary + { + ["Nuke.Common"] = "Fallout", + ["Nuke.Build"] = "Fallout", + ["Nuke.Components"] = "Fallout.Application.Components", + }; + + /// Fallout→Nuke rows the shim generator emits for (unions splits). + public static IEnumerable ShimRowsFor(string shimPackage) + => All.Where(x => x.ShimPackage == shimPackage); + + /// + /// Nuke→Fallout migration prefix pairs, longest Nuke prefix first (so Nuke.Common.Tools is tried + /// before Nuke.Common). Only dominant rows; one per distinct Nuke prefix. + /// + public static IReadOnlyList> MigrationPairsLongestFirst { get; } = + All.Where(x => x.IsMigrationTarget) + .OrderByDescending(x => x.NukePrefix.Length) + .Select(x => new KeyValuePair(x.NukePrefix, x.FalloutPrefix)) + .ToArray(); +} diff --git a/src/Shims/Nuke.Build/Nuke.Build.csproj b/src/Shims/Nuke.Build/Nuke.Build.csproj deleted file mode 100644 index 2db4b8b3b..000000000 --- a/src/Shims/Nuke.Build/Nuke.Build.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - net10.0 - Nuke.Build - Nuke.Build - Nuke.Build - Nuke.Build (Fallout transition shim) - - true - Transition shim that re-exports the most common Nuke.Build types as subclasses/wrappers of the canonical Fallout.* types. For projects mid-migration from NUKE to Fallout. Published only to GitHub Packages (nuget.org's Nuke.Build is owned by the original NUKE maintainer). - build automation continuous-integration tools orchestration nuke shim transition - - false - - - - - - - - diff --git a/src/Shims/Nuke.Build/README.md b/src/Shims/Nuke.Build/README.md deleted file mode 100644 index 69f5a348b..000000000 --- a/src/Shims/Nuke.Build/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Nuke.Build transition shim - -Transition shim for projects mid-migration from NUKE to Fallout. Published to **GitHub Packages** only — `Nuke.Build` on nuget.org is owned by the original NUKE maintainer. - -Generated by Fallout's `TransitionShimGenerator` from the canonical `Fallout.Build` namespace surface. Types are emitted as subclass/sub-interface wrappers inheriting from their `Fallout.*` counterparts; consumer code that says `using Nuke.Build;` keeps compiling against the new types. - -Coverage and limitations are the same as the `Nuke.Common` shim — see [`../Nuke.Common/README.md`](../Nuke.Common/README.md) for the full surface description. - -## Consumer setup - -Add this fork's GitHub Packages feed to your `nuget.config`: - -```xml - -``` - -Then bump your `Nuke.Build` package reference to the latest 10.3.x or later. - -Full migration walkthrough: [`docs/migration/from-nuke.md`](../../../docs/migration/from-nuke.md). diff --git a/src/Shims/Nuke.Build/ShimMarker.cs b/src/Shims/Nuke.Build/ShimMarker.cs deleted file mode 100644 index eda952a72..000000000 --- a/src/Shims/Nuke.Build/ShimMarker.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Tells the TransitionShimGenerator to emit shims for every public type whose -// namespace begins with "Fallout.Build." into the corresponding "Nuke.Build." -// namespace. - -[assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder( - fromNamespacePrefix: "Fallout.Build", - toNamespacePrefix: "Nuke.Build")] diff --git a/src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs b/src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs index dcb0a5a9b..7bce6d69d 100644 --- a/src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs +++ b/src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.AppVeyor; // Hand-written transition shim for the framework-injected CI host singleton. // The TransitionShimGenerator can't bridge these because consumers receive // canonical-typed instances from Host.Instance (which can't be cast to a shim @@ -10,12 +11,12 @@ namespace Nuke.Common.CI.AppVeyor; public static class AppVeyor { - public static global::Fallout.Common.CI.AppVeyor.AppVeyor Instance - => global::Fallout.Common.CI.AppVeyor.AppVeyor.Instance; + public static global::Fallout.Infrastructure.CI.AppVeyor.AppVeyor Instance + => global::Fallout.Infrastructure.CI.AppVeyor.AppVeyor.Instance; public static int MessageLimit { - get => global::Fallout.Common.CI.AppVeyor.AppVeyor.MessageLimit; - set => global::Fallout.Common.CI.AppVeyor.AppVeyor.MessageLimit = value; + get => global::Fallout.Infrastructure.CI.AppVeyor.AppVeyor.MessageLimit; + set => global::Fallout.Infrastructure.CI.AppVeyor.AppVeyor.MessageLimit = value; } } diff --git a/src/Shims/Nuke.Common/CI/AzurePipelines/AzurePipelines.cs b/src/Shims/Nuke.Common/CI/AzurePipelines/AzurePipelines.cs index e84165af5..33d6bd0fb 100644 --- a/src/Shims/Nuke.Common/CI/AzurePipelines/AzurePipelines.cs +++ b/src/Shims/Nuke.Common/CI/AzurePipelines/AzurePipelines.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.AzurePipelines; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.AzurePipelines; public static class AzurePipelines { - public static global::Fallout.Common.CI.AzurePipelines.AzurePipelines Instance - => global::Fallout.Common.CI.AzurePipelines.AzurePipelines.Instance; + public static global::Fallout.Infrastructure.CI.AzurePipelines.AzurePipelines Instance + => global::Fallout.Infrastructure.CI.AzurePipelines.AzurePipelines.Instance; } diff --git a/src/Shims/Nuke.Common/CI/Bamboo/Bamboo.cs b/src/Shims/Nuke.Common/CI/Bamboo/Bamboo.cs index b13fa265c..3af8a4199 100644 --- a/src/Shims/Nuke.Common/CI/Bamboo/Bamboo.cs +++ b/src/Shims/Nuke.Common/CI/Bamboo/Bamboo.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.Bamboo; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.Bamboo; public static class Bamboo { - public static global::Fallout.Common.CI.Bamboo.Bamboo Instance - => global::Fallout.Common.CI.Bamboo.Bamboo.Instance; + public static global::Fallout.Infrastructure.CI.Bamboo.Bamboo Instance + => global::Fallout.Infrastructure.CI.Bamboo.Bamboo.Instance; } diff --git a/src/Shims/Nuke.Common/CI/Bitbucket/Bitbucket.cs b/src/Shims/Nuke.Common/CI/Bitbucket/Bitbucket.cs index 0a9aeef82..b7ad5eefa 100644 --- a/src/Shims/Nuke.Common/CI/Bitbucket/Bitbucket.cs +++ b/src/Shims/Nuke.Common/CI/Bitbucket/Bitbucket.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.Bitbucket; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.Bitbucket; public static class Bitbucket { - public static global::Fallout.Common.CI.Bitbucket.Bitbucket Instance - => global::Fallout.Common.CI.Bitbucket.Bitbucket.Instance; + public static global::Fallout.Infrastructure.CI.Bitbucket.Bitbucket Instance + => global::Fallout.Infrastructure.CI.Bitbucket.Bitbucket.Instance; } diff --git a/src/Shims/Nuke.Common/CI/Bitrise/Bitrise.cs b/src/Shims/Nuke.Common/CI/Bitrise/Bitrise.cs index 91b4c8773..a24b4b0a4 100644 --- a/src/Shims/Nuke.Common/CI/Bitrise/Bitrise.cs +++ b/src/Shims/Nuke.Common/CI/Bitrise/Bitrise.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.Bitrise; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.Bitrise; public static class Bitrise { - public static global::Fallout.Common.CI.Bitrise.Bitrise Instance - => global::Fallout.Common.CI.Bitrise.Bitrise.Instance; + public static global::Fallout.Infrastructure.CI.Bitrise.Bitrise Instance + => global::Fallout.Infrastructure.CI.Bitrise.Bitrise.Instance; } diff --git a/src/Shims/Nuke.Common/CI/GitHubActions/GitHubActions.cs b/src/Shims/Nuke.Common/CI/GitHubActions/GitHubActions.cs index a6fa845e7..e3790ebd7 100644 --- a/src/Shims/Nuke.Common/CI/GitHubActions/GitHubActions.cs +++ b/src/Shims/Nuke.Common/CI/GitHubActions/GitHubActions.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.GitHubActions; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.GitHubActions; public static class GitHubActions { - public static global::Fallout.Common.CI.GitHubActions.GitHubActions Instance - => global::Fallout.Common.CI.GitHubActions.GitHubActions.Instance; + public static global::Fallout.Infrastructure.CI.GitHubActions.GitHubActions Instance + => global::Fallout.Infrastructure.CI.GitHubActions.GitHubActions.Instance; } diff --git a/src/Shims/Nuke.Common/CI/GitLab/GitLab.cs b/src/Shims/Nuke.Common/CI/GitLab/GitLab.cs index c21b46478..e710796ab 100644 --- a/src/Shims/Nuke.Common/CI/GitLab/GitLab.cs +++ b/src/Shims/Nuke.Common/CI/GitLab/GitLab.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.GitLab; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.GitLab; public static class GitLab { - public static global::Fallout.Common.CI.GitLab.GitLab Instance - => global::Fallout.Common.CI.GitLab.GitLab.Instance; + public static global::Fallout.Infrastructure.CI.GitLab.GitLab Instance + => global::Fallout.Infrastructure.CI.GitLab.GitLab.Instance; } diff --git a/src/Shims/Nuke.Common/CI/Jenkins/Jenkins.cs b/src/Shims/Nuke.Common/CI/Jenkins/Jenkins.cs index 645cdee85..c2f3aaddf 100644 --- a/src/Shims/Nuke.Common/CI/Jenkins/Jenkins.cs +++ b/src/Shims/Nuke.Common/CI/Jenkins/Jenkins.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.Jenkins; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.Jenkins; public static class Jenkins { - public static global::Fallout.Common.CI.Jenkins.Jenkins Instance - => global::Fallout.Common.CI.Jenkins.Jenkins.Instance; + public static global::Fallout.Infrastructure.CI.Jenkins.Jenkins Instance + => global::Fallout.Infrastructure.CI.Jenkins.Jenkins.Instance; } diff --git a/src/Shims/Nuke.Common/CI/TeamCity/TeamCity.cs b/src/Shims/Nuke.Common/CI/TeamCity/TeamCity.cs index 9a80ef75b..e6d6dbcae 100644 --- a/src/Shims/Nuke.Common/CI/TeamCity/TeamCity.cs +++ b/src/Shims/Nuke.Common/CI/TeamCity/TeamCity.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.TeamCity; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.TeamCity; public static class TeamCity { - public static global::Fallout.Common.CI.TeamCity.TeamCity Instance - => global::Fallout.Common.CI.TeamCity.TeamCity.Instance; + public static global::Fallout.Infrastructure.CI.TeamCity.TeamCity Instance + => global::Fallout.Infrastructure.CI.TeamCity.TeamCity.Instance; } diff --git a/src/Shims/Nuke.Common/CI/TravisCI/TravisCI.cs b/src/Shims/Nuke.Common/CI/TravisCI/TravisCI.cs index 59928cf63..6a3187fdb 100644 --- a/src/Shims/Nuke.Common/CI/TravisCI/TravisCI.cs +++ b/src/Shims/Nuke.Common/CI/TravisCI/TravisCI.cs @@ -1,3 +1,4 @@ +using Fallout.Infrastructure.CI.TravisCI; // Hand-written transition shim for the framework-injected CI host singleton. // See src/Shims/Nuke.Common/CI/AppVeyor/AppVeyor.cs for the rationale shared // across all CI host shims. @@ -6,6 +7,6 @@ namespace Nuke.Common.CI.TravisCI; public static class TravisCI { - public static global::Fallout.Common.CI.TravisCI.TravisCI Instance - => global::Fallout.Common.CI.TravisCI.TravisCI.Instance; + public static global::Fallout.Infrastructure.CI.TravisCI.TravisCI Instance + => global::Fallout.Infrastructure.CI.TravisCI.TravisCI.Instance; } diff --git a/src/Shims/Nuke.Common/Nuke.Common.csproj b/src/Shims/Nuke.Common/Nuke.Common.csproj index e7bc3bf19..96132391b 100644 --- a/src/Shims/Nuke.Common/Nuke.Common.csproj +++ b/src/Shims/Nuke.Common/Nuke.Common.csproj @@ -27,11 +27,13 @@ - - - + + + + + + + diff --git a/src/Shims/Nuke.Common/NukeBuild.cs b/src/Shims/Nuke.Common/NukeBuild.cs index c41c6994b..9a1fe39e3 100644 --- a/src/Shims/Nuke.Common/NukeBuild.cs +++ b/src/Shims/Nuke.Common/NukeBuild.cs @@ -1,3 +1,4 @@ +using Fallout.Application; // The TransitionShimGenerator handles namespace prefix swaps (Fallout.* -> Nuke.*) // but cannot rename types. NukeBuild -> FalloutBuild and INukeBuild -> // IFalloutBuild were renamed during the rebrand (#59), so we hand-write those @@ -9,13 +10,13 @@ namespace Nuke.Common; /// /// Transition shim. Inherits from . /// -public abstract class NukeBuild : Fallout.Common.FalloutBuild +public abstract class NukeBuild : Fallout.Application.FalloutBuild { } /// /// Transition shim. Extends . /// -public interface INukeBuild : Fallout.Common.IFalloutBuild +public interface INukeBuild : Fallout.Application.IFalloutBuild { } diff --git a/src/Shims/Nuke.Common/ShimMarker.cs b/src/Shims/Nuke.Common/ShimMarker.cs deleted file mode 100644 index 0f314f14e..000000000 --- a/src/Shims/Nuke.Common/ShimMarker.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Tells the TransitionShimGenerator to emit shims for every public type whose -// namespace begins with "Fallout.Common." into the corresponding "Nuke.Common." -// namespace. The generator walks all referenced Fallout.* assemblies; both -// Fallout.Common and Fallout.Build participate (FalloutBuild itself lives in -// the Fallout.Common namespace despite being declared in the Fallout.Build -// project). - -[assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder( - fromNamespacePrefix: "Fallout.Common", - toNamespacePrefix: "Nuke.Common")] - -// The solution-handling types moved from Fallout.Common.ProjectModel to the -// dedicated Fallout.Solutions namespace in v11 (see #248 and the broader -// onion-layering work). For NUKE-era consumers, mirror them into the legacy -// Nuke.Common.ProjectModel namespace so existing `using Nuke.Common.ProjectModel;` -// + `[Solution] readonly Solution Solution;` keep compiling. -[assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder( - fromNamespacePrefix: "Fallout.Solutions", - toNamespacePrefix: "Nuke.Common.ProjectModel")] diff --git a/src/Shims/Nuke.Common/Utilities/DelegateDisposable.cs b/src/Shims/Nuke.Common/Utilities/DelegateDisposable.cs index 4bbe9b7a7..09c6c80eb 100644 --- a/src/Shims/Nuke.Common/Utilities/DelegateDisposable.cs +++ b/src/Shims/Nuke.Common/Utilities/DelegateDisposable.cs @@ -6,17 +6,18 @@ using System; using System.Linq.Expressions; +using Fallout.Kernel; namespace Nuke.Common.Utilities; public static class DelegateDisposable { public static IDisposable CreateBracket(Action setup = null, Action cleanup = null) - => global::Fallout.Common.Utilities.DelegateDisposable.CreateBracket(setup, cleanup); + => global::Fallout.Kernel.DelegateDisposable.CreateBracket(setup, cleanup); public static IDisposable CreateBracket(Func setup, Action cleanup) - => global::Fallout.Common.Utilities.DelegateDisposable.CreateBracket(setup, cleanup); + => global::Fallout.Kernel.DelegateDisposable.CreateBracket(setup, cleanup); public static IDisposable SetAndRestore(Expression> memberProvider, T value) - => global::Fallout.Common.Utilities.DelegateDisposable.SetAndRestore(memberProvider, value); + => global::Fallout.Kernel.DelegateDisposable.SetAndRestore(memberProvider, value); } diff --git a/src/Shims/Nuke.Components/Nuke.Components.csproj b/src/Shims/Nuke.Components/Nuke.Components.csproj index 0bb08b6c8..a19802a69 100644 --- a/src/Shims/Nuke.Components/Nuke.Components.csproj +++ b/src/Shims/Nuke.Components/Nuke.Components.csproj @@ -19,7 +19,7 @@ - + diff --git a/src/Shims/Nuke.Components/ShimMarker.cs b/src/Shims/Nuke.Components/ShimMarker.cs deleted file mode 100644 index a107f92bc..000000000 --- a/src/Shims/Nuke.Components/ShimMarker.cs +++ /dev/null @@ -1,8 +0,0 @@ -// Tells the TransitionShimGenerator to emit shims for every public type whose -// namespace begins with "Fallout.Components" into the corresponding -// "Nuke.Components" namespace. The bulk of this assembly is the component -// interface family (ICompile, IRestore, IPack, ITest, IPublish, IHas*). - -[assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder( - fromNamespacePrefix: "Fallout.Components", - toNamespacePrefix: "Nuke.Components")] diff --git a/tests/Benchmarks/Fallout.Persistence.Solution.Benchmarks/Fallout.Persistence.Solution.Benchmarks.csproj b/tests/Benchmarks/Fallout.Persistence.Solution.Benchmarks/Fallout.Persistence.Solution.Benchmarks.csproj index dd8c70687..b207ca252 100644 --- a/tests/Benchmarks/Fallout.Persistence.Solution.Benchmarks/Fallout.Persistence.Solution.Benchmarks.csproj +++ b/tests/Benchmarks/Fallout.Persistence.Solution.Benchmarks/Fallout.Persistence.Solution.Benchmarks.csproj @@ -15,8 +15,13 @@ - + + + + + + diff --git a/tests/Consumers/Fallout.Consumer.Local/Build.cs b/tests/Consumers/Fallout.Consumer.Local/Build.cs index fa5510cc7..d94dce3d1 100644 --- a/tests/Consumers/Fallout.Consumer.Local/Build.cs +++ b/tests/Consumers/Fallout.Consumer.Local/Build.cs @@ -1,10 +1,5 @@ -// -// Fallout consumer against this repo's local source. Catches breakage of the -// public Fallout surface in the current PR. - -using Fallout.Common; -using Fallout.Common.IO; -using Fallout.Solutions; // was Fallout.Common.ProjectModel; — renamed in #254 (persistence layering + namespace cleanup) +using Fallout.Application; +using Fallout.Application.Solutions; class Build : FalloutBuild { diff --git a/tests/Consumers/Fallout.Consumer.Local/Fallout.Consumer.Local.csproj b/tests/Consumers/Fallout.Consumer.Local/Fallout.Consumer.Local.csproj index 36fd6cf99..3a879ae68 100644 --- a/tests/Consumers/Fallout.Consumer.Local/Fallout.Consumer.Local.csproj +++ b/tests/Consumers/Fallout.Consumer.Local/Fallout.Consumer.Local.csproj @@ -18,10 +18,19 @@ became `using Fallout.Solutions;` in the same PR. --> - - - - + + + + + + + + + + + + + diff --git a/tests/Consumers/Nuke.Consumer/Build.cs b/tests/Consumers/Nuke.Consumer/Build.cs index 3696c184e..3addea37d 100644 --- a/tests/Consumers/Nuke.Consumer/Build.cs +++ b/tests/Consumers/Nuke.Consumer/Build.cs @@ -11,10 +11,10 @@ // The shim generator skips delegates by C# language limitation (see SHIM002 — // can't subclass a delegate cross-assembly). `Target` is a delegate in -// Fallout.Common, so NUKE-era code referencing `Target` needs either +// Fallout.Application, so NUKE-era code referencing `Target` needs either // `fallout-migrate` (which flips usings to Fallout.*) or this manual alias. // Including it here keeps the rest of the file NUKE-shape. -using Target = Fallout.Common.Target; +using Target = Fallout.Application.Target; class Build : NukeBuild { diff --git a/tests/Consumers/Nuke.Consumer/Nuke.Consumer.csproj b/tests/Consumers/Nuke.Consumer/Nuke.Consumer.csproj index 1a5744333..fa41619c4 100644 --- a/tests/Consumers/Nuke.Consumer/Nuke.Consumer.csproj +++ b/tests/Consumers/Nuke.Consumer/Nuke.Consumer.csproj @@ -11,7 +11,6 @@ - diff --git a/tests/Fallout.Application.Components.Tests/Fallout.Application.Components.Tests.csproj b/tests/Fallout.Application.Components.Tests/Fallout.Application.Components.Tests.csproj new file mode 100644 index 000000000..d8560cf02 --- /dev/null +++ b/tests/Fallout.Application.Components.Tests/Fallout.Application.Components.Tests.csproj @@ -0,0 +1,11 @@ + + + + net10.0 + + + + + + + diff --git a/tests/Fallout.Components.Tests/PublishPackageRouterTests.cs b/tests/Fallout.Application.Components.Tests/PublishPackageRouterTests.cs similarity index 96% rename from tests/Fallout.Components.Tests/PublishPackageRouterTests.cs rename to tests/Fallout.Application.Components.Tests/PublishPackageRouterTests.cs index 1c4f81ff1..ddf805461 100644 --- a/tests/Fallout.Components.Tests/PublishPackageRouterTests.cs +++ b/tests/Fallout.Application.Components.Tests/PublishPackageRouterTests.cs @@ -1,7 +1,8 @@ using FluentAssertions; using Xunit; +using Fallout.Application.Components; -namespace Fallout.Components.Tests; +namespace Fallout.Application.Components.Tests; public class PublishPackageRouterTests { diff --git a/tests/Fallout.Build.Tests/BuildExecutorTest.cs b/tests/Fallout.Application.Tests/BuildExecutorTest.cs similarity index 96% rename from tests/Fallout.Build.Tests/BuildExecutorTest.cs rename to tests/Fallout.Application.Tests/BuildExecutorTest.cs index 98728a01b..19e3a921f 100644 --- a/tests/Fallout.Build.Tests/BuildExecutorTest.cs +++ b/tests/Fallout.Application.Tests/BuildExecutorTest.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.Execution; -using Fallout.Common.Utilities.Collections; +using Fallout.Domain.Execution; using Xunit; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests.Execution; +namespace Fallout.Application.Tests.Execution; public class BuildExecutorTest { diff --git a/tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsFromSchema.verified.txt b/tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsFromSchema.verified.txt similarity index 100% rename from tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsFromSchema.verified.txt rename to tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsFromSchema.verified.txt diff --git a/tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsParameterBuild.verified.txt b/tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsParameterBuild.verified.txt similarity index 100% rename from tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsParameterBuild.verified.txt rename to tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsParameterBuild.verified.txt diff --git a/tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsTargetBuild.verified.txt b/tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsTargetBuild.verified.txt similarity index 100% rename from tests/Fallout.Build.Tests/CompletionUtilityTest.TestGetCompletionItemsTargetBuild.verified.txt rename to tests/Fallout.Application.Tests/CompletionUtilityTest.TestGetCompletionItemsTargetBuild.verified.txt diff --git a/tests/Fallout.Build.Tests/CompletionUtilityTest.cs b/tests/Fallout.Application.Tests/CompletionUtilityTest.cs similarity index 97% rename from tests/Fallout.Build.Tests/CompletionUtilityTest.cs rename to tests/Fallout.Application.Tests/CompletionUtilityTest.cs index 6a60cd592..7161dd023 100644 --- a/tests/Fallout.Build.Tests/CompletionUtilityTest.cs +++ b/tests/Fallout.Application.Tests/CompletionUtilityTest.cs @@ -4,19 +4,20 @@ using System.Text.Json; using System.Threading.Tasks; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel; using VerifyTests; using VerifyXunit; using Xunit; +using Fallout.Kernel.IO; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public class CompletionUtilityTest { private readonly VerifySettings _verifySettings; private static AbsolutePath RootDirectory => Constants.TryGetRootDirectoryFrom(EnvironmentInfo.WorkingDirectory).NotNull(); - private static AbsolutePath TestDirectory => RootDirectory / "tests" / "Fallout.Build.Tests"; + private static AbsolutePath TestDirectory => RootDirectory / "tests" / "Fallout.Application.Tests"; public CompletionUtilityTest() { diff --git a/tests/Fallout.Build.Tests/ControlFlowTest.cs b/tests/Fallout.Application.Tests/ControlFlowTest.cs similarity index 88% rename from tests/Fallout.Build.Tests/ControlFlowTest.cs rename to tests/Fallout.Application.Tests/ControlFlowTest.cs index d995cbbfb..f66ad42a1 100644 --- a/tests/Fallout.Build.Tests/ControlFlowTest.cs +++ b/tests/Fallout.Application.Tests/ControlFlowTest.cs @@ -2,10 +2,11 @@ using System.Linq; using FluentAssertions; using Xunit; +using Fallout.Application; // ReSharper disable ArgumentsStyleLiteral -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public class ControlFlowTest { diff --git a/tests/Fallout.Build.Tests/DefaultInterfaceExecutionTest.cs b/tests/Fallout.Application.Tests/DefaultInterfaceExecutionTest.cs similarity index 98% rename from tests/Fallout.Build.Tests/DefaultInterfaceExecutionTest.cs rename to tests/Fallout.Application.Tests/DefaultInterfaceExecutionTest.cs index c2c21979a..f76dcd33e 100644 --- a/tests/Fallout.Build.Tests/DefaultInterfaceExecutionTest.cs +++ b/tests/Fallout.Application.Tests/DefaultInterfaceExecutionTest.cs @@ -1,11 +1,13 @@ -using System; +using System; using System.Linq; using System.Linq.Expressions; using FluentAssertions; -using Fallout.Common.Execution; using Xunit; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.Tests.Execution; +namespace Fallout.Application.Tests.Execution; public class DefaultInterfaceExecutionTest { diff --git a/tests/Fallout.Build.Tests/ExecutableTargetFactoryTest.cs b/tests/Fallout.Application.Tests/ExecutableTargetFactoryTest.cs similarity index 98% rename from tests/Fallout.Build.Tests/ExecutableTargetFactoryTest.cs rename to tests/Fallout.Application.Tests/ExecutableTargetFactoryTest.cs index 168797267..305c92092 100644 --- a/tests/Fallout.Build.Tests/ExecutableTargetFactoryTest.cs +++ b/tests/Fallout.Application.Tests/ExecutableTargetFactoryTest.cs @@ -2,10 +2,11 @@ using System.Linq; using System.Linq.Expressions; using FluentAssertions; -using Fallout.Common.Execution; using Xunit; +using Fallout.Application.Execution; +using Fallout.Application; -namespace Fallout.Common.Tests.Execution; +namespace Fallout.Application.Tests.Execution; public class ExecutableTargetFactoryTest { diff --git a/tests/Fallout.Build.Tests/ExecutionPlannerTest.cs b/tests/Fallout.Application.Tests/ExecutionPlannerTest.cs similarity index 97% rename from tests/Fallout.Build.Tests/ExecutionPlannerTest.cs rename to tests/Fallout.Application.Tests/ExecutionPlannerTest.cs index b8e51e94f..70053cf72 100644 --- a/tests/Fallout.Build.Tests/ExecutionPlannerTest.cs +++ b/tests/Fallout.Application.Tests/ExecutionPlannerTest.cs @@ -2,10 +2,10 @@ using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Common.Execution; using Xunit; +using Fallout.Application.Execution; -namespace Fallout.Common.Tests.Execution; +namespace Fallout.Application.Tests.Execution; public class ExecutionPlannerTest { diff --git a/tests/Fallout.Build.Tests/ExecutionTestsInitializer.cs b/tests/Fallout.Application.Tests/ExecutionTestsInitializer.cs similarity index 75% rename from tests/Fallout.Build.Tests/ExecutionTestsInitializer.cs rename to tests/Fallout.Application.Tests/ExecutionTestsInitializer.cs index 30ec8acd4..c29a9d765 100644 --- a/tests/Fallout.Build.Tests/ExecutionTestsInitializer.cs +++ b/tests/Fallout.Application.Tests/ExecutionTestsInitializer.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.Linq; using System.Runtime.CompilerServices; -using Fallout.Common.Execution; +using Fallout.Application.Execution; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public static class ExecutionTestsInitializer { diff --git a/tests/Fallout.Build.Tests/Fallout.Build.Tests.csproj b/tests/Fallout.Application.Tests/Fallout.Application.Tests.csproj similarity index 63% rename from tests/Fallout.Build.Tests/Fallout.Build.Tests.csproj rename to tests/Fallout.Application.Tests/Fallout.Application.Tests.csproj index 3c5ebf829..6ac69597e 100644 --- a/tests/Fallout.Build.Tests/Fallout.Build.Tests.csproj +++ b/tests/Fallout.Application.Tests/Fallout.Application.Tests.csproj @@ -5,7 +5,7 @@ - + diff --git a/tests/Fallout.Build.Tests/GitRepositoryTest.cs b/tests/Fallout.Application.Tests/GitRepositoryTest.cs similarity index 96% rename from tests/Fallout.Build.Tests/GitRepositoryTest.cs rename to tests/Fallout.Application.Tests/GitRepositoryTest.cs index 6fa952f64..4c15fd640 100644 --- a/tests/Fallout.Build.Tests/GitRepositoryTest.cs +++ b/tests/Fallout.Application.Tests/GitRepositoryTest.cs @@ -1,11 +1,12 @@ -using System; +using System; using System.IO; using System.Linq; using FluentAssertions; -using Fallout.Common.Git; using Xunit; +using Fallout.Application.Git; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public class GitRepositoryTest { diff --git a/tests/Fallout.Build.Tests/HostInitializer.cs b/tests/Fallout.Application.Tests/HostInitializer.cs similarity index 80% rename from tests/Fallout.Build.Tests/HostInitializer.cs rename to tests/Fallout.Application.Tests/HostInitializer.cs index 05bfd7f54..802963a0d 100644 --- a/tests/Fallout.Build.Tests/HostInitializer.cs +++ b/tests/Fallout.Application.Tests/HostInitializer.cs @@ -1,9 +1,10 @@ -using System; +using System; using System.Linq; using System.Runtime.CompilerServices; -using Fallout.Common.Utilities; +using Fallout.Application; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public static class HostInitializer { diff --git a/tests/Fallout.Build.Tests/ParameterServiceTest.cs b/tests/Fallout.Application.Tests/ParameterServiceTest.cs similarity index 97% rename from tests/Fallout.Build.Tests/ParameterServiceTest.cs rename to tests/Fallout.Application.Tests/ParameterServiceTest.cs index 92a2618cf..02c2a476a 100644 --- a/tests/Fallout.Build.Tests/ParameterServiceTest.cs +++ b/tests/Fallout.Application.Tests/ParameterServiceTest.cs @@ -2,12 +2,13 @@ using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; using Xunit; -using static Fallout.Common.Utilities.ReflectionUtility; +using static Fallout.Kernel.ReflectionUtility; +using Fallout.Application; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public class ParameterServiceTest { diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.TestCustomParameterAttribute.verified.json b/tests/Fallout.Application.Tests/SchemaUtilityTest.TestCustomParameterAttribute.verified.json similarity index 100% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.TestCustomParameterAttribute.verified.json rename to tests/Fallout.Application.Tests/SchemaUtilityTest.TestCustomParameterAttribute.verified.json diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.TestEmptyBuild.verified.json b/tests/Fallout.Application.Tests/SchemaUtilityTest.TestEmptyBuild.verified.json similarity index 100% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.TestEmptyBuild.verified.json rename to tests/Fallout.Application.Tests/SchemaUtilityTest.TestEmptyBuild.verified.json diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.TestGetBuildSchema.verified.json b/tests/Fallout.Application.Tests/SchemaUtilityTest.TestGetBuildSchema.verified.json similarity index 100% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.TestGetBuildSchema.verified.json rename to tests/Fallout.Application.Tests/SchemaUtilityTest.TestGetBuildSchema.verified.json diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.TestParameterBuild.verified.json b/tests/Fallout.Application.Tests/SchemaUtilityTest.TestParameterBuild.verified.json similarity index 100% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.TestParameterBuild.verified.json rename to tests/Fallout.Application.Tests/SchemaUtilityTest.TestParameterBuild.verified.json diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.TestTargetBuild.verified.json b/tests/Fallout.Application.Tests/SchemaUtilityTest.TestTargetBuild.verified.json similarity index 100% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.TestTargetBuild.verified.json rename to tests/Fallout.Application.Tests/SchemaUtilityTest.TestTargetBuild.verified.json diff --git a/tests/Fallout.Build.Tests/SchemaUtilityTest.cs b/tests/Fallout.Application.Tests/SchemaUtilityTest.cs similarity index 94% rename from tests/Fallout.Build.Tests/SchemaUtilityTest.cs rename to tests/Fallout.Application.Tests/SchemaUtilityTest.cs index 745585966..c84af206e 100644 --- a/tests/Fallout.Build.Tests/SchemaUtilityTest.cs +++ b/tests/Fallout.Application.Tests/SchemaUtilityTest.cs @@ -1,17 +1,18 @@ -using System; +using System; using System.ComponentModel; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; +using Fallout.Kernel; using VerifyXunit; using Xunit; +using Fallout.Application.Execution; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; #pragma warning disable CS0169 // Field is never used -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public class SchemaUtilityTest { diff --git a/tests/Fallout.Common.Tests/VerifyTestsInitializer.cs b/tests/Fallout.Application.Tests/VerifyTestsInitializer.cs similarity index 91% rename from tests/Fallout.Common.Tests/VerifyTestsInitializer.cs rename to tests/Fallout.Application.Tests/VerifyTestsInitializer.cs index 661d4b232..c312e82e0 100644 --- a/tests/Fallout.Common.Tests/VerifyTestsInitializer.cs +++ b/tests/Fallout.Application.Tests/VerifyTestsInitializer.cs @@ -3,7 +3,7 @@ using System.Runtime.CompilerServices; using VerifyTests; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tests; public static class VerifyTestsInitializer { diff --git a/tests/Fallout.Build.Tests/parameters.json b/tests/Fallout.Application.Tests/parameters.json similarity index 100% rename from tests/Fallout.Build.Tests/parameters.json rename to tests/Fallout.Application.Tests/parameters.json diff --git a/tests/Fallout.Tooling.Tests/ArgumentStringHandlerTest.cs b/tests/Fallout.Application.Tooling.Tests/ArgumentStringHandlerTest.cs similarity index 96% rename from tests/Fallout.Tooling.Tests/ArgumentStringHandlerTest.cs rename to tests/Fallout.Application.Tooling.Tests/ArgumentStringHandlerTest.cs index b8aa54e4e..413679689 100644 --- a/tests/Fallout.Tooling.Tests/ArgumentStringHandlerTest.cs +++ b/tests/Fallout.Application.Tooling.Tests/ArgumentStringHandlerTest.cs @@ -1,11 +1,11 @@ using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Tooling; using Xunit; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; // ReSharper disable StringLiteralAsInterpolationArgument -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tooling.Tests; public class ArgumentStringHandlerTest { diff --git a/src/Fallout.Components/Fallout.Components.csproj b/tests/Fallout.Application.Tooling.Tests/Fallout.Application.Tooling.Tests.csproj similarity index 59% rename from src/Fallout.Components/Fallout.Components.csproj rename to tests/Fallout.Application.Tooling.Tests/Fallout.Application.Tooling.Tests.csproj index 7b70d2480..46ccc30ac 100644 --- a/src/Fallout.Components/Fallout.Components.csproj +++ b/tests/Fallout.Application.Tooling.Tests/Fallout.Application.Tooling.Tests.csproj @@ -5,7 +5,7 @@ - + diff --git a/tests/Fallout.Tooling.Tests/OptionsTest.TestSerialization.verified.txt b/tests/Fallout.Application.Tooling.Tests/OptionsTest.TestSerialization.verified.txt similarity index 100% rename from tests/Fallout.Tooling.Tests/OptionsTest.TestSerialization.verified.txt rename to tests/Fallout.Application.Tooling.Tests/OptionsTest.TestSerialization.verified.txt diff --git a/tests/Fallout.Tooling.Tests/OptionsTest.cs b/tests/Fallout.Application.Tooling.Tests/OptionsTest.cs similarity index 97% rename from tests/Fallout.Tooling.Tests/OptionsTest.cs rename to tests/Fallout.Application.Tooling.Tests/OptionsTest.cs index 06e1455a6..c3bfd9a10 100644 --- a/tests/Fallout.Tooling.Tests/OptionsTest.cs +++ b/tests/Fallout.Application.Tooling.Tests/OptionsTest.cs @@ -6,13 +6,13 @@ using System.Threading.Tasks; using System.Text.Json; using FluentAssertions; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; using VerifyXunit; using Xunit; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tooling.Tests; public class OptionsTest { diff --git a/tests/Fallout.Tooling.Tests/ToolOptionsArgumentsTest.cs b/tests/Fallout.Application.Tooling.Tests/ToolOptionsArgumentsTest.cs similarity index 98% rename from tests/Fallout.Tooling.Tests/ToolOptionsArgumentsTest.cs rename to tests/Fallout.Application.Tooling.Tests/ToolOptionsArgumentsTest.cs index cfa788dfb..c5fe2406e 100644 --- a/tests/Fallout.Tooling.Tests/ToolOptionsArgumentsTest.cs +++ b/tests/Fallout.Application.Tooling.Tests/ToolOptionsArgumentsTest.cs @@ -6,12 +6,12 @@ using System.Text.Json; using System.Text.Json.Nodes; using FluentAssertions; -using Fallout.Common.Tooling; -using Fallout.Common.Utilities; -using Fallout.Common.Utilities.Collections; +using Fallout.Kernel; using Xunit; +using Fallout.Application.Tooling; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tooling.Tests; public class ToolOptionsArgumentsTest { diff --git a/tests/Fallout.Tooling.Tests/ToolTasksLoggerTest.cs b/tests/Fallout.Application.Tooling.Tests/ToolTasksLoggerTest.cs similarity index 97% rename from tests/Fallout.Tooling.Tests/ToolTasksLoggerTest.cs rename to tests/Fallout.Application.Tooling.Tests/ToolTasksLoggerTest.cs index e6d50e927..ef5a3c9ed 100644 --- a/tests/Fallout.Tooling.Tests/ToolTasksLoggerTest.cs +++ b/tests/Fallout.Application.Tooling.Tests/ToolTasksLoggerTest.cs @@ -1,14 +1,14 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Common.Tooling; using Serilog; using Serilog.Core; using Serilog.Events; using Xunit; +using Fallout.Application.Tooling; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tooling.Tests; public class ToolTasksLoggerTest { diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_1.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_2.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_3.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_4.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5_section_0.2.3.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5_section_0.2.3.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5_section_0.2.3.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_1.0.0_variant_5_section_0.2.3.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_1.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.verified.txt b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.verified.txt rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_NUKE_variant_2.verified.txt diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_1.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_1.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_1.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_1.md diff --git a/tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_2.md b/tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_2.md similarity index 100% rename from tests/Fallout.Common.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_2.md rename to tests/Fallout.Application.Tools.Tests/ChangelogReferenceFiles/changelog_reference_invalid_variant_2.md diff --git a/tests/Fallout.Common.Tests/ChangelogTasksTest.cs b/tests/Fallout.Application.Tools.Tests/ChangelogTasksTest.cs similarity index 93% rename from tests/Fallout.Common.Tests/ChangelogTasksTest.cs rename to tests/Fallout.Application.Tools.Tests/ChangelogTasksTest.cs index 07e7e718a..93b723b11 100644 --- a/tests/Fallout.Common.Tests/ChangelogTasksTest.cs +++ b/tests/Fallout.Application.Tools.Tests/ChangelogTasksTest.cs @@ -1,22 +1,24 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using FluentAssertions; -using Fallout.Common.ChangeLog; -using Fallout.Common.IO; using VerifyXunit; using Xunit; +using Fallout.Kernel.IO; +using Fallout.Application.ChangeLog; +using Fallout.Kernel; +using Fallout.Build.Shared; // ReSharper disable ReturnValueOfPureMethodIsNotUsed -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tools.Tests; public class ChangelogTasksTest { private static AbsolutePath RootDirectory => Constants.TryGetRootDirectoryFrom(EnvironmentInfo.WorkingDirectory).NotNull(); - private static AbsolutePath PathToChangelogReferenceFiles => RootDirectory / "tests" / "Fallout.Common.Tests" / "ChangelogReferenceFiles"; + private static AbsolutePath PathToChangelogReferenceFiles => RootDirectory / "tests" / "Fallout.Application.Tools.Tests" / "ChangelogReferenceFiles"; [Theory] [MemberData(nameof(AllChangelogReference_1_0_0_Files))] diff --git a/tests/Fallout.ProjectModel.Tests/Fallout.ProjectModel.Tests.csproj b/tests/Fallout.Application.Tools.Tests/Fallout.Application.Tools.Tests.csproj similarity index 71% rename from tests/Fallout.ProjectModel.Tests/Fallout.ProjectModel.Tests.csproj rename to tests/Fallout.Application.Tools.Tests/Fallout.Application.Tools.Tests.csproj index a661671cd..aac5a9ac2 100644 --- a/tests/Fallout.ProjectModel.Tests/Fallout.ProjectModel.Tests.csproj +++ b/tests/Fallout.Application.Tools.Tests/Fallout.Application.Tools.Tests.csproj @@ -5,8 +5,8 @@ + - diff --git a/tests/Fallout.Common.Tests/GitHubTasksTest.cs b/tests/Fallout.Application.Tools.Tests/GitHubTasksTest.cs similarity index 91% rename from tests/Fallout.Common.Tests/GitHubTasksTest.cs rename to tests/Fallout.Application.Tools.Tests/GitHubTasksTest.cs index 1b13ea081..5745b0e4b 100644 --- a/tests/Fallout.Common.Tests/GitHubTasksTest.cs +++ b/tests/Fallout.Application.Tools.Tests/GitHubTasksTest.cs @@ -1,12 +1,14 @@ using System; using System.Linq; using FluentAssertions; -using Fallout.Common.Git; -using Fallout.Common.IO; -using Fallout.Common.Tools.GitHub; using Xunit; +using Fallout.Application.Git; +using Fallout.Application.Tools.GitHub; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tools.Tests; public class GitHubTasksTest { diff --git a/tests/Fallout.Common.Tests/GitVersionParseTest.cs b/tests/Fallout.Application.Tools.Tests/GitVersionParseTest.cs similarity index 84% rename from tests/Fallout.Common.Tests/GitVersionParseTest.cs rename to tests/Fallout.Application.Tools.Tests/GitVersionParseTest.cs index d78fc964a..6b76f5ac6 100644 --- a/tests/Fallout.Common.Tests/GitVersionParseTest.cs +++ b/tests/Fallout.Application.Tools.Tests/GitVersionParseTest.cs @@ -4,11 +4,16 @@ // https://github.com/ChrisonSimtian/Fallout/blob/main/LICENSE using FluentAssertions; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Utilities; using Xunit; +using Fallout.Application.Tools.GitVersion; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tools.Tests; + +// This test lives under Fallout.Application.Tools.*, so the bare name GitVersion would otherwise bind to +// the sibling namespace (Fallout.Application.Tools.GitVersion) rather than the record of the same name. +// The alias must sit *inside* the namespace scope to outrank the enclosing sub-namespace during lookup. +using GitVersion = Fallout.Application.Tools.GitVersion.GitVersion; /// /// Regression tests for GitVersion JSON deserialisation (issue #218). diff --git a/tests/Fallout.Common.Tests/SettingsTest.TestDiscord.verified.txt b/tests/Fallout.Application.Tools.Tests/SettingsTest.TestDiscord.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/SettingsTest.TestDiscord.verified.txt rename to tests/Fallout.Application.Tools.Tests/SettingsTest.TestDiscord.verified.txt diff --git a/tests/Fallout.Common.Tests/SettingsTest.cs b/tests/Fallout.Application.Tools.Tests/SettingsTest.cs similarity index 93% rename from tests/Fallout.Common.Tests/SettingsTest.cs rename to tests/Fallout.Application.Tools.Tests/SettingsTest.cs index 1bdff94ab..1a039a3b2 100644 --- a/tests/Fallout.Common.Tests/SettingsTest.cs +++ b/tests/Fallout.Application.Tools.Tests/SettingsTest.cs @@ -4,21 +4,22 @@ using System.Threading.Tasks; using System.Text.Json; using FluentAssertions; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.OpenCover; -using Fallout.Common.Tools.Xunit; -using Fallout.Common.IO; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.CorFlags; -using Fallout.Common.Tools.Discord; -using Fallout.Common.Tools.Docker; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.Kubernetes; -using Fallout.Common.Utilities; using VerifyXunit; using Xunit; - -namespace Fallout.Common.Tests; +using Fallout.Application.Tools.DotNet; +using Fallout.Application.Tooling; +using Fallout.Application.Tools.MSBuild; +using Fallout.Application.Tools.Xunit; +using Fallout.Application.Tools.OpenCover; +using Fallout.Application.Tools.CorFlags; +using Fallout.Application.Tools.Docker; +using Fallout.Application.Tools.Discord; +using Fallout.Application.Tools.Kubernetes; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; + +namespace Fallout.Application.Tools.Tests; public class SettingsTest { diff --git a/tests/Fallout.Build.Tests/VerifyTestsInitializer.cs b/tests/Fallout.Application.Tools.Tests/VerifyTestsInitializer.cs similarity index 90% rename from tests/Fallout.Build.Tests/VerifyTestsInitializer.cs rename to tests/Fallout.Application.Tools.Tests/VerifyTestsInitializer.cs index 661d4b232..fd36075cf 100644 --- a/tests/Fallout.Build.Tests/VerifyTestsInitializer.cs +++ b/tests/Fallout.Application.Tools.Tests/VerifyTestsInitializer.cs @@ -3,7 +3,7 @@ using System.Runtime.CompilerServices; using VerifyTests; -namespace Fallout.Common.Tests; +namespace Fallout.Application.Tools.Tests; public static class VerifyTestsInitializer { diff --git a/tests/Fallout.Architecture.Tests/ApplicationRingFitnessTests.cs b/tests/Fallout.Architecture.Tests/ApplicationRingFitnessTests.cs new file mode 100644 index 000000000..46223acd9 --- /dev/null +++ b/tests/Fallout.Architecture.Tests/ApplicationRingFitnessTests.cs @@ -0,0 +1,47 @@ +using System.Reflection; +using FluentAssertions; +using NetArchTest.Rules; +using Xunit; + +namespace Fallout.Architecture.Tests; + +/// +/// Onion fitness for the Application ring (ADR-0006). The tool/CI/build vocabulary in the +/// Fallout.Application.* namespaces must not depend on the outer Fallout.Infrastructure.* ring: +/// the impure process/resolver implementations are reached only through the ports in +/// Fallout.Application.Tooling (see ToolingServices), with the concrete adapters registered from +/// Infrastructure via a module initializer. This guards the inversion that the tool-layer split (step 4b) +/// deferred. (Houses ring fitness in its own project so loading every ring's assembly cannot perturb +/// load-order-sensitive tests elsewhere, e.g. the schema/AppDomain-scan tests in Fallout.Application.Tests.) +/// +public class ApplicationRingFitnessTests +{ + // Application-ring types are spread across four assemblies: Fallout.Build (root/Execution/CI/Utilities), + // Fallout.Tooling (Application.Tooling vocabulary + ports), Fallout.Common (Application.Tools.*), and + // Fallout.Solution (Application.Solutions model + ports — step 5c; the co-hosted Infrastructure.Solutions + // serializer adapter lives in the same assembly but is filtered out by the namespace clause below). + private static readonly Assembly[] ApplicationAssemblies = + [ + typeof(global::Fallout.Application.FalloutBuild).Assembly, + typeof(global::Fallout.Application.Tooling.ToolTasks).Assembly, + typeof(global::Fallout.Application.Tools.DotNet.DotNetTasks).Assembly, + typeof(global::Fallout.Application.Solutions.Solution).Assembly, + ]; + + [Fact] + public void Application_ring_does_not_depend_on_Infrastructure() + { + var result = Types.InAssemblies(ApplicationAssemblies) + .That().ResideInNamespaceStartingWith("Fallout.Application") + .Should() + .NotHaveDependencyOn("Fallout.Infrastructure") + .GetResult(); + + result.IsSuccessful.Should().BeTrue( + because: "the Application ring must reach Infrastructure only through Fallout.Application.Tooling " + + "ports (ToolingServices); offending types: " + FailingTypes(result)); + } + + private static string FailingTypes(TestResult result) => + result.FailingTypeNames is null ? "(none reported)" : string.Join(", ", result.FailingTypeNames); +} diff --git a/tests/Fallout.Architecture.Tests/Fallout.Architecture.Tests.csproj b/tests/Fallout.Architecture.Tests/Fallout.Architecture.Tests.csproj new file mode 100644 index 000000000..a300299a0 --- /dev/null +++ b/tests/Fallout.Architecture.Tests/Fallout.Architecture.Tests.csproj @@ -0,0 +1,26 @@ + + + + net10.0 + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/Fallout.Cli.Tests/BuildProjectResolverTests.cs b/tests/Fallout.Cli.Tests/BuildProjectResolverTests.cs index 21d2a120d..b466a6c85 100644 --- a/tests/Fallout.Cli.Tests/BuildProjectResolverTests.cs +++ b/tests/Fallout.Cli.Tests/BuildProjectResolverTests.cs @@ -1,9 +1,9 @@ using System; using System.IO; -using Fallout.Common.IO; -using Fallout.Common.Utilities; +using Fallout.Kernel; using FluentAssertions; using Xunit; +using Fallout.Kernel.IO; namespace Fallout.Cli.Tests; diff --git a/tests/Fallout.Cli.Tests/CakeConversionTests.cs b/tests/Fallout.Cli.Tests/CakeConversionTests.cs deleted file mode 100644 index 8357034f7..000000000 --- a/tests/Fallout.Cli.Tests/CakeConversionTests.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using FluentAssertions; -using NuGet.Versioning; -using Fallout.Common; -using Fallout.Common.IO; -using VerifyXunit; -using Xunit; - -namespace Fallout.Cli.Tests; - -public class CakeConversionTests -{ - private static AbsolutePath RootDirectory => Constants.TryGetRootDirectoryFrom(EnvironmentInfo.WorkingDirectory); - - [Theory] - [MemberData(nameof(CakeFileNames))] - public Task Test(AbsolutePath file) - { - var converted = Program.GetCakeConvertedContent(file.ReadAllText()); - return Verifier.Verify(converted, extension: "cs") - .UseDirectory(CakeScriptsDirectory) - .UseFileName(file.NameWithoutExtension); - } - - [Fact] - public void TestPackages() - { - var content = (CakeScriptsDirectory / "references.cake").ReadAllText(); - - var packages = Program.GetCakePackages(content).ToList(); - packages.Should().Contain((Program.PACKAGE_TYPE_DOWNLOAD, "GitVersion.CommandLine", "4.0.0")); - packages.Should().Contain((Program.PACKAGE_TYPE_REFERENCE, "SharpZipLib", "1.2.0")); - packages.Should().Contain(x => x.Id == "TeamCity.Dotnet.Integration" && - NuGetVersion.Parse(x.Version) > NuGetVersion.Parse("1.0.10")); - packages.Should().NotContain(x => x.Id.Contains("Cake")); - } - - private static AbsolutePath CakeScriptsDirectory => RootDirectory / "tests" / "Fallout.Cli.Tests" / "cake-scripts"; - - public static IEnumerable CakeFileNames - => CakeScriptsDirectory.GlobFiles(Program.CAKE_FILE_PATTERN).Select(x => new object[] { x }); -} diff --git a/tests/Fallout.Cli.Tests/Fallout.Cli.Tests.csproj b/tests/Fallout.Cli.Tests/Fallout.Cli.Tests.csproj index 911b87173..039bcc215 100644 --- a/tests/Fallout.Cli.Tests/Fallout.Cli.Tests.csproj +++ b/tests/Fallout.Cli.Tests/Fallout.Cli.Tests.csproj @@ -5,13 +5,12 @@ - + - - + diff --git a/tests/Fallout.Cli.Tests/UpdateSolutionFileContentTests.cs b/tests/Fallout.Cli.Tests/UpdateSolutionFileContentTests.cs index 0663a166b..595c64264 100644 --- a/tests/Fallout.Cli.Tests/UpdateSolutionFileContentTests.cs +++ b/tests/Fallout.Cli.Tests/UpdateSolutionFileContentTests.cs @@ -1,9 +1,9 @@ using System; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.Utilities; using VerifyXunit; using Xunit; +using Fallout.Kernel; namespace Fallout.Cli.Tests; diff --git a/tests/Fallout.Cli.Tests/cake-scripts/default-target.cake b/tests/Fallout.Cli.Tests/cake-scripts/default-target.cake deleted file mode 100644 index 58b540faf..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/default-target.cake +++ /dev/null @@ -1,6 +0,0 @@ -var target = Argument("target", "Default"); - -Task("Default") - .Does(() => System.Console.WriteLine()); - -RunTarget(target); \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/default-target.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/default-target.verified.cs deleted file mode 100644 index ec7f690a0..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/default-target.verified.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - public static int Main() => Execute(x => x.Default); - - Target Default => _ => _ - .Executes(() => - { - System.Console.WriteLine(); - }); -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/globbing.cake b/tests/Fallout.Cli.Tests/cake-scripts/globbing.cake deleted file mode 100644 index b748a2168..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/globbing.cake +++ /dev/null @@ -1,6 +0,0 @@ -private void Convert() -{ - var files = GetFiles($"{publishDir}/**/A*.exe", - $"{publishDir}/**/B*.dll", - $"{publishDir}/**/C.exe"); -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/globbing.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/globbing.verified.cs deleted file mode 100644 index bdadd924a..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/globbing.verified.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - private void Convert() - { - var files = publishDir.GlobFiles("**/A*.exe").Concat(publishDir.GlobFiles("**/B*.dll")).Concat(publishDir.GlobFiles("**/C.exe")); - } -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/parameters.cake b/tests/Fallout.Cli.Tests/cake-scripts/parameters.cake deleted file mode 100644 index 4ee4a969b..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/parameters.cake +++ /dev/null @@ -1,11 +0,0 @@ -using Path = System.IO.Path; - -var target = Argument("target", "Default"); -var boolean = Argument("boolean", false); -var configuration = Argument("configuration", "Release"); -var parameterRename = Argument("where", ""); -var certificatePassword = Argument("certificatePassword", ""); -var awsAccessKeyId = Argument("aws_access_key_id", EnvironmentVariable("AWS_ACCESS_KEY") ?? "XXXX"); - -GitVersion gitVersionInfo; -string nugetVersion; diff --git a/tests/Fallout.Cli.Tests/cake-scripts/parameters.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/parameters.verified.cs deleted file mode 100644 index b8012a3f7..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/parameters.verified.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - [Parameter] readonly string Target = "Default"; - [Parameter] readonly bool Boolean; - [Parameter] readonly string Configuration = "Release"; - [Parameter("where")] readonly string ParameterRename; - [Parameter] [Secret] readonly string CertificatePassword; - [Parameter] [Secret] readonly object AwsAccessKeyId = GetVariable("AWS_ACCESS_KEY") ?? "XXXX"; - GitVersion GitVersionInfo; - string NuGetVersion; -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/paths.cake b/tests/Fallout.Cli.Tests/cake-scripts/paths.cake deleted file mode 100644 index 28b6d5b1b..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/paths.cake +++ /dev/null @@ -1,16 +0,0 @@ -var localPackagesDir = "../LocalPackages"; -var sourceFolder = "./source/"; -var publishDir = "./publish"; -var signToolPath = MakeAbsolute(File("./certificates/signtool.exe")); - -private string Convert(FilePath file) -{ - file = (FilePath) file; - CopyFile($"{projectFile}/{projectFile}.nuspec", "nuspec"); -} - -private void NoConvert() -{ - var nodes = doc.SelectNodes("Project/PropertyGroup/RuntimeIdentifiers"); - var node = doc.SelectSingleNode("Project/PropertyGroup/RuntimeIdentifiers"); -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/paths.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/paths.verified.cs deleted file mode 100644 index 495291107..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/paths.verified.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - AbsolutePath LocalPackagesDir => RootDirectory / ".." / "LocalPackages"; - - AbsolutePath SourceFolder => RootDirectory / "source"; - - AbsolutePath PublishDir => RootDirectory / "publish"; - - AbsolutePath SignToolPath => RootDirectory / "certificates" / "signtool.exe"; - - private string Convert(AbsolutePath file) - { - file = (AbsolutePath)file; - CopyFile(RootDirectory / projectFile/ $"{projectFile}.nuspec", "nuspec"); - } - - private void NoConvert() - { - var nodes = doc.SelectNodes("Project/PropertyGroup/RuntimeIdentifiers"); - var node = doc.SelectSingleNode("Project/PropertyGroup/RuntimeIdentifiers"); - } -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/references.cake b/tests/Fallout.Cli.Tests/cake-scripts/references.cake deleted file mode 100644 index 25966aabe..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/references.cake +++ /dev/null @@ -1,16 +0,0 @@ -////////////////////////////////////////////////////////////////////// -// TOOLS -////////////////////////////////////////////////////////////////////// -#tool "nuget:?package=GitVersion.CommandLine&version=4.0.0" -#tool "nuget:?package=TeamCity.Dotnet.Integration" -#addin "nuget:?package=SharpZipLib&version=1.2.0" -#addin "nuget:?package=Cake.Compression&version=0.2.4" - -using Path = System.IO.Path; -using IO = System.IO; - -////////////////////////////////////////////////////////////////////// -// ARGUMENTS -////////////////////////////////////////////////////////////////////// -var target = Argument("target", "Default"); -var configuration = Argument("configuration", "Release"); diff --git a/tests/Fallout.Cli.Tests/cake-scripts/references.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/references.verified.cs deleted file mode 100644 index 1d0bc1e73..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/references.verified.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - ////////////////////////////////////////////////////////////////////// - // ARGUMENTS - ////////////////////////////////////////////////////////////////////// - [Parameter] readonly string Target = "Default"; - [Parameter] readonly string Configuration = "Release"; -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/targets.cake b/tests/Fallout.Cli.Tests/cake-scripts/targets.cake deleted file mode 100644 index 51196cf47..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/targets.cake +++ /dev/null @@ -1,17 +0,0 @@ -Task("A") - .Does(() => System.Console.WriteLine()); - -Task("B") - .IsDependentOn("A") - .IsDependeeOf("A") - .Does(() => - { - System.Console.WriteLine(); - }); - -Task("C-1") - .IsDependentOn("B") - .WithCriteria(staticCondition) - .WithCriteria(() => dynamicCondition) - .ContinueOnError(); - diff --git a/tests/Fallout.Cli.Tests/cake-scripts/targets.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/targets.verified.cs deleted file mode 100644 index 2754810b2..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/targets.verified.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - - Target A => _ => _ - .Executes(() => - { - System.Console.WriteLine(); - }); - - - Target B => _ => _ - .DependsOn(A) - .DependentFor(A) - .Executes(() => - { - System.Console.WriteLine(); - }); - - - Target C_1 => _ => _ - .DependsOn(B) - .OnlyWhenStatic(() => staticCondition) - .OnlyWhenDynamic(() => dynamicCondition) - .ProceedAfterFailure(); -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.cake b/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.cake deleted file mode 100644 index 89c3f9159..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.cake +++ /dev/null @@ -1,34 +0,0 @@ - -private void Convert() -{ - DotNetCoreBuild("./source", new DotNetCoreBuildSettings { - Configuration = configuration, - ArgumentCustomization = args => args.Append($"/p:Version={nugetVersion}") - }); - - DotNetCoreTest(testProjectFile.FullPath, new DotNetCoreTestSettings { - Configuration = configuration, - NoBuild = true - }); - - DotNetCorePack(octopusClientFolder, new DotNetCorePackSettings { - ArgumentCustomization = args => { - args.Append($"/p:Version={nugetVersion}"); - args.Append($"/p:NuspecFile=file.nuspec"); - return args; - }, - Configuration = configuration, - OutputDirectory = artifactsDir, - NoBuild = true, - IncludeSymbols = false, - Verbosity = DotNetCoreVerbosity.Normal, - }); - - Sign(files, new SignToolSignSettings { - ToolPath = MakeAbsolute(File("./certificates/signtool.exe")), - TimeStampUri = new Uri("http://rfc3161timestamp.globalsign.com/advanced"), - TimeStampDigestAlgorithm = SignToolDigestAlgorithm.Sha256, - CertPath = signingCertificatePath, - Password = signingCertificatePassword - }); -} \ No newline at end of file diff --git a/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.verified.cs b/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.verified.cs deleted file mode 100644 index 0368b35c4..000000000 --- a/tests/Fallout.Cli.Tests/cake-scripts/tool-invocation.verified.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Linq.Expressions; -using System.Security.Cryptography.X509Certificates; -using System.Xml; -using Fallout.Common; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Tooling; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.GitVersion; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Utilities.Collections; -using Fallout.Common; -using Fallout.Common.Tools.DotNet; -using Fallout.Common.Tools.MSBuild; -using Fallout.Common.Tools.SignTool; -using Fallout.Common.Tools.NuGet; -using Fallout.Common.IO; -using Fallout.Common.IO; -using Fallout.Common; -using static Fallout.Common.ControlFlow; -using static Fallout.Common.Tools.DotNet.DotNetTasks; -using static Fallout.Common.Tools.MSBuild.MSBuildTasks; -using static Fallout.Common.Tools.SignTool.SignToolTasks; -using static Fallout.Common.Tools.NuGet.NuGetTasks; -using static Fallout.Common.IO.TextTasks; -using static Fallout.Common.IO.XmlTasks; -using static Fallout.Common.EnvironmentInfo; - -class Build : FalloutBuild -{ - private void Convert() - { - DotNetBuild(_ => _ - .SetProjectFile(RootDirectory / "source") - .SetConfiguration(configuration) - .SetProcessArgumentConfigurator(args => args.Add($"/p:Version={nugetVersion}"))); - DotNetTest(_ => _ - .SetProjectFile(testProjectFile) - .SetConfiguration(configuration) - .SetNoBuild(true)); - DotNetPack(_ => _ - .SetProjectFile(octopusClientFolder) - .SetProcessArgumentConfigurator(args => - { - args.Add($"/p:Version={nugetVersion}"); - args.Add("/p:NuspecFile=file.nuspec"); - return args; - }) - .SetConfiguration(configuration) - .SetOutputDirectory(artifactsDir) - .SetNoBuild(true) - .SetIncludeSymbols(false) - .SetVerbosity(DotNetVerbosity.Normal)); - SignTool(_ => _ - .SetFiles(files) - .SetProcessToolPath(RootDirectory / "certificates" / "signtool.exe") - .SetTimeStampUri(new Uri("http://rfc3161timestamp.globalsign.com/advanced")) - .SetTimeStampDigestAlgorithm(SignToolDigestAlgorithm.Sha256) - .SetCertPath(signingCertificatePath) - .SetPassword(signingCertificatePassword)); - } -} \ No newline at end of file diff --git a/tests/Fallout.Common.Tests/Fallout.Common.Tests.csproj b/tests/Fallout.Common.Tests/Fallout.Common.Tests.csproj deleted file mode 100644 index 0df502072..000000000 --- a/tests/Fallout.Common.Tests/Fallout.Common.Tests.csproj +++ /dev/null @@ -1,11 +0,0 @@ - - - - net10.0 - - - - - - - diff --git a/tests/Fallout.Core.Tests/ArchitectureFitnessTests.cs b/tests/Fallout.Domain.Tests/ArchitectureFitnessTests.cs similarity index 54% rename from tests/Fallout.Core.Tests/ArchitectureFitnessTests.cs rename to tests/Fallout.Domain.Tests/ArchitectureFitnessTests.cs index d4aed0960..3bf3c9ffc 100644 --- a/tests/Fallout.Core.Tests/ArchitectureFitnessTests.cs +++ b/tests/Fallout.Domain.Tests/ArchitectureFitnessTests.cs @@ -1,23 +1,23 @@ using System.Linq; using System.Reflection; using FluentAssertions; -using Fallout.Core.Planning; +using Fallout.Domain.Planning; using NetArchTest.Rules; using Xunit; -namespace Fallout.Core.Tests; +namespace Fallout.Domain.Tests; /// -/// The acceptance criterion for issue #88: Fallout.Core is the pure reactor core. It depends on -/// nothing in the repo and never touches I/O, processes, the console, or logging. The broader -/// architecture-fitness suite lands in #95; these two tests guard the Core invariant specifically. +/// Fallout.Domain is the innermost onion ring (ADR-0006; originally issue #88's "reactor core"): +/// pure domain types and graph algorithms that touch no I/O and depend on nothing else in the repo. +/// These tests guard that invariant — the dependency rule every outer ring builds on. /// public class ArchitectureFitnessTests { - private static readonly Assembly CoreAssembly = typeof(TopoSort).Assembly; + private static readonly Assembly DomainAssembly = typeof(TopoSort).Assembly; [Fact] - public void Core_has_no_io_process_console_or_logging_dependency() + public void Domain_has_no_io_process_console_or_logging_dependency() { // Scope to our own Fallout.* types only. This excludes build-tool noise injected into the // assembly that we don't author and can't keep pure: the generated `ThisAssembly` @@ -25,7 +25,7 @@ public void Core_has_no_io_process_console_or_logging_dependency() // (coverage instrumentation under `./build.ps1 Test`, which legitimately touches System.IO). // Precise tokens (e.g. "System.Diagnostics.Process") rather than the broad "System.Diagnostics" // namespace also avoid NetArchTest false-positives on generic types. - var result = Types.InAssembly(CoreAssembly) + var result = Types.InAssembly(DomainAssembly) .That().ResideInNamespaceStartingWith("Fallout") .Should() .NotHaveDependencyOnAny( @@ -36,26 +36,31 @@ public void Core_has_no_io_process_console_or_logging_dependency() .GetResult(); result.IsSuccessful.Should().BeTrue( - because: "Fallout.Core must stay pure; offending types: " + FailingTypes(result)); + because: "Fallout.Domain must stay pure; offending types: " + FailingTypes(result)); } [Fact] - public void Core_does_not_depend_on_higher_fallout_layers() + public void Domain_does_not_depend_on_any_outer_ring() { - var result = Types.InAssembly(CoreAssembly) + // ADR-0006 onion rule: the innermost ring references no outer ring — and crucially none of the + // dissolving `Fallout.Common.*` catch-all (the whole point of the realignment) nor the + // Application/Infrastructure rings to come. + var result = Types.InAssembly(DomainAssembly) .That().ResideInNamespaceStartingWith("Fallout") .Should() .NotHaveDependencyOnAny( + "Fallout.Common", + "Fallout.Application", + "Fallout.Infrastructure", "Fallout.Build", - "Fallout.Common.Tooling", - "Fallout.Common.Utilities", - "Fallout.ProjectModel", + "Fallout.Components", "Fallout.Tooling", - "Fallout.Utilities") + "Fallout.Utilities", + "Fallout.ProjectModel") .GetResult(); result.IsSuccessful.Should().BeTrue( - because: "Fallout.Core sits at the bottom and must reference no other Fallout project; " + + because: "Fallout.Domain is the innermost ring and must reference no other Fallout project; " + "offending types: " + FailingTypes(result)); } diff --git a/tests/Fallout.Core.Tests/Fallout.Core.Tests.csproj b/tests/Fallout.Domain.Tests/Fallout.Domain.Tests.csproj similarity index 74% rename from tests/Fallout.Core.Tests/Fallout.Core.Tests.csproj rename to tests/Fallout.Domain.Tests/Fallout.Domain.Tests.csproj index fdb7ca21c..b700dfec4 100644 --- a/tests/Fallout.Core.Tests/Fallout.Core.Tests.csproj +++ b/tests/Fallout.Domain.Tests/Fallout.Domain.Tests.csproj @@ -5,7 +5,7 @@ - + diff --git a/tests/Fallout.Core.Tests/TopoSortTests.cs b/tests/Fallout.Domain.Tests/TopoSortTests.cs similarity index 97% rename from tests/Fallout.Core.Tests/TopoSortTests.cs rename to tests/Fallout.Domain.Tests/TopoSortTests.cs index bbc93cd96..b281d569c 100644 --- a/tests/Fallout.Core.Tests/TopoSortTests.cs +++ b/tests/Fallout.Domain.Tests/TopoSortTests.cs @@ -1,10 +1,10 @@ using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Core.Planning; +using Fallout.Domain.Planning; using Xunit; -namespace Fallout.Core.Tests; +namespace Fallout.Domain.Tests; public class TopoSortTests { diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=checkout-ref_attribute=GitHubActionsAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=checkout-ref_attribute=GitHubActionsAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=checkout-ref_attribute=GitHubActionsAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=checkout-ref_attribute=GitHubActionsAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=detailed-triggers_attribute=GitHubActionsAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=detailed-triggers_attribute=GitHubActionsAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=detailed-triggers_attribute=GitHubActionsAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=detailed-triggers_attribute=GitHubActionsAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AppVeyorAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AppVeyorAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AppVeyorAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AppVeyorAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AzurePipelinesAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AzurePipelinesAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AzurePipelinesAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=AzurePipelinesAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=SpaceAutomationAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=SpaceAutomationAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=SpaceAutomationAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=SpaceAutomationAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=TeamCityAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=TeamCityAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=TeamCityAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=null_attribute=TeamCityAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=simple-triggers_attribute=GitHubActionsAttribute.verified.txt b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=simple-triggers_attribute=GitHubActionsAttribute.verified.txt similarity index 100% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.Test_testName=simple-triggers_attribute=GitHubActionsAttribute.verified.txt rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.Test_testName=simple-triggers_attribute=GitHubActionsAttribute.verified.txt diff --git a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.cs similarity index 96% rename from tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.cs index ce164bfb5..310364413 100644 --- a/tests/Fallout.Common.Tests/CI/ConfigurationGenerationTest.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/ConfigurationGenerationTest.cs @@ -1,21 +1,23 @@ -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Threading.Tasks; -using Fallout.Common.CI; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.GitHubActions; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.Execution; -using Fallout.Common.IO; -using Fallout.Common.Tooling; using VerifyXunit; using Xunit; - -namespace Fallout.Common.Tests.CI; +using Fallout.Application.Execution; +using Fallout.Application.CI; +using Fallout.Application; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Infrastructure.CI.AppVeyor; +using Fallout.Infrastructure.CI.TeamCity; +using Fallout.Infrastructure.CI.AzurePipelines; +using Fallout.Infrastructure.CI.GitHubActions; +using Fallout.Kernel; + +namespace Fallout.Infrastructure.CI.Tests; public class ConfigurationGenerationTest { diff --git a/tests/Fallout.Common.Tests/CI/ITestConfigurationGenerator.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/ITestConfigurationGenerator.cs similarity index 68% rename from tests/Fallout.Common.Tests/CI/ITestConfigurationGenerator.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/ITestConfigurationGenerator.cs index 547000106..119a51169 100644 --- a/tests/Fallout.Common.Tests/CI/ITestConfigurationGenerator.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/ITestConfigurationGenerator.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.CI; +using Fallout.Application.CI; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public interface ITestConfigurationGenerator : IConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CI/TestAppVeyorAttribute.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/TestAppVeyorAttribute.cs similarity index 82% rename from tests/Fallout.Common.Tests/CI/TestAppVeyorAttribute.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/TestAppVeyorAttribute.cs index 4f85207a9..8636827d7 100644 --- a/tests/Fallout.Common.Tests/CI/TestAppVeyorAttribute.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/TestAppVeyorAttribute.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.CI.AppVeyor; +using Fallout.Infrastructure.CI.AppVeyor; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public class TestAppVeyorAttribute : AppVeyorAttribute, ITestConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CI/TestAzurePipelinesAttribute.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/TestAzurePipelinesAttribute.cs similarity index 82% rename from tests/Fallout.Common.Tests/CI/TestAzurePipelinesAttribute.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/TestAzurePipelinesAttribute.cs index be6589670..c2a596977 100644 --- a/tests/Fallout.Common.Tests/CI/TestAzurePipelinesAttribute.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/TestAzurePipelinesAttribute.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.CI.AzurePipelines; +using Fallout.Infrastructure.CI.AzurePipelines; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public class TestAzurePipelinesAttribute : AzurePipelinesAttribute, ITestConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CI/TestGitHubActionsAttribute.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/TestGitHubActionsAttribute.cs similarity index 82% rename from tests/Fallout.Common.Tests/CI/TestGitHubActionsAttribute.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/TestGitHubActionsAttribute.cs index b699aa89f..d17388b69 100644 --- a/tests/Fallout.Common.Tests/CI/TestGitHubActionsAttribute.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/TestGitHubActionsAttribute.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.CI.GitHubActions; +using Fallout.Infrastructure.CI.GitHubActions; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public class TestGitHubActionsAttribute : GitHubActionsAttribute, ITestConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CI/TestSpaceAutomationAttribute.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/TestSpaceAutomationAttribute.cs similarity index 78% rename from tests/Fallout.Common.Tests/CI/TestSpaceAutomationAttribute.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/TestSpaceAutomationAttribute.cs index 6b76fac5b..e085f1085 100644 --- a/tests/Fallout.Common.Tests/CI/TestSpaceAutomationAttribute.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/TestSpaceAutomationAttribute.cs @@ -1,9 +1,9 @@ -using System; +using System; using System.IO; using System.Linq; -using Fallout.Common.CI.SpaceAutomation; +using Fallout.Infrastructure.CI.SpaceAutomation; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public class TestSpaceAutomationAttribute : SpaceAutomationAttribute, ITestConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CI/TestTeamCityAttribute.cs b/tests/Fallout.Infrastructure.CI.Tests/CI/TestTeamCityAttribute.cs similarity index 76% rename from tests/Fallout.Common.Tests/CI/TestTeamCityAttribute.cs rename to tests/Fallout.Infrastructure.CI.Tests/CI/TestTeamCityAttribute.cs index ea166fec0..bcf6d2e3a 100644 --- a/tests/Fallout.Common.Tests/CI/TestTeamCityAttribute.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CI/TestTeamCityAttribute.cs @@ -1,9 +1,9 @@ using System; using System.IO; using System.Linq; -using Fallout.Common.CI.TeamCity; +using Fallout.Infrastructure.CI.TeamCity; -namespace Fallout.Common.Tests.CI; +namespace Fallout.Infrastructure.CI.Tests; public class TestTeamCityAttribute : TeamCityAttribute, ITestConfigurationGenerator { diff --git a/tests/Fallout.Common.Tests/CITest.cs b/tests/Fallout.Infrastructure.CI.Tests/CITest.cs similarity index 73% rename from tests/Fallout.Common.Tests/CITest.cs rename to tests/Fallout.Infrastructure.CI.Tests/CITest.cs index ac1a79ab3..6f7c6ac1a 100644 --- a/tests/Fallout.Common.Tests/CITest.cs +++ b/tests/Fallout.Infrastructure.CI.Tests/CITest.cs @@ -1,20 +1,36 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Reflection; using FluentAssertions; -using Fallout.Common.CI; -using Fallout.Common.CI.AppVeyor; -using Fallout.Common.CI.AzurePipelines; -using Fallout.Common.CI.Bitrise; -using Fallout.Common.CI.GitLab; -using Fallout.Common.CI.Jenkins; -using Fallout.Common.CI.TeamCity; -using Fallout.Common.CI.TravisCI; using Xunit; - -namespace Fallout.Common.Tests; +using Fallout.Application.CI; +using Fallout.Infrastructure.CI.AppVeyor; +using Fallout.Infrastructure.CI.Bitrise; +using Fallout.Infrastructure.CI.TeamCity; +using Fallout.Infrastructure.CI.AzurePipelines; +using Fallout.Infrastructure.CI.Jenkins; +using Fallout.Infrastructure.CI.TravisCI; +using Fallout.Infrastructure.CI.GitLab; +using Fallout.Kernel; +// Fallout.Kernel now also defines an Assert (moved from Fallout.Common in the onion realignment), +// which collides by name with Xunit.Assert used throughout this test — bind the bare name to Xunit's. +using Assert = Xunit.Assert; + +namespace Fallout.Infrastructure.CI.Tests; + +// This test lives under Fallout.Infrastructure.CI.*, so each bare provider name (AppVeyor, …) would +// otherwise bind to the sibling namespace (Fallout.Infrastructure.CI.AppVeyor) rather than the host +// type of the same name. These aliases must sit *inside* the namespace scope so they outrank the +// enclosing CI sub-namespaces during simple-name lookup — above the namespace line they'd lose to them. +using AppVeyor = Fallout.Infrastructure.CI.AppVeyor.AppVeyor; +using Bitrise = Fallout.Infrastructure.CI.Bitrise.Bitrise; +using TeamCity = Fallout.Infrastructure.CI.TeamCity.TeamCity; +using AzurePipelines = Fallout.Infrastructure.CI.AzurePipelines.AzurePipelines; +using Jenkins = Fallout.Infrastructure.CI.Jenkins.Jenkins; +using TravisCI = Fallout.Infrastructure.CI.TravisCI.TravisCI; +using GitLab = Fallout.Infrastructure.CI.GitLab.GitLab; public class CITest { diff --git a/tests/Fallout.Infrastructure.CI.Tests/Fallout.Infrastructure.CI.Tests.csproj b/tests/Fallout.Infrastructure.CI.Tests/Fallout.Infrastructure.CI.Tests.csproj new file mode 100644 index 000000000..f0010b931 --- /dev/null +++ b/tests/Fallout.Infrastructure.CI.Tests/Fallout.Infrastructure.CI.Tests.csproj @@ -0,0 +1,12 @@ + + + + net10.0 + + + + + + + + diff --git a/tests/Fallout.Infrastructure.CI.Tests/VerifyTestsInitializer.cs b/tests/Fallout.Infrastructure.CI.Tests/VerifyTestsInitializer.cs new file mode 100644 index 000000000..f762e538a --- /dev/null +++ b/tests/Fallout.Infrastructure.CI.Tests/VerifyTestsInitializer.cs @@ -0,0 +1,17 @@ +using System; +using System.Linq; +using System.Runtime.CompilerServices; +using VerifyTests; + +namespace Fallout.Infrastructure.CI.Tests; + +public static class VerifyTestsInitializer +{ + [ModuleInitializer] + public static void Initialize() + { + Environment.SetEnvironmentVariable("DiffEngine_Disabled", "true"); + Environment.SetEnvironmentVariable("Verify_DisableClipboard", "true"); + VerifyDiffPlex.Initialize(); + } +} diff --git a/tests/Fallout.Infrastructure.ProjectModel.Tests/Fallout.Infrastructure.ProjectModel.Tests.csproj b/tests/Fallout.Infrastructure.ProjectModel.Tests/Fallout.Infrastructure.ProjectModel.Tests.csproj new file mode 100644 index 000000000..333664e34 --- /dev/null +++ b/tests/Fallout.Infrastructure.ProjectModel.Tests/Fallout.Infrastructure.ProjectModel.Tests.csproj @@ -0,0 +1,17 @@ + + + + net10.0 + + + + + + + + + + + + + diff --git a/tests/Fallout.ProjectModel.Tests/ModuleInit.cs b/tests/Fallout.Infrastructure.ProjectModel.Tests/ModuleInit.cs similarity index 59% rename from tests/Fallout.ProjectModel.Tests/ModuleInit.cs rename to tests/Fallout.Infrastructure.ProjectModel.Tests/ModuleInit.cs index b0e969fe6..9e5a0f36f 100644 --- a/tests/Fallout.ProjectModel.Tests/ModuleInit.cs +++ b/tests/Fallout.Infrastructure.ProjectModel.Tests/ModuleInit.cs @@ -1,10 +1,17 @@ using System.Runtime.CompilerServices; -using Fallout.Solutions; +using Fallout.Infrastructure.ProjectModel; +using Fallout.Infrastructure.Solutions; -namespace Fallout.Common.Tests; +namespace Fallout.Infrastructure.ProjectModel.Tests; internal static class ModuleInit { + // These tests also call AbsolutePath.ReadSolution(), which needs SolutionServices.Serializer registered + // from Fallout.Infrastructure.Solutions' module initializer — force it (see Solution.Tests/ModuleInit). + [ModuleInitializer] + public static void EnsureSolutionSerializerRegistered() + => RuntimeHelpers.RunModuleConstructor(typeof(SolutionReader).Module.ModuleHandle); + // Microsoft.Build is excluded from runtime output (ExcludeAssets="runtime") and resolved // at runtime via the AssemblyResolve handler that ProjectModelTasks installs from its own // [ModuleInitializer]. If a test method declares a local of a Microsoft.Build type, the diff --git a/tests/Fallout.ProjectModel.Tests/ProjectModelTest.cs b/tests/Fallout.Infrastructure.ProjectModel.Tests/ProjectModelTest.cs similarity index 82% rename from tests/Fallout.ProjectModel.Tests/ProjectModelTest.cs rename to tests/Fallout.Infrastructure.ProjectModel.Tests/ProjectModelTest.cs index a769b2fe0..a3be02426 100644 --- a/tests/Fallout.ProjectModel.Tests/ProjectModelTest.cs +++ b/tests/Fallout.Infrastructure.ProjectModel.Tests/ProjectModelTest.cs @@ -1,11 +1,14 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Solutions; using Xunit; +using Fallout.Kernel.IO; +using Fallout.Application.Solutions; +using Fallout.Infrastructure.ProjectModel; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Infrastructure.ProjectModel.Tests; public class ProjectModelTest { @@ -17,7 +20,7 @@ public class ProjectModelTest public void ProjectTest() { var solution = SolutionFile.ReadSolution(); - var project = solution.Projects.Single(x => x.Name == "Fallout.ProjectModel"); + var project = solution.Projects.Single(x => x.Name == "Fallout.Infrastructure.ProjectModel"); var action = new Action(() => project.GetMSBuildProject()); action.Should().NotThrow(); @@ -32,7 +35,7 @@ public void ProjectTest() public void MSBuildProjectTest() { var solution = SolutionFile.ReadSolution(); - var project = solution.Projects.Single(x => x.Name == "Fallout.ProjectModel"); + var project = solution.Projects.Single(x => x.Name == "Fallout.Infrastructure.ProjectModel"); var msbuildProject = project.GetMSBuildProject(targetFramework: "net8.0"); diff --git a/tests/Fallout.Infrastructure.Solutions.Tests/Fallout.Infrastructure.Solutions.Tests.csproj b/tests/Fallout.Infrastructure.Solutions.Tests/Fallout.Infrastructure.Solutions.Tests.csproj new file mode 100644 index 000000000..2d42aa893 --- /dev/null +++ b/tests/Fallout.Infrastructure.Solutions.Tests/Fallout.Infrastructure.Solutions.Tests.csproj @@ -0,0 +1,17 @@ + + + + net10.0 + + + + + + + + + + + + + diff --git a/tests/Fallout.Infrastructure.Solutions.Tests/ModuleInit.cs b/tests/Fallout.Infrastructure.Solutions.Tests/ModuleInit.cs new file mode 100644 index 000000000..5e4607789 --- /dev/null +++ b/tests/Fallout.Infrastructure.Solutions.Tests/ModuleInit.cs @@ -0,0 +1,15 @@ +using System.Runtime.CompilerServices; +using Fallout.Infrastructure.Solutions; + +namespace Fallout.Infrastructure.Solutions.Tests; + +internal static class ModuleInit +{ + // The solution serializer adapter registers SolutionServices.Serializer from a [ModuleInitializer] in + // Fallout.Infrastructure.Solutions, which only fires on first use of a type in that assembly. The build + // runtime force-runs it (BuildManager), but a test host doesn't — so explicitly run the adapter + // assembly's module constructor before any test calls AbsolutePath.ReadSolution(). + [ModuleInitializer] + public static void EnsureSolutionSerializerRegistered() + => RuntimeHelpers.RunModuleConstructor(typeof(SolutionReader).Module.ModuleHandle); +} diff --git a/tests/Fallout.Solution.Tests/SolutionTest.cs b/tests/Fallout.Infrastructure.Solutions.Tests/SolutionTest.cs similarity index 83% rename from tests/Fallout.Solution.Tests/SolutionTest.cs rename to tests/Fallout.Infrastructure.Solutions.Tests/SolutionTest.cs index b1530e0a0..897fd1889 100644 --- a/tests/Fallout.Solution.Tests/SolutionTest.cs +++ b/tests/Fallout.Infrastructure.Solutions.Tests/SolutionTest.cs @@ -1,12 +1,13 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Solutions; -using Fallout.Common.Utilities; +using Fallout.Kernel; using Xunit; +using Fallout.Kernel.IO; +using Fallout.Application.Solutions; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Infrastructure.Solutions.Tests; public class SolutionModelTest { diff --git a/tests/Fallout.Tooling.Tests/Fallout.Tooling.Tests.csproj b/tests/Fallout.Infrastructure.Tooling.Tests/Fallout.Infrastructure.Tooling.Tests.csproj similarity index 53% rename from tests/Fallout.Tooling.Tests/Fallout.Tooling.Tests.csproj rename to tests/Fallout.Infrastructure.Tooling.Tests/Fallout.Infrastructure.Tooling.Tests.csproj index 4ce477b8c..268a211db 100644 --- a/tests/Fallout.Tooling.Tests/Fallout.Tooling.Tests.csproj +++ b/tests/Fallout.Infrastructure.Tooling.Tests/Fallout.Infrastructure.Tooling.Tests.csproj @@ -1,4 +1,4 @@ - + net10.0 @@ -6,11 +6,15 @@ - + + + + + diff --git a/tests/Fallout.Tooling.Tests/NuGetPackageResolverTest.cs b/tests/Fallout.Infrastructure.Tooling.Tests/NuGetPackageResolverTest.cs similarity index 91% rename from tests/Fallout.Tooling.Tests/NuGetPackageResolverTest.cs rename to tests/Fallout.Infrastructure.Tooling.Tests/NuGetPackageResolverTest.cs index 5f9cee5bd..6d2fd0d73 100644 --- a/tests/Fallout.Tooling.Tests/NuGetPackageResolverTest.cs +++ b/tests/Fallout.Infrastructure.Tooling.Tests/NuGetPackageResolverTest.cs @@ -1,16 +1,18 @@ using System.Threading.Tasks; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Tooling; using Xunit; +using Fallout.Infrastructure.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Infrastructure.Tooling.Tests; public class NuGetPackageResolverTest { private static AbsolutePath RootDirectory => Constants.TryGetRootDirectoryFrom(EnvironmentInfo.WorkingDirectory).NotNull(); - private static AbsolutePath ProjectFile => RootDirectory / "tests" / "Fallout.Tooling.Tests" / "Fallout.Tooling.Tests.csproj"; + private static AbsolutePath ProjectFile => RootDirectory / "tests" / "Fallout.Infrastructure.Tooling.Tests" / "Fallout.Infrastructure.Tooling.Tests.csproj"; private static AbsolutePath AssetsFile => ProjectFile.Parent / "obj" / "project.assets.json"; private const string XunitConsolePackageVersion = "2.6.1"; diff --git a/tests/Fallout.Tooling.Tests/ToolTasksToolPathTest.cs b/tests/Fallout.Infrastructure.Tooling.Tests/ToolTasksToolPathTest.cs similarity index 90% rename from tests/Fallout.Tooling.Tests/ToolTasksToolPathTest.cs rename to tests/Fallout.Infrastructure.Tooling.Tests/ToolTasksToolPathTest.cs index 96474a262..03a249892 100644 --- a/tests/Fallout.Tooling.Tests/ToolTasksToolPathTest.cs +++ b/tests/Fallout.Infrastructure.Tooling.Tests/ToolTasksToolPathTest.cs @@ -2,10 +2,14 @@ using System.ComponentModel; using System.Linq; using FluentAssertions; -using Fallout.Common.Tooling; using Xunit; +using Fallout.Infrastructure.Tooling; +using Fallout.Application.Tooling; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Infrastructure.Tooling.Tests; public class ToolTasksToolPathTest { diff --git a/tests/Fallout.Utilities.Tests/ArgumentParserTest.cs b/tests/Fallout.Kernel.Tests/ArgumentParserTest.cs similarity index 98% rename from tests/Fallout.Utilities.Tests/ArgumentParserTest.cs rename to tests/Fallout.Kernel.Tests/ArgumentParserTest.cs index 46612aeb9..967754abe 100644 --- a/tests/Fallout.Utilities.Tests/ArgumentParserTest.cs +++ b/tests/Fallout.Kernel.Tests/ArgumentParserTest.cs @@ -2,8 +2,9 @@ using System.Linq; using FluentAssertions; using Xunit; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class ArgumentParserTest { diff --git a/tests/Fallout.Utilities.Tests/Collections/DictionaryExtensionsTest.cs b/tests/Fallout.Kernel.Tests/Collections/DictionaryExtensionsTest.cs similarity index 82% rename from tests/Fallout.Utilities.Tests/Collections/DictionaryExtensionsTest.cs rename to tests/Fallout.Kernel.Tests/Collections/DictionaryExtensionsTest.cs index d6390fa29..a59b7a8db 100644 --- a/tests/Fallout.Utilities.Tests/Collections/DictionaryExtensionsTest.cs +++ b/tests/Fallout.Kernel.Tests/Collections/DictionaryExtensionsTest.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Common.Utilities.Collections; using Xunit; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class DictionaryExtensionsTest { diff --git a/tests/Fallout.Utilities.Tests/Collections/EnumerableExtensionsTest.cs b/tests/Fallout.Kernel.Tests/Collections/EnumerableExtensionsTest.cs similarity index 88% rename from tests/Fallout.Utilities.Tests/Collections/EnumerableExtensionsTest.cs rename to tests/Fallout.Kernel.Tests/Collections/EnumerableExtensionsTest.cs index ac15f80ce..37b81e6a5 100644 --- a/tests/Fallout.Utilities.Tests/Collections/EnumerableExtensionsTest.cs +++ b/tests/Fallout.Kernel.Tests/Collections/EnumerableExtensionsTest.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.Utilities.Collections; using Xunit; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class EnumerableExtensionsTest { diff --git a/tests/Fallout.Utilities.Tests/Collections/LookupTableTest.cs b/tests/Fallout.Kernel.Tests/Collections/LookupTableTest.cs similarity index 93% rename from tests/Fallout.Utilities.Tests/Collections/LookupTableTest.cs rename to tests/Fallout.Kernel.Tests/Collections/LookupTableTest.cs index c5db832b7..30f6ebd0b 100644 --- a/tests/Fallout.Utilities.Tests/Collections/LookupTableTest.cs +++ b/tests/Fallout.Kernel.Tests/Collections/LookupTableTest.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.Utilities.Collections; using Xunit; +using Fallout.Kernel.Collections; // ReSharper disable ArgumentsStyleLiteral -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class LookupTableTest { diff --git a/tests/Fallout.Utilities.Tests/EncryptionUtilityTest.cs b/tests/Fallout.Kernel.Tests/EncryptionUtilityTest.cs similarity index 98% rename from tests/Fallout.Utilities.Tests/EncryptionUtilityTest.cs rename to tests/Fallout.Kernel.Tests/EncryptionUtilityTest.cs index 54897de9d..567bd1a50 100644 --- a/tests/Fallout.Utilities.Tests/EncryptionUtilityTest.cs +++ b/tests/Fallout.Kernel.Tests/EncryptionUtilityTest.cs @@ -1,9 +1,9 @@ using System; -using Fallout.Common.Utilities; using FluentAssertions; using Xunit; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class EncryptionUtilityTest { diff --git a/tests/Fallout.Utilities.Tests/EnvironmentInfoTest.cs b/tests/Fallout.Kernel.Tests/EnvironmentInfoTest.cs similarity index 76% rename from tests/Fallout.Utilities.Tests/EnvironmentInfoTest.cs rename to tests/Fallout.Kernel.Tests/EnvironmentInfoTest.cs index 106d678fa..6f73cb433 100644 --- a/tests/Fallout.Utilities.Tests/EnvironmentInfoTest.cs +++ b/tests/Fallout.Kernel.Tests/EnvironmentInfoTest.cs @@ -1,10 +1,11 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; using Xunit; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class EnvironmentInfoTest { diff --git a/tests/Fallout.Kernel.Tests/Fallout.Kernel.Tests.csproj b/tests/Fallout.Kernel.Tests/Fallout.Kernel.Tests.csproj new file mode 100644 index 000000000..15419a547 --- /dev/null +++ b/tests/Fallout.Kernel.Tests/Fallout.Kernel.Tests.csproj @@ -0,0 +1,15 @@ + + + + net10.0 + + + + + + + + + + + diff --git a/tests/Fallout.Utilities.Tests/IO/CompressionTasksTest.cs b/tests/Fallout.Kernel.Tests/IO/CompressionTasksTest.cs similarity index 95% rename from tests/Fallout.Utilities.Tests/IO/CompressionTasksTest.cs rename to tests/Fallout.Kernel.Tests/IO/CompressionTasksTest.cs index 067a5d673..0673be50b 100644 --- a/tests/Fallout.Utilities.Tests/IO/CompressionTasksTest.cs +++ b/tests/Fallout.Kernel.Tests/IO/CompressionTasksTest.cs @@ -2,11 +2,11 @@ using System.IO; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; using Xunit; using Xunit.Abstractions; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class CompressionTasksTest : FileSystemDependentTest { diff --git a/tests/Fallout.Utilities.Tests/IO/FileSystemDependentTest.cs b/tests/Fallout.Kernel.Tests/IO/FileSystemDependentTest.cs similarity index 92% rename from tests/Fallout.Utilities.Tests/IO/FileSystemDependentTest.cs rename to tests/Fallout.Kernel.Tests/IO/FileSystemDependentTest.cs index 45574baa9..3a0a8dad9 100644 --- a/tests/Fallout.Utilities.Tests/IO/FileSystemDependentTest.cs +++ b/tests/Fallout.Kernel.Tests/IO/FileSystemDependentTest.cs @@ -2,11 +2,12 @@ using System.IO; using System.Linq; using System.Reflection; -using Fallout.Common; -using Fallout.Common.IO; using Xunit.Abstractions; +using Fallout.Kernel.IO; +using Fallout.Kernel; +using Fallout.Build.Shared; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public abstract class FileSystemDependentTest { diff --git a/tests/Fallout.Utilities.Tests/IO/MoveCopyTest.cs b/tests/Fallout.Kernel.Tests/IO/MoveCopyTest.cs similarity index 97% rename from tests/Fallout.Utilities.Tests/IO/MoveCopyTest.cs rename to tests/Fallout.Kernel.Tests/IO/MoveCopyTest.cs index c09230be5..24ae3fbe8 100644 --- a/tests/Fallout.Utilities.Tests/IO/MoveCopyTest.cs +++ b/tests/Fallout.Kernel.Tests/IO/MoveCopyTest.cs @@ -1,12 +1,12 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Utilities.Collections; using Xunit; using Xunit.Abstractions; +using Fallout.Kernel.IO; +using Fallout.Kernel.Collections; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class MoveCopyTest : FileSystemDependentTest { diff --git a/tests/Fallout.Utilities.Tests/IO/PathConstructionTest.cs b/tests/Fallout.Kernel.Tests/IO/PathConstructionTest.cs similarity index 98% rename from tests/Fallout.Utilities.Tests/IO/PathConstructionTest.cs rename to tests/Fallout.Kernel.Tests/IO/PathConstructionTest.cs index b70d78a88..19706186e 100644 --- a/tests/Fallout.Utilities.Tests/IO/PathConstructionTest.cs +++ b/tests/Fallout.Kernel.Tests/IO/PathConstructionTest.cs @@ -1,11 +1,12 @@ using System; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; using Xunit; -using static Fallout.Common.IO.PathConstruction; +using static Fallout.Kernel.IO.PathConstruction; +using Fallout.Kernel.IO; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class PathConstructionTest { diff --git a/tests/Fallout.Utilities.Tests/Reflection/ReflectionUtilityTest.cs b/tests/Fallout.Kernel.Tests/Reflection/ReflectionUtilityTest.cs similarity index 97% rename from tests/Fallout.Utilities.Tests/Reflection/ReflectionUtilityTest.cs rename to tests/Fallout.Kernel.Tests/Reflection/ReflectionUtilityTest.cs index 7f77235a6..28436a29d 100644 --- a/tests/Fallout.Utilities.Tests/Reflection/ReflectionUtilityTest.cs +++ b/tests/Fallout.Kernel.Tests/Reflection/ReflectionUtilityTest.cs @@ -2,11 +2,11 @@ using System.Collections.Generic; using System.Globalization; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Utilities; using Xunit; +using Fallout.Kernel; +using Fallout.Kernel.IO; -namespace Fallout.Common.Tests.Execution; +namespace Fallout.Kernel.Tests.Execution; public class ReflectionUtilityTest { diff --git a/tests/Fallout.Utilities.Tests/Text/SerializationTest.cs b/tests/Fallout.Kernel.Tests/Text/SerializationTest.cs similarity index 91% rename from tests/Fallout.Utilities.Tests/Text/SerializationTest.cs rename to tests/Fallout.Kernel.Tests/Text/SerializationTest.cs index d0e621a51..4fd774571 100644 --- a/tests/Fallout.Utilities.Tests/Text/SerializationTest.cs +++ b/tests/Fallout.Kernel.Tests/Text/SerializationTest.cs @@ -1,13 +1,12 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using FluentAssertions; -using Fallout.Common.IO; -using Fallout.Common.Utilities; -using Fallout.Utilities.Text.Yaml; using Xunit; +using Fallout.Kernel; +using Fallout.Kernel.Text.Yaml; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class SerializationTest { diff --git a/tests/Fallout.Utilities.Tests/Text/StringExtensionsTest.cs b/tests/Fallout.Kernel.Tests/Text/StringExtensionsTest.cs similarity index 95% rename from tests/Fallout.Utilities.Tests/Text/StringExtensionsTest.cs rename to tests/Fallout.Kernel.Tests/Text/StringExtensionsTest.cs index ee79563bb..80bd4c58e 100644 --- a/tests/Fallout.Utilities.Tests/Text/StringExtensionsTest.cs +++ b/tests/Fallout.Kernel.Tests/Text/StringExtensionsTest.cs @@ -1,10 +1,10 @@ -using System; +using System; using System.Linq; using FluentAssertions; -using Fallout.Common.Utilities; using Xunit; +using Fallout.Kernel; -namespace Fallout.Common.Tests; +namespace Fallout.Kernel.Tests; public class StringExtensionsTest { diff --git a/tests/Fallout.Migrate.Analyzers.Tests/AnalyzerTestHarness.cs b/tests/Fallout.Migrate.Analyzers.Tests/AnalyzerTestHarness.cs index a91a0b964..738e45471 100644 --- a/tests/Fallout.Migrate.Analyzers.Tests/AnalyzerTestHarness.cs +++ b/tests/Fallout.Migrate.Analyzers.Tests/AnalyzerTestHarness.cs @@ -20,7 +20,7 @@ internal static class AnalyzerTestHarness // reference Fallout.* to fire" guard. Without this every test would silently // pass because the guard short-circuits. public static readonly MetadataReference FalloutMarkerReference = - MetadataReference.CreateFromFile(typeof(global::Fallout.Common.Utilities.CompletionUtility).Assembly.Location); + MetadataReference.CreateFromFile(typeof(global::Fallout.Kernel.CompletionUtility).Assembly.Location); } internal sealed class AnalyzerTest : CSharpAnalyzerTest diff --git a/tests/Fallout.Migrate.Analyzers.Tests/NukeMigrationCodeFixTests.cs b/tests/Fallout.Migrate.Analyzers.Tests/NukeMigrationCodeFixTests.cs index 7f652bc92..90f5972a2 100644 --- a/tests/Fallout.Migrate.Analyzers.Tests/NukeMigrationCodeFixTests.cs +++ b/tests/Fallout.Migrate.Analyzers.Tests/NukeMigrationCodeFixTests.cs @@ -20,7 +20,7 @@ public static class DotNetTasks { public static int X() => 0; } """; private const string TargetFalloutStub = """ - namespace Fallout.Common + namespace Fallout.Application { public class AbsolutePath { } namespace Tools.DotNet @@ -41,7 +41,7 @@ namespace X { class C { } } """; var fixedSource = $$""" - using Fallout.Common; + using Fallout.Application; namespace X { class C { } } {{LegacyNukeStub}} {{TargetFalloutStub}} @@ -61,7 +61,7 @@ namespace X { class C { } } """; var fixedSource = $$""" - using static Fallout.Common.Tools.DotNet.DotNetTasks; + using static Fallout.Application.Tools.DotNet.DotNetTasks; namespace X { class C { } } {{LegacyNukeStub}} {{TargetFalloutStub}} @@ -90,7 +90,7 @@ namespace X { class C { - object M() => typeof(Fallout.Common.AbsolutePath); + object M() => typeof(Fallout.Application.AbsolutePath); } } {{LegacyNukeStub}} @@ -161,7 +161,7 @@ namespace X { class C { } } var fixedSource = $$""" // Legacy build, mid-migration. - using Fallout.Common; + using Fallout.Application; namespace X { class C { } } {{LegacyNukeStub}} {{TargetFalloutStub}} diff --git a/tests/Fallout.Migrate.Analyzers.Tests/RealWorldSmokeTests.cs b/tests/Fallout.Migrate.Analyzers.Tests/RealWorldSmokeTests.cs index 3854bc72f..a3526cdc0 100644 --- a/tests/Fallout.Migrate.Analyzers.Tests/RealWorldSmokeTests.cs +++ b/tests/Fallout.Migrate.Analyzers.Tests/RealWorldSmokeTests.cs @@ -24,14 +24,14 @@ namespace Nuke.Components { public interface IPack { } } """; private const string TargetFalloutStub = """ - namespace Fallout.Common + namespace Fallout.Application { public class FalloutBuild { public static int Execute(System.Linq.Expressions.Expression> defaultTarget) => 0; } public class Target { } - namespace ProjectModel { public class Solution { } } namespace Tools.DotNet { public static class DotNetTasks { } } } - namespace Fallout.Components { public interface IPack { } } + namespace Fallout.Application.Solutions { public class Solution { } } + namespace Fallout.Application.Components { public interface IPack { } } """; [Fact] @@ -61,16 +61,16 @@ partial class Build : {|FALLOUT004:NukeBuild|}, {|FALLOUT004:Nuke.Components.IPa """; var fixedSource = $$""" - using Fallout.Common; - using Fallout.Common.ProjectModel; - using Fallout.Components; - using static Fallout.Common.Tools.DotNet.DotNetTasks; + using Fallout.Application; + using Fallout.Application.Solutions; + using Fallout.Application.Components; + using static Fallout.Application.Tools.DotNet.DotNetTasks; - partial class Build : FalloutBuild, Fallout.Components.IPack + partial class Build : FalloutBuild, Fallout.Application.Components.IPack { public static int Main() => Execute(x => null); - Fallout.Common.ProjectModel.Solution _solution; + Fallout.Application.Solutions.Solution _solution; } {{LegacyNukeStub}} diff --git a/tests/Fallout.Migrate.Tests/CodeRewriterTest.cs b/tests/Fallout.Migrate.Tests/CodeRewriterTest.cs index 0047ad28a..6acb6e3c7 100644 --- a/tests/Fallout.Migrate.Tests/CodeRewriterTest.cs +++ b/tests/Fallout.Migrate.Tests/CodeRewriterTest.cs @@ -11,14 +11,19 @@ public void RewritesUsingDirective() const string input = """ using Nuke.Common; using Nuke.Common.IO; - using Fallout.Common; + using Fallout.Kernel; """; var result = CodeRewriter.Rewrite(input); + // Per-namespace mapping (canonical map), not a blind Nuke.→Fallout. swap: + // Nuke.Common → Fallout.Application (the build-vocabulary root) + // Nuke.Common.IO → Fallout.Kernel.IO (AbsolutePath/glob fluent API) + // The pre-existing `using Fallout.Kernel;` has no Nuke prefix and is left untouched. result.EditCount.Should().Be(2); - result.Content.Should().Contain("using Fallout.Common;"); - result.Content.Should().Contain("using Fallout.Common.IO;"); + result.Content.Should().Contain("using Fallout.Application;"); + result.Content.Should().Contain("using Fallout.Kernel.IO;"); + result.Content.Should().Contain("using Fallout.Kernel;"); } [Fact] @@ -27,7 +32,7 @@ public void RewritesQualifiedTypeReference() const string input = "var x = new Nuke.Common.Tools.DotNet.DotNetTasks();"; var result = CodeRewriter.Rewrite(input); result.EditCount.Should().Be(1); - result.Content.Should().Be("var x = new Fallout.Common.Tools.DotNet.DotNetTasks();"); + result.Content.Should().Be("var x = new Fallout.Application.Tools.DotNet.DotNetTasks();"); } [Fact] diff --git a/tests/Fallout.Migrate.Tests/CsprojRewriterTest.cs b/tests/Fallout.Migrate.Tests/CsprojRewriterTest.cs index 6e1501768..0dc5b6444 100644 --- a/tests/Fallout.Migrate.Tests/CsprojRewriterTest.cs +++ b/tests/Fallout.Migrate.Tests/CsprojRewriterTest.cs @@ -22,8 +22,8 @@ public void RewritesPackageReferenceNamespace() var result = CsprojRewriter.Rewrite(input, TestFalloutVersion); result.EditCount.Should().Be(2); - result.Content.Should().Contain(@"Include=""Fallout.Common"""); - result.Content.Should().Contain(@"Include=""Fallout.Components"""); + result.Content.Should().Contain(@"Include=""Fallout"""); + result.Content.Should().Contain(@"Include=""Fallout.Application.Components"""); result.Content.Should().NotContain(@"Include=""Nuke."); } @@ -98,8 +98,8 @@ public void BumpsNukeInlineVersionToCurrentFalloutVersion() var result = CsprojRewriter.Rewrite(input, TestFalloutVersion); - result.Content.Should().Contain(@"Include=""Fallout.Common"" Version=""11.0.0"""); - result.Content.Should().Contain(@"Include=""Fallout.Components"" Version=""11.0.0"""); + result.Content.Should().Contain(@"Include=""Fallout"" Version=""11.0.0"""); + result.Content.Should().Contain(@"Include=""Fallout.Application.Components"" Version=""11.0.0"""); result.Content.Should().NotContain(@"Version=""10.1.0"""); } @@ -118,7 +118,7 @@ public void BumpsVersionAcrossExtraAttributesBetweenIncludeAndVersion() var result = CsprojRewriter.Rewrite(input, TestFalloutVersion); - result.Content.Should().Contain(@"Include=""Fallout.Common"" PrivateAssets=""all"" Version=""11.0.0"""); + result.Content.Should().Contain(@"Include=""Fallout"" PrivateAssets=""all"" Version=""11.0.0"""); } [Fact] @@ -137,7 +137,7 @@ public void LeavesCpmManagedReferencesWithoutInlineVersionUntouchedByVersionPass var result = CsprojRewriter.Rewrite(input, TestFalloutVersion); - result.Content.Should().Contain(@""); + result.Content.Should().Contain(@""); result.Content.Should().NotContain(@"Version="); } @@ -159,7 +159,7 @@ public void StripsSystemSecurityCryptographyXmlPackageReference() var result = CsprojRewriter.Rewrite(input, TestFalloutVersion); result.Content.Should().NotContain("System.Security.Cryptography.Xml"); - result.Content.Should().Contain(@"Include=""Fallout.Common"" Version=""11.0.0"""); + result.Content.Should().Contain(@"Include=""Fallout"" Version=""11.0.0"""); } [Fact] diff --git a/tests/Fallout.Migrate.Tests/MigrationIntegrationTest.cs b/tests/Fallout.Migrate.Tests/MigrationIntegrationTest.cs index 48d4fa153..b0185ad9a 100644 --- a/tests/Fallout.Migrate.Tests/MigrationIntegrationTest.cs +++ b/tests/Fallout.Migrate.Tests/MigrationIntegrationTest.cs @@ -21,13 +21,15 @@ public void MigratesVanillaConsumerRepo() // Build file rewritten end to end. var buildCsproj = File.ReadAllText(Path.Combine(temp, "build", "_build.csproj")); - buildCsproj.Should().Contain(@"Include=""Fallout.Common"""); + // Nuke.Common → the Fallout meta-package (post-onion; Fallout.Common no longer exists). + buildCsproj.Should().Contain(@"Include=""Fallout"""); buildCsproj.Should().Contain(""); buildCsproj.Should().NotContain("Nuke.Common"); buildCsproj.Should().NotContain(""); var buildCs = File.ReadAllText(Path.Combine(temp, "build", "Build.cs")); - buildCs.Should().Contain("using Fallout.Common"); + // Nuke.Common namespace → Fallout.Application (the build-vocabulary root). + buildCs.Should().Contain("using Fallout.Application"); buildCs.Should().Contain(": FalloutBuild"); buildCs.Should().NotContain("using Nuke."); buildCs.Should().NotContain("NukeBuild"); diff --git a/tests/Fallout.Solution.Tests/Fallout.Solution.Tests.csproj b/tests/Fallout.Solution.Tests/Fallout.Solution.Tests.csproj deleted file mode 100644 index b4e8a2f3c..000000000 --- a/tests/Fallout.Solution.Tests/Fallout.Solution.Tests.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - net10.0 - - - - - - - - diff --git a/tests/Fallout.SourceGenerators.Tests/Fallout.SourceGenerators.Tests.csproj b/tests/Fallout.SourceGenerators.Tests/Fallout.SourceGenerators.Tests.csproj index 5c332e6b8..893931ad0 100644 --- a/tests/Fallout.SourceGenerators.Tests/Fallout.SourceGenerators.Tests.csproj +++ b/tests/Fallout.SourceGenerators.Tests/Fallout.SourceGenerators.Tests.csproj @@ -7,7 +7,6 @@ - @@ -18,4 +17,10 @@ + + + + + + diff --git a/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.Test#Solution.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.Test#Solution.g.verified.cs index 2dec22605..6abce1cfd 100644 --- a/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.Test#Solution.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.Test#Solution.g.verified.cs @@ -1,60 +1,65 @@ //HintName: Solution.g.cs // -using Fallout.Persistence.Solution.Model; -using Fallout.Solutions; -using Fallout.Common.IO; +using Fallout.Application.Solutions; +using Fallout.Kernel.IO; using System.Runtime.CompilerServices; -internal class Solution(SolutionModel model, AbsolutePath path) : Fallout.Solutions.Solution(model, path) +internal class Solution(AbsolutePath path, object handle) : Fallout.Application.Solutions.Solution(path, handle) { - public Fallout.Solutions.Project _build => this.GetProject("_build"); - public Fallout.Solutions.Project Fallout_Build => this.GetProject("Fallout.Build"); - public Fallout.Solutions.Project Fallout_Build_Shared => this.GetProject("Fallout.Build.Shared"); - public Fallout.Solutions.Project Fallout_Build_Tests => this.GetProject("Fallout.Build.Tests"); - public Fallout.Solutions.Project Fallout_Cli => this.GetProject("Fallout.Cli"); - public Fallout.Solutions.Project Fallout_Cli_Tests => this.GetProject("Fallout.Cli.Tests"); - public Fallout.Solutions.Project Fallout_Common => this.GetProject("Fallout.Common"); - public Fallout.Solutions.Project Fallout_Common_Tests => this.GetProject("Fallout.Common.Tests"); - public Fallout.Solutions.Project Fallout_Components => this.GetProject("Fallout.Components"); - public Fallout.Solutions.Project Fallout_Components_Tests => this.GetProject("Fallout.Components.Tests"); - public Fallout.Solutions.Project Fallout_Consumer_Local => this.GetProject("Fallout.Consumer.Local"); - public Fallout.Solutions.Project Fallout_Consumer_NuGet => this.GetProject("Fallout.Consumer.NuGet"); - public Fallout.Solutions.Project Fallout_Core => this.GetProject("Fallout.Core"); - public Fallout.Solutions.Project Fallout_Core_Tests => this.GetProject("Fallout.Core.Tests"); - public Fallout.Solutions.Project Fallout_Migrate => this.GetProject("Fallout.Migrate"); - public Fallout.Solutions.Project Fallout_Migrate_Analyzers => this.GetProject("Fallout.Migrate.Analyzers"); - public Fallout.Solutions.Project Fallout_Migrate_Analyzers_Tests => this.GetProject("Fallout.Migrate.Analyzers.Tests"); - public Fallout.Solutions.Project Fallout_Migrate_Tests => this.GetProject("Fallout.Migrate.Tests"); - public Fallout.Solutions.Project Fallout_MSBuildTasks => this.GetProject("Fallout.MSBuildTasks"); - public Fallout.Solutions.Project Fallout_Persistence_Solution => this.GetProject("Fallout.Persistence.Solution"); - public Fallout.Solutions.Project Fallout_Persistence_Solution_Benchmarks => this.GetProject("Fallout.Persistence.Solution.Benchmarks"); - public Fallout.Solutions.Project Fallout_ProjectModel => this.GetProject("Fallout.ProjectModel"); - public Fallout.Solutions.Project Fallout_ProjectModel_Tests => this.GetProject("Fallout.ProjectModel.Tests"); - public Fallout.Solutions.Project Fallout_Solution => this.GetProject("Fallout.Solution"); - public Fallout.Solutions.Project Fallout_Solution_Tests => this.GetProject("Fallout.Solution.Tests"); - public Fallout.Solutions.Project Fallout_SourceGenerators => this.GetProject("Fallout.SourceGenerators"); - public Fallout.Solutions.Project Fallout_SourceGenerators_Tests => this.GetProject("Fallout.SourceGenerators.Tests"); - public Fallout.Solutions.Project Fallout_Tooling => this.GetProject("Fallout.Tooling"); - public Fallout.Solutions.Project Fallout_Tooling_Generator => this.GetProject("Fallout.Tooling.Generator"); - public Fallout.Solutions.Project Fallout_Tooling_Tests => this.GetProject("Fallout.Tooling.Tests"); - public Fallout.Solutions.Project Fallout_Utilities => this.GetProject("Fallout.Utilities"); - public Fallout.Solutions.Project Fallout_Utilities_IO_Compression => this.GetProject("Fallout.Utilities.IO.Compression"); - public Fallout.Solutions.Project Fallout_Utilities_IO_Globbing => this.GetProject("Fallout.Utilities.IO.Globbing"); - public Fallout.Solutions.Project Fallout_Utilities_Net => this.GetProject("Fallout.Utilities.Net"); - public Fallout.Solutions.Project Fallout_Utilities_Tests => this.GetProject("Fallout.Utilities.Tests"); - public Fallout.Solutions.Project Fallout_Utilities_Text_Json => this.GetProject("Fallout.Utilities.Text.Json"); - public Fallout.Solutions.Project Fallout_Utilities_Text_Yaml => this.GetProject("Fallout.Utilities.Text.Yaml"); - public Fallout.Solutions.Project Nuke_Build => this.GetProject("Nuke.Build"); - public Fallout.Solutions.Project Nuke_Common => this.GetProject("Nuke.Common"); - public Fallout.Solutions.Project Nuke_Common_Shim_Tests => this.GetProject("Nuke.Common.Shim.Tests"); - public Fallout.Solutions.Project Nuke_Components => this.GetProject("Nuke.Components"); - public Fallout.Solutions.Project Nuke_Components_Shim_Tests => this.GetProject("Nuke.Components.Shim.Tests"); - public Fallout.Solutions.Project Nuke_Consumer => this.GetProject("Nuke.Consumer"); + public Fallout.Application.Solutions.Project _build => this.GetProject("_build"); + public Fallout.Application.Solutions.Project Fallout => this.GetProject("Fallout"); + public Fallout.Application.Solutions.Project Fallout_Application => this.GetProject("Fallout.Application"); + public Fallout.Application.Solutions.Project Fallout_Application_Components => this.GetProject("Fallout.Application.Components"); + public Fallout.Application.Solutions.Project Fallout_Application_Components_Tests => this.GetProject("Fallout.Application.Components.Tests"); + public Fallout.Application.Solutions.Project Fallout_Application_Solutions => this.GetProject("Fallout.Application.Solutions"); + public Fallout.Application.Solutions.Project Fallout_Application_Tests => this.GetProject("Fallout.Application.Tests"); + public Fallout.Application.Solutions.Project Fallout_Application_Tooling => this.GetProject("Fallout.Application.Tooling"); + public Fallout.Application.Solutions.Project Fallout_Application_Tooling_Tests => this.GetProject("Fallout.Application.Tooling.Tests"); + public Fallout.Application.Solutions.Project Fallout_Application_Tools => this.GetProject("Fallout.Application.Tools"); + public Fallout.Application.Solutions.Project Fallout_Application_Tools_Tests => this.GetProject("Fallout.Application.Tools.Tests"); + public Fallout.Application.Solutions.Project Fallout_Architecture_Tests => this.GetProject("Fallout.Architecture.Tests"); + public Fallout.Application.Solutions.Project Fallout_Build_Shared => this.GetProject("Fallout.Build.Shared"); + public Fallout.Application.Solutions.Project Fallout_Cli => this.GetProject("Fallout.Cli"); + public Fallout.Application.Solutions.Project Fallout_Cli_Tests => this.GetProject("Fallout.Cli.Tests"); + public Fallout.Application.Solutions.Project Fallout_Consumer_Local => this.GetProject("Fallout.Consumer.Local"); + public Fallout.Application.Solutions.Project Fallout_Consumer_NuGet => this.GetProject("Fallout.Consumer.NuGet"); + public Fallout.Application.Solutions.Project Fallout_Domain => this.GetProject("Fallout.Domain"); + public Fallout.Application.Solutions.Project Fallout_Domain_Tests => this.GetProject("Fallout.Domain.Tests"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_CI => this.GetProject("Fallout.Infrastructure.CI"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_CI_Tests => this.GetProject("Fallout.Infrastructure.CI.Tests"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_ProjectModel => this.GetProject("Fallout.Infrastructure.ProjectModel"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_ProjectModel_Tests => this.GetProject("Fallout.Infrastructure.ProjectModel.Tests"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_Solutions => this.GetProject("Fallout.Infrastructure.Solutions"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_Solutions_Tests => this.GetProject("Fallout.Infrastructure.Solutions.Tests"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_Tooling => this.GetProject("Fallout.Infrastructure.Tooling"); + public Fallout.Application.Solutions.Project Fallout_Infrastructure_Tooling_Tests => this.GetProject("Fallout.Infrastructure.Tooling.Tests"); + public Fallout.Application.Solutions.Project Fallout_Kernel => this.GetProject("Fallout.Kernel"); + public Fallout.Application.Solutions.Project Fallout_Kernel_IO_Compression => this.GetProject("Fallout.Kernel.IO.Compression"); + public Fallout.Application.Solutions.Project Fallout_Kernel_IO_Globbing => this.GetProject("Fallout.Kernel.IO.Globbing"); + public Fallout.Application.Solutions.Project Fallout_Kernel_Net => this.GetProject("Fallout.Kernel.Net"); + public Fallout.Application.Solutions.Project Fallout_Kernel_Tests => this.GetProject("Fallout.Kernel.Tests"); + public Fallout.Application.Solutions.Project Fallout_Kernel_Text_Json => this.GetProject("Fallout.Kernel.Text.Json"); + public Fallout.Application.Solutions.Project Fallout_Kernel_Text_Yaml => this.GetProject("Fallout.Kernel.Text.Yaml"); + public Fallout.Application.Solutions.Project Fallout_Migrate => this.GetProject("Fallout.Migrate"); + public Fallout.Application.Solutions.Project Fallout_Migrate_Analyzers => this.GetProject("Fallout.Migrate.Analyzers"); + public Fallout.Application.Solutions.Project Fallout_Migrate_Analyzers_Tests => this.GetProject("Fallout.Migrate.Analyzers.Tests"); + public Fallout.Application.Solutions.Project Fallout_Migrate_Tests => this.GetProject("Fallout.Migrate.Tests"); + public Fallout.Application.Solutions.Project Fallout_MSBuildTasks => this.GetProject("Fallout.MSBuildTasks"); + public Fallout.Application.Solutions.Project Fallout_Persistence_Solution => this.GetProject("Fallout.Persistence.Solution"); + public Fallout.Application.Solutions.Project Fallout_Persistence_Solution_Benchmarks => this.GetProject("Fallout.Persistence.Solution.Benchmarks"); + public Fallout.Application.Solutions.Project Fallout_SourceGenerators => this.GetProject("Fallout.SourceGenerators"); + public Fallout.Application.Solutions.Project Fallout_SourceGenerators_Tests => this.GetProject("Fallout.SourceGenerators.Tests"); + public Fallout.Application.Solutions.Project Fallout_Tooling_Generator => this.GetProject("Fallout.Tooling.Generator"); + public Fallout.Application.Solutions.Project Nuke_Common => this.GetProject("Nuke.Common"); + public Fallout.Application.Solutions.Project Nuke_Common_Shim_Tests => this.GetProject("Nuke.Common.Shim.Tests"); + public Fallout.Application.Solutions.Project Nuke_Components => this.GetProject("Nuke.Components"); + public Fallout.Application.Solutions.Project Nuke_Components_Shim_Tests => this.GetProject("Nuke.Components.Shim.Tests"); + public Fallout.Application.Solutions.Project Nuke_Consumer => this.GetProject("Nuke.Consumer"); public _misc misc => Unsafe.As<_misc>(this.GetSolutionFolder("misc")); - internal class _misc(SolutionFolderModel model, Fallout.Solutions.Solution solution) : Fallout.Solutions.SolutionFolder(model, solution) + internal class _misc : Fallout.Application.Solutions.SolutionFolder { diff --git a/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.cs b/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.cs index 3cb6d2a52..8533f96d0 100644 --- a/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.cs +++ b/tests/Fallout.SourceGenerators.Tests/StronglyTypedSolutionGeneratorTest.cs @@ -1,13 +1,13 @@ -using System; +using System; using System.Linq; using System.Threading.Tasks; using FluentAssertions; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; -using Fallout.Common; -using Fallout.Solutions; using VerifyXunit; using Xunit; +using Fallout.Application; +using Fallout.Application.Solutions; namespace Fallout.SourceGenerators.Tests; @@ -18,7 +18,7 @@ public Task Test() { var inputCompilation = CreateCompilation(""" using Fallout.Common; - using Fallout.Solutions; + using Fallout.Application.Solutions; partial class Build : FalloutBuild { [Solution(GenerateProjects = true)] @@ -38,7 +38,7 @@ public void TestDisabled() var inputCompilation = CreateCompilation(""" using Fallout.Common; - using Fallout.Solutions; + using Fallout.Application.Solutions; partial class Build : FalloutBuild { @@ -62,7 +62,7 @@ public void TestUnspecified() var inputCompilation = CreateCompilation(""" using Fallout.Common; - using Fallout.Solutions; + using Fallout.Application.Solutions; partial class Build : FalloutBuild { diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#ShimAllPublicTypesUnderAttribute.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#ShimAllPublicTypesUnderAttribute.g.verified.cs deleted file mode 100644 index 997d07273..000000000 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#ShimAllPublicTypesUnderAttribute.g.verified.cs +++ /dev/null @@ -1,23 +0,0 @@ -//HintName: ShimAllPublicTypesUnderAttribute.g.cs -// -#nullable enable -namespace Fallout.Migrate.Shims; - -/// -/// Marks the consuming assembly as a transition-shim project. The -/// TransitionShimGenerator walks referenced Fallout.* assemblies and emits -/// shim types under mirroring the -/// public types whose namespace begins with . -/// -[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple = true)] -internal sealed class ShimAllPublicTypesUnderAttribute : System.Attribute -{ - public ShimAllPublicTypesUnderAttribute(string fromNamespacePrefix, string toNamespacePrefix) - { - FromNamespacePrefix = fromNamespacePrefix; - ToNamespacePrefix = toNamespacePrefix; - } - - public string FromNamespacePrefix { get; } - public string ToNamespacePrefix { get; } -} \ No newline at end of file diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Abstr.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Abstr.g.verified.cs similarity index 62% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Abstr.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Abstr.g.verified.cs index c6911a3bd..d98801944 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Abstr.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Abstr.g.verified.cs @@ -1,11 +1,11 @@ -//HintName: global__Fallout.Common.Abstr.g.cs +//HintName: global__Fallout.Application.Abstr.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public abstract partial class Abstr : global::Fallout.Common.Abstr + public abstract partial class Abstr : global::Fallout.Application.Abstr { protected Abstr() { } } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Generic_T_.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Generic_T_.g.verified.cs similarity index 65% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Generic_T_.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Generic_T_.g.verified.cs index f18b76fd1..98be637cd 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Generic_T_.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Generic_T_.g.verified.cs @@ -1,11 +1,11 @@ -//HintName: global__Fallout.Common.Generic_T_.g.cs +//HintName: global__Fallout.Application.Generic_T_.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public partial class Generic : global::Fallout.Common.Generic + public partial class Generic : global::Fallout.Application.Generic where T : class { public Generic(T item) : base(item) { } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.IFoo.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.IFoo.g.verified.cs similarity index 60% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.IFoo.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.IFoo.g.verified.cs index f2fbec070..dffbb06bd 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.IFoo.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.IFoo.g.verified.cs @@ -1,11 +1,11 @@ -//HintName: global__Fallout.Common.IFoo.g.cs +//HintName: global__Fallout.Application.IFoo.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public partial interface IFoo : global::Fallout.Common.IFoo + public partial interface IFoo : global::Fallout.Application.IFoo { } } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.MyAttr.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.MyAttr.g.verified.cs similarity index 64% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.MyAttr.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.MyAttr.g.verified.cs index 135c4fa53..ccc744a69 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.MyAttr.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.MyAttr.g.verified.cs @@ -1,11 +1,11 @@ -//HintName: global__Fallout.Common.MyAttr.g.cs +//HintName: global__Fallout.Application.MyAttr.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public partial class MyAttr : global::Fallout.Common.MyAttr + public partial class MyAttr : global::Fallout.Application.MyAttr { public MyAttr(int n) : base(n) { } } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Regular.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Regular.g.verified.cs similarity index 67% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Regular.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Regular.g.verified.cs index 575a3c457..d31dd45fb 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.Regular.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.Regular.g.verified.cs @@ -1,11 +1,11 @@ -//HintName: global__Fallout.Common.Regular.g.cs +//HintName: global__Fallout.Application.Regular.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public partial class Regular : global::Fallout.Common.Regular + public partial class Regular : global::Fallout.Application.Regular { public Regular(string a) : base(a) { } public Regular() { } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.StaticHelpers.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.StaticHelpers.g.verified.cs similarity index 55% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.StaticHelpers.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.StaticHelpers.g.verified.cs index 327d72c3a..d18f8e196 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.StaticHelpers.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.StaticHelpers.g.verified.cs @@ -1,4 +1,4 @@ -//HintName: global__Fallout.Common.StaticHelpers.g.cs +//HintName: global__Fallout.Application.StaticHelpers.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. @@ -7,12 +7,12 @@ namespace Nuke.Common { public static partial class StaticHelpers { - public static int Plain(int a) => global::Fallout.Common.StaticHelpers.Plain(a); - public static void VoidReturn(string s) => global::Fallout.Common.StaticHelpers.VoidReturn(s); - public static T Generic(T input) where T : class => global::Fallout.Common.StaticHelpers.Generic(input); - public static int WithOptional(int a, int b = 7, string s = "hello") => global::Fallout.Common.StaticHelpers.WithOptional(a, b, s); - public static int Sum(params int[] nums) => global::Fallout.Common.StaticHelpers.Sum(nums); - public static int TryParse(string s, out int value) => global::Fallout.Common.StaticHelpers.TryParse(s, out value); - public static string AsHex(this byte b) => global::Fallout.Common.StaticHelpers.AsHex(b); + public static int Plain(int a) => global::Fallout.Application.StaticHelpers.Plain(a); + public static void VoidReturn(string s) => global::Fallout.Application.StaticHelpers.VoidReturn(s); + public static T Generic(T input) where T : class => global::Fallout.Application.StaticHelpers.Generic(input); + public static int WithOptional(int a, int b = 7, string s = "hello") => global::Fallout.Application.StaticHelpers.WithOptional(a, b, s); + public static int Sum(params int[] nums) => global::Fallout.Application.StaticHelpers.Sum(nums); + public static int TryParse(string s, out int value) => global::Fallout.Application.StaticHelpers.TryParse(s, out value); + public static string AsHex(this byte b) => global::Fallout.Application.StaticHelpers.AsHex(b); } } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.WithNested.g.verified.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.WithNested.g.verified.cs similarity index 54% rename from tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.WithNested.g.verified.cs rename to tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.WithNested.g.verified.cs index 5dc0f3b9c..80cdebf20 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Common.WithNested.g.verified.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier#global__Fallout.Application.WithNested.g.verified.cs @@ -1,15 +1,15 @@ -//HintName: global__Fallout.Common.WithNested.g.cs +//HintName: global__Fallout.Application.WithNested.g.cs // // Generated by Fallout.SourceGenerators.TransitionShimGenerator. // Mirrors a canonical Fallout.* type as a transition shim. namespace Nuke.Common { - public partial class WithNested : global::Fallout.Common.WithNested + public partial class WithNested : global::Fallout.Application.WithNested { public WithNested() { } - public new partial class Nested : global::Fallout.Common.WithNested.Nested + public new partial class Nested : global::Fallout.Application.WithNested.Nested { public Nested() { } } diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier.verified.txt b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier.verified.txt index c37c3cded..a821db5a9 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier.verified.txt +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.EmitsShimsForEachKindAndSkipsHardTier.verified.txt @@ -1,7 +1,7 @@ { Diagnostics: [ { - Message: Type 'Fallout.Common.SealedThing' was skipped by the transition-shim generator (kind: sealed-class). Consumers relying on this via the Nuke.* shim need a hand-written bridge, a canonical-side fix (un-seal / widen ctor visibility), or to migrate via 'fallout-migrate'., + Message: Type 'Fallout.Application.SealedThing' was skipped by the transition-shim generator (kind: sealed-class). Consumers relying on this via the Nuke.* shim need a hand-written bridge, a canonical-side fix (un-seal / widen ctor visibility), or to migrate via 'fallout-migrate'., Severity: Warning, WarningLevel: 1, Descriptor: { @@ -15,7 +15,7 @@ } }, { - Message: Type 'Fallout.Common.PrivateCtorOnly' was skipped by the transition-shim generator (kind: no-accessible-ctor). Consumers relying on this via the Nuke.* shim need a hand-written bridge, a canonical-side fix (un-seal / widen ctor visibility), or to migrate via 'fallout-migrate'., + Message: Type 'Fallout.Application.PrivateCtorOnly' was skipped by the transition-shim generator (kind: no-accessible-ctor). Consumers relying on this via the Nuke.* shim need a hand-written bridge, a canonical-side fix (un-seal / widen ctor visibility), or to migrate via 'fallout-migrate'., Severity: Warning, WarningLevel: 1, Descriptor: { diff --git a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.cs b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.cs index 30d8ac333..aadbd158f 100644 --- a/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.cs +++ b/tests/Fallout.SourceGenerators.Tests/TransitionShimGeneratorTest.cs @@ -11,16 +11,19 @@ namespace Fallout.SourceGenerators.Tests; public class TransitionShimGeneratorTest { - // Each kind in the Easy tier (regular class, abstract class, interface, - // attribute, generic class, nested type) emits a representative shim. The - // Hard tier kinds (sealed class, static class, enum, delegate, class with - // no public/protected ctor) emit SHIM001 diagnostics instead. Captures both - // as a Verify snapshot. + // The generator is map-driven: it emits shims when the COMPILING assembly's name is a shim package + // (Nuke.Common / Nuke.Components in NukeNamespaceMap), mirroring public types from referenced + // Fallout.* assemblies under the package's mapped Fallout prefixes. These tests fake a referenced + // canonical Fallout.Application assembly (a Nuke.Common-mapped prefix) and compile "as" Nuke.Common. + + // Each kind in the Easy tier (regular class, abstract class, interface, attribute, generic class, + // nested type) emits a representative shim. The Hard tier kinds (sealed class, static class, enum, + // class with no public/protected ctor) emit SHIM001 diagnostics instead. Captures both as a snapshot. [Fact] public Task EmitsShimsForEachKindAndSkipsHardTier() { var canonical = CompileCanonicalAssembly(""" - namespace Fallout.Common + namespace Fallout.Application { // Easy tier public class Regular { public Regular(string a) {} public Regular() {} } @@ -54,40 +57,27 @@ public static void VoidReturn(string s) { } } """); - var shimCompilation = CSharpCompilation.Create("Nuke.TestShim", - new[] { CSharpSyntaxTree.ParseText(""" - [assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder("Fallout.Common", "Nuke.Common")] - """) }, - Basic.Reference.Assemblies.NetStandard20.References.All - .Concat(new[] { canonical }), - new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); - - var driver = CSharpGeneratorDriver.Create(new TransitionShimGenerator()); - var result = driver.RunGenerators(shimCompilation); + var result = RunForShimPackage("Nuke.Common", canonical); return Verifier.Verify(result); } - // Hand-bridge suppression: when the consuming compilation declares a type at - // the target shim FQN, the generator treats that as the authoritative bridge — - // no emission, no SHIM001 (even for canonical kinds that would otherwise be - // skipped as Hard tier). Mirrors the session-4 CI host pattern in Nuke.Common. + // Hand-bridge suppression: when the consuming compilation declares a type at the target shim FQN, the + // generator treats that as the authoritative bridge — no emission, no SHIM001 (even for kinds that + // would otherwise be skipped). Mirrors the CI host accessors hand-written in Nuke.Common. [Fact] public void SkipsCanonicalTypesAlreadyHandBridgedByConsumer() { var canonical = CompileCanonicalAssembly(""" - namespace Fallout.Common + namespace Fallout.Application { public sealed class HandBridgedSealed { public HandBridgedSealed() {} } public class HandBridgedRegular { public HandBridgedRegular() {} } } """); - var shimCompilation = CSharpCompilation.Create("Nuke.HandBridged", + var shimCompilation = CSharpCompilation.Create("Nuke.Common", new[] { - CSharpSyntaxTree.ParseText(""" - [assembly: Fallout.Migrate.Shims.ShimAllPublicTypesUnder("Fallout.Common", "Nuke.Common")] - """), CSharpSyntaxTree.ParseText(""" namespace Nuke.Common { @@ -96,46 +86,40 @@ public static class HandBridgedRegular { } } """), }, - Basic.Reference.Assemblies.NetStandard20.References.All - .Concat(new[] { canonical }), + Basic.Reference.Assemblies.NetStandard20.References.All.Concat(new[] { canonical }), new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); - var driver = CSharpGeneratorDriver.Create(new TransitionShimGenerator()); - var result = driver.RunGenerators(shimCompilation).GetRunResult(); - - // No source emitted for the hand-bridged canonical types. - result.GeneratedTrees - .Where(t => !t.FilePath.EndsWith("ShimAllPublicTypesUnderAttribute.g.cs", System.StringComparison.Ordinal)) - .Should().BeEmpty(); + var result = CSharpGeneratorDriver.Create(new TransitionShimGenerator()) + .RunGenerators(shimCompilation).GetRunResult(); - // And no SHIM001 diagnostic for either hand-bridged type — the sealed - // one would normally warn, the regular one would normally emit. + result.GeneratedTrees.Should().BeEmpty(); result.Diagnostics.Should().BeEmpty(); } [Fact] - public void EmitsNothingWhenNoMarkerAttributePresent() + public void EmitsNothingWhenAssemblyIsNotAShimPackage() { var canonical = CompileCanonicalAssembly(""" - namespace Fallout.Common + namespace Fallout.Application { public class Whatever { public Whatever() {} } } """); - var shimCompilation = CSharpCompilation.Create("Nuke.NoMarker", - new[] { CSharpSyntaxTree.ParseText("// no marker") }, - Basic.Reference.Assemblies.NetStandard20.References.All - .Concat(new[] { canonical }), - new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); + // A normal consumer assembly (not a shim package) → no map rows → no emission. + var result = RunForShimPackage("SomeConsumer.Build", canonical); + + result.GetRunResult().GeneratedTrees.Should().BeEmpty(); + } - var driver = CSharpGeneratorDriver.Create(new TransitionShimGenerator()); - var result = driver.RunGenerators(shimCompilation).GetRunResult(); + private static GeneratorDriver RunForShimPackage(string assemblyName, MetadataReference canonical) + { + var shimCompilation = CSharpCompilation.Create(assemblyName, + new[] { CSharpSyntaxTree.ParseText("// shim package — types come from referenced Fallout.* assemblies") }, + Basic.Reference.Assemblies.NetStandard20.References.All.Concat(new[] { canonical }), + new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)); - // The post-init attribute definition is the only output expected. - result.GeneratedTrees - .Where(t => !t.FilePath.EndsWith("ShimAllPublicTypesUnderAttribute.g.cs", System.StringComparison.Ordinal)) - .Should().BeEmpty(); + return CSharpGeneratorDriver.Create(new TransitionShimGenerator()).RunGenerators(shimCompilation); } private static MetadataReference CompileCanonicalAssembly(string source) diff --git a/tests/Fallout.Utilities.Tests/Fallout.Utilities.Tests.csproj b/tests/Fallout.Utilities.Tests/Fallout.Utilities.Tests.csproj deleted file mode 100644 index d5d81feb4..000000000 --- a/tests/Fallout.Utilities.Tests/Fallout.Utilities.Tests.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - net10.0 - - - - - - - - - - - diff --git a/tests/Nuke.Common.Shim.Tests/SampleConsumerBuild.cs b/tests/Nuke.Common.Shim.Tests/SampleConsumerBuild.cs index 32dcad3af..bb9be2249 100644 --- a/tests/Nuke.Common.Shim.Tests/SampleConsumerBuild.cs +++ b/tests/Nuke.Common.Shim.Tests/SampleConsumerBuild.cs @@ -18,19 +18,19 @@ namespace Nuke.Common.Shim.Tests; -// Consumer's typical Build.cs entry-point — inherits the shim's NukeBuild, -// uses the canonical Fallout types via `Fallout.Common.Target` (shim doesn't -// bridge delegates; that's `fallout-migrate`'s job). The [GlobbingOptions(...)] -// attribute resolves through the shim now that the canonical is un-sealed. -[GlobbingOptions(Fallout.Common.IO.GlobbingCaseSensitivity.CaseInsensitive)] +// Consumer's typical Build.cs entry-point — a pure NUKE-era surface: everything resolves through the +// Nuke.* shim (Solution/GitRepository/[Parameter]/CI hosts/DelegateDisposable), with no Fallout.* imports. +// Enums (GlobbingCaseSensitivity) aren't shimmed (SHIM002 — can't subclass cross-assembly), so that one +// stays a fully-qualified canonical reference — exactly what `fallout-migrate` would otherwise flip. +[GlobbingOptions(Fallout.Kernel.IO.GlobbingCaseSensitivity.CaseInsensitive)] public abstract class SampleConsumerBuild : NukeBuild, INukeBuild { [Parameter("Configuration to build")] readonly string Configuration; [Parameter] readonly bool RunTests; [Secret] readonly string NuGetApiKey; - [Solution] readonly Fallout.Solutions.Solution Solution; - [Solution("path/to/explicit.slnx")] readonly Fallout.Solutions.Solution ExplicitSolution; - [GitRepository] readonly Fallout.Common.Git.GitRepository GitRepository; + [Solution] readonly Solution Solution; + [Solution("path/to/explicit.slnx")] readonly Solution ExplicitSolution; + [GitRepository] readonly GitRepository GitRepository; // CI-host shims expose only the static `Instance` accessor. Consumers can // still chain into instance members because the returned type is canonical. diff --git a/tools/OnionRewriter/DocumentRewriter.cs b/tools/OnionRewriter/DocumentRewriter.cs new file mode 100644 index 000000000..6f28b6719 --- /dev/null +++ b/tools/OnionRewriter/DocumentRewriter.cs @@ -0,0 +1,168 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; + +static class DocumentRewriter +{ + public record struct Counts(bool Changed, int Refs, int Added, int Dropped, int NsDecls); + + // `targetNs(type)` returns the NEW namespace a moved type lands in, or null if the type does not move. + // It subsumes the old (isMoved + mapNs) pair and — crucially — is per TYPE, not per namespace, so a + // single source namespace can split across rings (e.g. Fallout.Common.Tooling vocab → Application, + // executor → Infrastructure). `isMovable(ns)` stays namespace-level (drives residual/using-drop logic). + public static (SyntaxNode Root, Counts Counts) Rewrite( + SyntaxNode root, SemanticModel model, bool isSource, + Func isMovable, Func targetNs, + HashSet surviving) + { + var cu = (CompilationUnitSyntax)root; + + // --- Semantic pre-scan: which movable-namespace types are USED here, as types? --- + var usedMovedNewNs = new HashSet(); // new namespaces we must import + var usedMovedOldNs = new HashSet(); // old namespaces a MOVED type was used from + var usedResidualMovableNs = new HashSet(); // old movable namespaces still needed (residual types) + var usedUnmappedNs = new HashSet(); // namespaces of used types that do NOT move + // descendIntoTrivia: also scan `` names inside doc comments, so a type referenced + // ONLY from a cref still gets its `using` added (else its doc link dangles → CS1574/CS1580). + foreach (var name in cu.DescendantNodes(descendIntoTrivia: true).OfType()) + { + // Type-position binds to a type symbol; an attribute/`new` binds to its constructor; an + // extension call (x.NotNull()) binds to the reduced method — take the declaring type in each + // case so attributes AND extension-method imports (often same-namespace siblings a moved file + // loses) are counted. + var sym = model.GetSymbolInfo(name).Symbol; + var t = sym as INamedTypeSymbol + ?? (sym is IMethodSymbol { MethodKind: MethodKind.Constructor } ctor ? ctor.ContainingType : null) + ?? (sym is IMethodSymbol { IsExtensionMethod: true } ext ? (ext.ReducedFrom ?? ext).ContainingType : null); + if (t is null) continue; + var ns = t.OriginalDefinition.ContainingNamespace?.ToDisplayString() ?? ""; + var newNs = targetNs(t); + if (newNs != null) { usedMovedNewNs.Add(newNs); usedMovedOldNs.Add(ns); } + else { usedUnmappedNs.Add(ns); if (isMovable(ns)) usedResidualMovableNs.Add(ns); } + } + + // Map a SOURCE namespace declaration to its target by the moved types it declares (first moved type + // wins — a declaration block is single-ring in practice, since each type sits in its own file). + // Returns null when the block declares no moved type (leave it as-is). + string? MapDecl(BaseNamespaceDeclarationSyntax n) + { + foreach (var m in n.Members) + { + var sym = m switch + { + BaseTypeDeclarationSyntax btd => model.GetDeclaredSymbol(btd) as INamedTypeSymbol, + DelegateDeclarationSyntax dd => model.GetDeclaredSymbol(dd) as INamedTypeSymbol, + _ => null, + }; + if (sym is not null && targetNs(sym) is { } target) return target; + } + return null; + } + + // The file's own namespaces (mapped) — never import those. + var ownNs = cu.DescendantNodes().OfType() + .Select(n => (isSource ? MapDecl(n) : null) ?? n.Name.ToString()) + .ToHashSet(); + + // A file in namespace `A.B.C` implicitly sees types in its ANCESTOR namespaces (`A.B`, `A`) with no + // `using`. When a source file changes namespace (`Fallout.Common.Tooling` → `Fallout.Application. + // Tooling`), it loses that implicit access to old ancestors that aren't also ancestors of the new + // namespace (here `Fallout.Common` — which holds `EnvironmentInfo`, `NotNull`, `Assert`, …). Add an + // explicit `using` for each lost ancestor it actually uses. (Generalises lesson #6 from movable + // residual siblings to non-movable ancestor namespaces.) + var lostAncestorNs = new HashSet(); + if (isSource) + { + static IEnumerable StrictAncestors(string ns) + { + for (var i = ns.LastIndexOf('.'); i > 0; i = ns.LastIndexOf('.', i - 1)) yield return ns[..i]; + } + static bool IsAncestorOrSelf(string anc, string ns) => ns == anc || ns.StartsWith(anc + "."); + foreach (var n in cu.DescendantNodes().OfType()) + { + var oldName = n.Name.ToString(); + if (MapDecl(n) is not { } newName || newName == oldName) continue; + foreach (var anc in StrictAncestors(oldName)) + if (!IsAncestorOrSelf(anc, newName) && usedUnmappedNs.Contains(anc)) lostAncestorNs.Add(anc); + } + } + + // --- Stage 1: rewrite namespace declarations (source files) + qualified refs to moved types. --- + var rewriter = new SyntaxFixer(model, isSource, targetNs, MapDecl); + cu = (CompilationUnitSyntax)rewriter.Visit(cu)!; + + // --- Stage 2: reconcile namespace `using` directives. --- + var keep = new List(); + int dropped = 0; + foreach (var u in cu.Usings) + { + var name = u.Name?.ToString(); + if (u.StaticKeyword.IsKind(SyntaxKind.None) && u.Alias is null && name != null && isMovable(name)) + { + // Drop a movable `using` when its namespace is fully evacuated (no residual declarations + // anywhere — would otherwise dangle), OR when a moved type was imported from here and no + // residual type still is. Otherwise keep (residual still used, or a pre-existing unused + // using of a surviving namespace — not our concern). + var evacuated = !surviving.Contains(name); + if (evacuated || (usedMovedOldNs.Contains(name) && !usedResidualMovableNs.Contains(name))) dropped++; + else keep.Add(u); + } + else keep.Add(u); // static/alias usings get their type names remapped in Stage 1 + } + int added = 0; + // Moved types → new-namespace usings. Plus, for SOURCE files that change namespace: residual + // movable-namespace types they used to see as same-namespace siblings now need an explicit + // `using` (e.g. ParameterService leaving Fallout.Common still uses Utilities' ArgumentParser). + // Never re-import a namespace this move fully evacuates (not in `surviving`) — it would dangle. + var toAdd = isSource ? usedMovedNewNs.Concat(usedResidualMovableNs.Where(surviving.Contains)).Concat(lostAncestorNs) : usedMovedNewNs; + foreach (var ns in toAdd.Distinct()) + { + if (ownNs.Contains(ns)) continue; + if (keep.Any(u => u.StaticKeyword.IsKind(SyntaxKind.None) && u.Alias is null && u.Name?.ToString() == ns)) continue; + keep.Add(ParseCompilationUnit($"using {ns};\n").Usings[0]); + added++; + } + cu = cu.WithUsings(List(keep)); + + var changed = added > 0 || dropped > 0 || rewriter.Refs > 0 || rewriter.NsDecls > 0; + return (cu, new Counts(changed, rewriter.Refs, added, dropped, rewriter.NsDecls)); + } + + // visitIntoStructuredTrivia: also rewrite qualified names inside doc-comment crefs (the generated tool + // wrappers embed fully-qualified `cref` parameter types like `Fallout.Common.Tools.X.XSettings`). + sealed class SyntaxFixer(SemanticModel model, bool isSource, Func targetNs, Func mapDecl) + : CSharpSyntaxRewriter(visitIntoStructuredTrivia: true) + { + public int Refs, NsDecls; + + public override SyntaxNode? VisitNamespaceDeclaration(NamespaceDeclarationSyntax node) => MapNamespace(node, base.VisitNamespaceDeclaration(node)); + public override SyntaxNode? VisitFileScopedNamespaceDeclaration(FileScopedNamespaceDeclarationSyntax node) => MapNamespace(node, base.VisitFileScopedNamespaceDeclaration(node)); + + SyntaxNode? MapNamespace(BaseNamespaceDeclarationSyntax original, SyntaxNode? visited) + { + if (!isSource || visited is not BaseNamespaceDeclarationSyntax n || mapDecl(original) is not { } target) return visited; + NsDecls++; + return n.WithName(ParseName(target).WithTriviaFrom(original.Name)); + } + + public override SyntaxNode? VisitQualifiedName(QualifiedNameSyntax node) + { + var symbol = model.GetSymbolInfo(node).Symbol as INamedTypeSymbol; + var visited = (QualifiedNameSyntax)base.VisitQualifiedName(node)!; + if (symbol != null && targetNs(symbol) is { } newNs) + { + var ns = symbol.OriginalDefinition.ContainingNamespace!.ToDisplayString(); + // Only remap when Left is EXACTLY the namespace (direct `Namespace.Type`). For a nested + // ref (`Namespace.Outer.Nested`), Left includes the outer type — leave it to the inner + // QualifiedName visit, which remaps just the namespace and preserves the outer qualifier. + if (node.Left.ToString() == ns) + { + Refs++; + return visited.WithLeft(ParseName(newNs).WithTriviaFrom(visited.Left)); + } + } + return visited; + } + } +} diff --git a/tools/OnionRewriter/OnionRewriter.csproj b/tools/OnionRewriter/OnionRewriter.csproj new file mode 100644 index 000000000..0278102a5 --- /dev/null +++ b/tools/OnionRewriter/OnionRewriter.csproj @@ -0,0 +1,22 @@ + + + + + Exe + net10.0 + enable + enable + false + false + + + + + + + + + diff --git a/tools/OnionRewriter/Program.cs b/tools/OnionRewriter/Program.cs new file mode 100644 index 000000000..700a8c787 --- /dev/null +++ b/tools/OnionRewriter/Program.cs @@ -0,0 +1,183 @@ +using System.Runtime.CompilerServices; +using Microsoft.Build.Locator; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +// OnionRewriter (semantic) — ADR-0006. Moves every type declared in a source project out of an old +// namespace prefix into a new one, and fixes references across the whole workspace by the symbol each +// reference actually BINDS to (so simple-name collisions across namespaces resolve correctly — no +// spurious usings, no CS0104). Rewrites: namespace declarations in the source project; qualified +// references to moved types; and `using` directives (add the new namespace, drop the old where no +// residual type is still used). Default = dry run (reports, mutates nothing). Pass --apply to write. + +MSBuildLocator.RegisterDefaults(); +return await Runner.RunAsync(args); + +static class Runner +{ + // A move rule: types declared in any of `SourceAssemblies` under namespace `Old` (exact or + // `.`-prefixed) move to the corresponding `New` namespace. The rule table is the multi-rule map + // ADR-0006 steps 4–5 need — edit it per onion step (steps 1–2 + 4a are landed, so their rules are + // gone). First matching rule wins for the namespace mapping. A single namespace that must split + // across rings type-by-type uses `TypeOverrides` (full-name → target ns), which beats the prefix rule. + record struct Rule(string Old, string New, string[] SourceAssemblies); + + // Step 5c — ProjectModel/Solution → ports (ADR-0006). The single Fallout.Solutions namespace is declared + // across three assemblies and splits THREE ways: + // • the Fallout-owned model + ports + [Solution] vocabulary → Fallout.Application.Solutions (the abstract + // concept, inner ring): default rule below. + // • the vendored .sln/.slnx serializer adapter (Fallout.Solution asm) → Fallout.Infrastructure.Solutions. + // • the Microsoft.Build evaluator (Fallout.ProjectModel asm) → Fallout.Infrastructure.ProjectModel. + // The two Infrastructure destinations are per-type overrides (they beat the default prefix rule). After + // phase B the model already routes solution/project I/O through the ports, so this move adds no + // Infrastructure dependency to the Application ring (gate stays green). + // Namespace residual #2 (post-project-rename tidy-up): the last surviving Fallout.Common namespace — + // Constants + LegacyEnvironment, physically in the Fallout.Build.Shared assembly — is relabelled to + // Fallout.Build.Shared (matches the assembly; the dissolved Fallout.Common is finally gone everywhere). + // Pure namespace relabel + using rewrites across ~79 consumer files; no assembly-graph change (Constants + // stays in the Build.Shared assembly). The vestigial Fallout.Common stub in SourceGenerators was deleted + // first, so the namespace is fully evacuated and dead `using Fallout.Common;` directives drop cleanly. + static readonly Rule[] Rules = + [ + new("Fallout.Common", "Fallout.Build.Shared", ["Fallout.Build.Shared"]), + ]; + + static readonly Dictionary TypeOverrides = new(); + + static bool Matches(Rule r, string ns) => ns == r.Old || ns.StartsWith(r.Old + "."); + static bool IsMovable(string ns) => Rules.Any(r => Matches(r, ns)); + // New namespace for a moved type, by full name + declaring namespace. Per-type override beats the + // prefix rule; returns null if nothing moves it. + static string? TargetNs(string fullName, string ns) + { + if (TypeOverrides.TryGetValue(fullName, out var t)) return t; + foreach (var r in Rules) + if (Matches(r, ns)) return r.New + ns[r.Old.Length..]; + return null; + } + // Does assembly `asm` declare a type under namespace `ns` that a rule moves? (Gates moved-type + // membership and namespace-decl rewriting to the rule's own source assemblies — a type with the same + // namespace in another assembly is NOT moved.) + static bool IsSourceFor(string asm, string ns) => Rules.Any(r => r.SourceAssemblies.Contains(asm) && Matches(r, ns)); + static readonly HashSet SourceAssemblies = Rules.SelectMany(r => r.SourceAssemblies).ToHashSet(); + + [MethodImpl(MethodImplOptions.NoInlining)] + public static async Task RunAsync(string[] args) + { + var apply = args.Contains("--apply"); + var repo = Directory.GetCurrentDirectory(); + + using var ws = Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace.Create(); + ws.WorkspaceFailed += (_, e) => { if (e.Diagnostic.Kind == WorkspaceDiagnosticKind.Failure) Console.Error.WriteLine(" ws: " + e.Diagnostic.Message); }; + + var csprojs = Directory.EnumerateFiles(Path.Combine(repo, "src"), "*.csproj", SearchOption.AllDirectories) + .Concat(Directory.EnumerateFiles(Path.Combine(repo, "tests"), "*.csproj", SearchOption.AllDirectories)) + .Concat(Directory.EnumerateFiles(Path.Combine(repo, "build"), "*.csproj", SearchOption.AllDirectories)) + .Where(p => !p.Contains($"{Path.DirectorySeparatorChar}obj{Path.DirectorySeparatorChar}") && !p.Contains($"{Path.DirectorySeparatorChar}bin{Path.DirectorySeparatorChar}")) + .OrderBy(p => p).ToList(); + + Console.WriteLine($"Loading {csprojs.Count} projects into the workspace…"); + foreach (var p in csprojs) + { + try { await ws.OpenProjectAsync(p); } + catch (Exception ex) { Console.Error.WriteLine($" open failed {Path.GetFileName(p)}: {ex.Message}"); } + } + var sln = ws.CurrentSolution; + Console.WriteLine($"Loaded {sln.Projects.Count()} projects."); + + // Moved types: declared in a rule's source assembly under that rule's movable namespace. Keyed by + // full name. Collected across every source assembly (a step may move types out of several). + var sourceProjects = sln.Projects.Where(p => SourceAssemblies.Contains(p.AssemblyName)).ToList(); + var missing = SourceAssemblies.Except(sourceProjects.Select(p => p.AssemblyName)).ToList(); + if (missing.Count > 0) { Console.Error.WriteLine($"FATAL: source assemblies not loaded: {string.Join(", ", missing)}"); return 1; } + var movedFullNames = new HashSet(); + foreach (var sp in sourceProjects) + { + var asm = sp.AssemblyName; + var comp = await sp.GetCompilationAsync(); + void Collect(INamespaceSymbol nsSym) + { + var ns = nsSym.ToDisplayString(); + foreach (var t in nsSym.GetTypeMembers()) if (IsSourceFor(asm, ns)) movedFullNames.Add($"{ns}.{t.Name}"); + foreach (var child in nsSym.GetNamespaceMembers()) Collect(child); + } + Collect(comp!.Assembly.GlobalNamespace); + } + Console.WriteLine($"Moved types (declared in [{string.Join(", ", SourceAssemblies)}], movable ns): {movedFullNames.Count}"); + + // New namespace for a moved type, or null if it doesn't move. Match by assembly NAME + the + // moved-type set (resolves correctly across projects — a referenced project's assembly symbol is a + // different instance per compilation, so identity comparison fails cross-project). Pinned package + // consumers (Consumer.NuGet/Nuke.Consumer) may carry a source assembly via their published + // package, but those projects are skipped entirely in the doc loop. A nested type's + // ContainingNamespace is its enclosing NAMESPACE (not its outer type), so a member keyed by + // `{ns}.{Name}` would miss the moved-set (top-level names only) and be misclassified as residual — + // adding a dangling `using` to a namespace this move evacuates. A nested type moves iff its + // OUTERMOST enclosing type moves (and to that type's target), so classify by that top-level type. + string? TargetNsForType(INamedTypeSymbol t) + { + var top = t.OriginalDefinition; + while (top.ContainingType is not null) top = top.ContainingType; + var ns = top.ContainingNamespace?.ToDisplayString() ?? ""; + var asm = top.ContainingAssembly?.Name ?? ""; + var full = $"{ns}.{top.Name}"; + return IsSourceFor(asm, ns) && movedFullNames.Contains(full) ? TargetNs(full, ns) : null; + } + + // Movable namespaces still declared OUTSIDE every source project (so they survive the move). A + // movable `using` whose namespace is NOT here is evacuated and must be dropped even if the file + // referenced its types only via inference (no explicit type name). + var sourceDirs = sourceProjects + .Where(p => p.FilePath is not null) + .Select(p => Path.GetDirectoryName(p.FilePath)! + Path.DirectorySeparatorChar) + .ToList(); + var survivingMovableNs = new HashSet(); + foreach (var f in Directory.EnumerateFiles(Path.Combine(repo, "src"), "*.cs", SearchOption.AllDirectories)) + { + if (f.Contains($"{Path.DirectorySeparatorChar}obj{Path.DirectorySeparatorChar}") || f.Contains($"{Path.DirectorySeparatorChar}bin{Path.DirectorySeparatorChar}")) continue; + if (sourceDirs.Any(d => f.StartsWith(d, StringComparison.Ordinal))) continue; + foreach (var n in CSharpSyntaxTree.ParseText(File.ReadAllText(f)).GetRoot().DescendantNodes().OfType()) + { + var ns = n.Name.ToString(); + if (IsMovable(ns)) survivingMovableNs.Add(ns); + } + } + + int filesChanged = 0, refsRewritten = 0, usingsAdded = 0, usingsDropped = 0, nsDecls = 0; + var samples = new List(); + + foreach (var project in sln.Projects) + { + var isSource = SourceAssemblies.Contains(project.AssemblyName); + foreach (var doc in project.Documents) + { + if (doc.FilePath is null || !doc.FilePath.EndsWith(".cs") || doc.FilePath.Contains($"{Path.DirectorySeparatorChar}obj{Path.DirectorySeparatorChar}")) continue; + // Package consumers (Consumer.NuGet, Nuke.Consumer) compile against the PUBLISHED package, + // which still has the old namespaces — the local rename must not touch them. (Consumer.Local + // references the local source and IS migrated.) + if (doc.FilePath.Contains("Consumer.NuGet") || doc.FilePath.Contains("Nuke.Consumer")) continue; + var model = await doc.GetSemanticModelAsync(); + var root = await doc.GetSyntaxRootAsync(); + if (model is null || root is null) continue; + + var (newRoot, c) = DocumentRewriter.Rewrite(root, model, isSource, IsMovable, TargetNsForType, survivingMovableNs); + if (c.Changed) + { + filesChanged++; refsRewritten += c.Refs; usingsAdded += c.Added; usingsDropped += c.Dropped; nsDecls += c.NsDecls; + if (samples.Count < 12) samples.Add(Path.GetRelativePath(repo, doc.FilePath)); + if (apply) await File.WriteAllTextAsync(doc.FilePath, newRoot.ToFullString()); + } + } + } + + Console.WriteLine($"\nOnionRewriter ({(apply ? "APPLY" : "dry-run")})"); + Console.WriteLine($" files changed : {filesChanged}"); + Console.WriteLine($" namespace decls : {nsDecls}"); + Console.WriteLine($" qualified refs : {refsRewritten}"); + Console.WriteLine($" usings added : {usingsAdded}"); + Console.WriteLine($" usings dropped : {usingsDropped}"); + Console.WriteLine($" sample files :\n {string.Join("\n ", samples)}"); + return 0; + } +}