diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8f429014c..268b5bcd6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- **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.)
- **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..54a278aeb 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;
// 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 77bca43d1..86f97b668 100644
--- a/build/Build.CodeGeneration.cs
+++ b/build/Build.CodeGeneration.cs
@@ -1,11 +1,12 @@
using System;
using Fallout.Common.IO;
-using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities.Collections;
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;
partial class Build
{
diff --git a/build/Build.Contributors.cs b/build/Build.Contributors.cs
index 8a1ce85fe..23195d1db 100644
--- a/build/Build.Contributors.cs
+++ b/build/Build.Contributors.cs
@@ -4,8 +4,9 @@
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;
partial class Build
{
diff --git a/build/Build.GlobalSolution.cs b/build/Build.GlobalSolution.cs
index 83bd1d7e3..73129448d 100644
--- a/build/Build.GlobalSolution.cs
+++ b/build/Build.GlobalSolution.cs
@@ -4,13 +4,14 @@
using System.Linq;
using Fallout.Common.IO;
using Fallout.Solutions;
-using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Utilities.Text.Yaml;
using static Fallout.Application.ControlFlow;
-using static Fallout.Common.Tools.Git.GitTasks;
+using static Fallout.Application.Tools.Git.GitTasks;
using Fallout.Application;
using Fallout.Application.Git;
+using Fallout.Application.Tools.Git;
+using Fallout.Application.Tools.GitHub;
partial class Build
{
diff --git a/build/Build.Licenses.cs b/build/Build.Licenses.cs
index 2a1d2df10..1fb0f96ca 100644
--- a/build/Build.Licenses.cs
+++ b/build/Build.Licenses.cs
@@ -2,10 +2,10 @@
using System.Linq;
using System.Threading.Tasks;
using Fallout.Common.IO;
-using Fallout.Components;
using Serilog;
using static Fallout.Common.IO.HttpTasks;
using Fallout.Application;
+using Fallout.Application.Components;
partial class Build
{
diff --git a/build/Build.RunTargetInDockerTest.cs b/build/Build.RunTargetInDockerTest.cs
index 14a3e93ae..0d74c3602 100644
--- a/build/Build.RunTargetInDockerTest.cs
+++ b/build/Build.RunTargetInDockerTest.cs
@@ -1,9 +1,9 @@
using System;
using Fallout.Common;
-using Fallout.Common.Tools.Docker;
using Fallout.Common.Utilities;
using Serilog;
using Fallout.Application;
+using Fallout.Application.Tools.Docker;
partial class Build
{
diff --git a/build/Build.Stargazers.cs b/build/Build.Stargazers.cs
index 762c70e5a..a1b60f99c 100644
--- a/build/Build.Stargazers.cs
+++ b/build/Build.Stargazers.cs
@@ -1,9 +1,9 @@
using System.Linq;
using System.Threading.Tasks;
using Fallout.Common.IO;
-using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Application;
+using Fallout.Application.Tools.GitHub;
partial class Build
{
diff --git a/build/Build.cs b/build/Build.cs
index ab0221ed1..0dba77d3d 100644
--- a/build/Build.cs
+++ b/build/Build.cs
@@ -6,17 +6,18 @@
using Fallout.Common.CI.GitHubActions;
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.Application.ControlFlow;
-using static Fallout.Common.Tools.DotNet.DotNetTasks;
+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;
[DotNetVerbosityMapping]
[ShutdownDotNetAfterServerBuild]
diff --git a/docs/spikes/0003-onion-infrastructure-ring.md b/docs/spikes/0003-onion-infrastructure-ring.md
new file mode 100644
index 000000000..f80ad20d3
--- /dev/null
+++ b/docs/spikes/0003-onion-infrastructure-ring.md
@@ -0,0 +1,78 @@
+# Spike 0003 — Onion realignment: the Infrastructure ring (steps 3–5)
+
+- **Status:** In progress — step 3 done; **steps 4a (Components), 4b (Tools/Tooling), and the 4b port-inversion follow-up done** (Application ring is now free of `Fallout.Infrastructure.*`, guarded by a fitness test); step 5 (CI/IO/ProjectModel/Solution → Infrastructure + Utilities split / kernel) remains.
+- **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.
+5. **I/O adapters → Infrastructure** — CI host adapters (`Fallout.Common.CI.`) → `Fallout.Infrastructure.CI.*`; `Fallout.Common.IO` + the `Fallout.Utilities.IO/.Net/.Compression/.Globbing` I/O bits → `Fallout.Infrastructure.*`; the `ProcessTasks`/`ToolExecutor` executor side → `Fallout.Infrastructure`; `Fallout.ProjectModel`/`Fallout.Solution` → `Fallout.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).
+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 974398a6a..2ef5186a5 100644
--- a/fallout.slnx
+++ b/fallout.slnx
@@ -34,6 +34,7 @@
+
diff --git a/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs b/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs
index b1f3d9d21..ccfe5a466 100644
--- a/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs
+++ b/src/Fallout.Build/Attributes/ArgumentsFromGitCommitMessageAttribute.cs
@@ -1,12 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using Fallout.Application.CI;
using Fallout.Application.Git;
using Fallout.Application;
using Fallout.Common;
+using Fallout.Application.Tooling;
namespace Fallout.Application.Execution;
diff --git a/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs b/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs
index 1423e7bff..1f215c4c9 100644
--- a/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs
+++ b/src/Fallout.Build/Attributes/ShutdownDotNetAfterServerBuildAttribute.cs
@@ -1,7 +1,7 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
using Fallout.Application.Execution;
+using Fallout.Application.Tooling;
namespace Fallout.Application.CI;
diff --git a/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs b/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs
index 8688b79f5..2b9d302bf 100644
--- a/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs
+++ b/src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs
@@ -5,7 +5,6 @@
using Fallout.Application.Execution;
using Fallout.Application;
using Fallout.Common;
-using Fallout.Common.Tooling;
namespace Fallout.Application.Tooling;
diff --git a/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs b/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs
index 89b57d480..eded48ea1 100644
--- a/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs
+++ b/src/Fallout.Build/CICD/InvokeBuildServerConfigurationGenerationAttribute.cs
@@ -2,11 +2,11 @@
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Serilog;
using static Fallout.Application.CI.BuildServerConfigurationGeneration;
using Fallout.Application.Execution;
using Fallout.Application;
+using Fallout.Application.Tooling;
namespace Fallout.Application.CI;
@@ -44,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/Execution/BuildManager.cs b/src/Fallout.Build/Execution/BuildManager.cs
index 053bf20d3..65070afc2 100644
--- a/src/Fallout.Build/Execution/BuildManager.cs
+++ b/src/Fallout.Build/Execution/BuildManager.cs
@@ -5,7 +5,6 @@
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;
@@ -53,10 +52,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/ExecutableTarget.cs b/src/Fallout.Build/Execution/ExecutableTarget.cs
index 81d4699be..04ee81e6c 100644
--- a/src/Fallout.Build/Execution/ExecutableTarget.cs
+++ b/src/Fallout.Build/Execution/ExecutableTarget.cs
@@ -4,10 +4,10 @@
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;
// ReSharper disable MissingBaseTypeHighlighting
namespace Fallout.Application.Execution;
diff --git a/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs b/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs
index a904c0440..ef9d64923 100644
--- a/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs
+++ b/src/Fallout.Build/Execution/Extensibility/ToolInjectionAttributeBase.cs
@@ -2,7 +2,6 @@
using System.Linq;
using System.Reflection;
using Fallout.Application.ValueInjection;
-using Fallout.Common.Tooling;
namespace Fallout.Application.Tooling;
diff --git a/src/Fallout.Build/Execution/ParameterService.cs b/src/Fallout.Build/Execution/ParameterService.cs
index 95a35965b..a002bd2a1 100644
--- a/src/Fallout.Build/Execution/ParameterService.cs
+++ b/src/Fallout.Build/Execution/ParameterService.cs
@@ -3,11 +3,11 @@
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 Fallout.Common;
+using Fallout.Application.Tooling;
namespace Fallout.Application;
diff --git a/src/Fallout.Build/Execution/TargetDefinition.cs b/src/Fallout.Build/Execution/TargetDefinition.cs
index e157e0e0f..a7a62e266 100644
--- a/src/Fallout.Build/Execution/TargetDefinition.cs
+++ b/src/Fallout.Build/Execution/TargetDefinition.cs
@@ -4,7 +4,6 @@
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;
diff --git a/src/Fallout.Build/Execution/ToolRequirementService.cs b/src/Fallout.Build/Execution/ToolRequirementService.cs
index 408b87729..d53f9c5ce 100644
--- a/src/Fallout.Build/Execution/ToolRequirementService.cs
+++ b/src/Fallout.Build/Execution/ToolRequirementService.cs
@@ -3,11 +3,11 @@
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.Common;
+using Fallout.Application.Tooling;
namespace Fallout.Application.Execution;
@@ -29,8 +29,8 @@ private static void InstallNuGetPackages(IReadOnlyCollection x.PackageId).ThenBy(x => x.Version).ToList();
var groupedPackages = packages.GroupBy(x => x.PackageId, x => $"[{x.Version}]");
@@ -68,7 +68,7 @@ private static void InstallNpmPackages(IReadOnlyCollection x.PackageId).ToList();
@@ -114,6 +114,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/FalloutBuild.cs b/src/Fallout.Build/FalloutBuild.cs
index 16d90fbee..deeb137a3 100644
--- a/src/Fallout.Build/FalloutBuild.cs
+++ b/src/Fallout.Build/FalloutBuild.cs
@@ -5,7 +5,6 @@
using System.Reflection;
using Fallout.Domain.Execution;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using static Fallout.Common.Constants;
using Fallout.Application.Execution;
@@ -13,6 +12,7 @@
using Fallout.Application.CI;
using Fallout.Application.Execution.Extensions;
using Fallout.Common;
+using Fallout.Application.Tooling;
// ReSharper disable VirtualMemberNeverOverridden.Global
@@ -153,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/IFalloutBuild.cs b/src/Fallout.Build/IFalloutBuild.cs
index d2bf0d88c..7d3dadacd 100644
--- a/src/Fallout.Build/IFalloutBuild.cs
+++ b/src/Fallout.Build/IFalloutBuild.cs
@@ -3,9 +3,9 @@
using System.Linq;
using System.Linq.Expressions;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Fallout.Application.Execution;
using Fallout.Application.CI;
+using Fallout.Application.Tooling;
namespace Fallout.Application;
diff --git a/src/Fallout.Build/ITargetDefinition.cs b/src/Fallout.Build/ITargetDefinition.cs
index 2b4fcf398..ef517e820 100644
--- a/src/Fallout.Build/ITargetDefinition.cs
+++ b/src/Fallout.Build/ITargetDefinition.cs
@@ -3,7 +3,7 @@
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Application;
diff --git a/src/Fallout.Build/RequiresAttribute.cs b/src/Fallout.Build/RequiresAttribute.cs
index 2c6cbdf9d..965f7251b 100644
--- a/src/Fallout.Build/RequiresAttribute.cs
+++ b/src/Fallout.Build/RequiresAttribute.cs
@@ -1,8 +1,8 @@
using System;
using System.Linq;
using System.Reflection;
-using Fallout.Common.Tooling;
using Fallout.Common;
+using Fallout.Application.Tooling;
namespace Fallout.Application;
diff --git a/src/Fallout.Build/Telemetry/Telemetry.Properties.cs b/src/Fallout.Build/Telemetry/Telemetry.Properties.cs
index 7d6fd2734..0f4648ed1 100644
--- a/src/Fallout.Build/Telemetry/Telemetry.Properties.cs
+++ b/src/Fallout.Build/Telemetry/Telemetry.Properties.cs
@@ -4,7 +4,6 @@
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using Fallout.Common.Utilities.Collections;
using Fallout.Application;
@@ -12,6 +11,8 @@
using Fallout.Application.ValueInjection;
using Fallout.Application.CI;
using Fallout.Common;
+using Fallout.Application.Tooling;
+using Fallout.Infrastructure.Tooling;
namespace Fallout.Application.Execution;
diff --git a/src/Fallout.Build/Utilities/CredentialStore.cs b/src/Fallout.Build/Utilities/CredentialStore.cs
index f38d495de..301130514 100644
--- a/src/Fallout.Build/Utilities/CredentialStore.cs
+++ b/src/Fallout.Build/Utilities/CredentialStore.cs
@@ -1,9 +1,9 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
using Fallout.Application;
using Fallout.Common;
using Fallout.Common.Utilities;
+using Fallout.Application.Tooling;
namespace Fallout.Application.Utilities;
@@ -14,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,
@@ -30,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,
@@ -46,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,
@@ -60,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.Build/Utilities/SchemaUtility.cs
index 09449610c..a55942bfe 100644
--- a/src/Fallout.Build/Utilities/SchemaUtility.cs
+++ b/src/Fallout.Build/Utilities/SchemaUtility.cs
@@ -8,13 +8,13 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using static Fallout.Common.Constants;
using Fallout.Application;
using Fallout.Application.ValueInjection;
using Fallout.Common;
using Fallout.Application.Execution;
+using Fallout.Application.Tooling;
namespace Fallout.Application.Execution;
diff --git a/src/Fallout.Cli/Program.AddPackage.cs b/src/Fallout.Cli/Program.AddPackage.cs
index 816e859e1..2c02fb17a 100644
--- a/src/Fallout.Cli/Program.AddPackage.cs
+++ b/src/Fallout.Cli/Program.AddPackage.cs
@@ -3,10 +3,10 @@
using Fallout.Common;
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;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/Program.Cake.cs b/src/Fallout.Cli/Program.Cake.cs
index 728e8a33f..e219417f7 100644
--- a/src/Fallout.Cli/Program.Cake.cs
+++ b/src/Fallout.Cli/Program.Cake.cs
@@ -6,13 +6,13 @@
using Fallout.Common;
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;
using Fallout.Application.Execution;
using Fallout.Application;
+using Fallout.Infrastructure.Tooling;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/Program.Setup.cs b/src/Fallout.Cli/Program.Setup.cs
index 5c662cd26..d9bf028d7 100644
--- a/src/Fallout.Cli/Program.Setup.cs
+++ b/src/Fallout.Cli/Program.Setup.cs
@@ -6,16 +6,16 @@
using System.Text;
using Fallout.Common;
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.Infrastructure.Tooling.ProcessTasks;
using static Fallout.Common.Utilities.TemplateUtility;
using Fallout.Application.Execution;
using Fallout.Application;
+using Fallout.Infrastructure.Tooling;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/Program.Trigger.cs b/src/Fallout.Cli/Program.Trigger.cs
index 3b4154372..9edee1a8e 100644
--- a/src/Fallout.Cli/Program.Trigger.cs
+++ b/src/Fallout.Cli/Program.Trigger.cs
@@ -2,9 +2,9 @@
using System.Linq;
using Fallout.Common;
using Fallout.Common.IO;
-using Fallout.Common.Tools.Git;
using Fallout.Common.Utilities;
using Fallout.Application.Git;
+using Fallout.Application.Tools.Git;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/Program.Update.cs b/src/Fallout.Cli/Program.Update.cs
index 1a36e0e17..61cf87ad1 100644
--- a/src/Fallout.Cli/Program.Update.cs
+++ b/src/Fallout.Cli/Program.Update.cs
@@ -5,11 +5,11 @@
using Fallout.Common;
using Fallout.Common.IO;
using Fallout.Solutions;
-using Fallout.Common.Tools.DotNet;
using Fallout.Common.Utilities;
using static Fallout.Common.Constants;
using Fallout.Application.Execution;
using Fallout.Application;
+using Fallout.Application.Tools.DotNet;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/ProjectUpdater.cs b/src/Fallout.Cli/ProjectUpdater.cs
index 685ac323f..c379a7d53 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;
namespace Fallout.Cli;
diff --git a/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs
index f7490da4f..a5ef77c6b 100644
--- a/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs
+++ b/src/Fallout.Cli/Rewriting/Cake/ClassRewriter.cs
@@ -5,12 +5,12 @@
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;
using Fallout.Application;
+using Fallout.Application.Tools.DotNet;
+using Fallout.Application.Tools.MSBuild;
+using Fallout.Application.Tools.SignTool;
+using Fallout.Application.Tools.NuGet;
namespace Fallout.Cli.Rewriting.Cake;
diff --git a/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs
index 025299a64..b45832815 100644
--- a/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs
+++ b/src/Fallout.Cli/Rewriting/Cake/IdentifierNameRewriter.cs
@@ -5,8 +5,8 @@
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Fallout.Common;
-using Fallout.Common.Tools.DotNet;
-using Fallout.Common.Tools.MSBuild;
+using Fallout.Application.Tools.DotNet;
+using Fallout.Application.Tools.MSBuild;
namespace Fallout.Cli.Rewriting.Cake;
diff --git a/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs b/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs
index 11801fc82..84293e038 100644
--- a/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs
+++ b/src/Fallout.Cli/Rewriting/Cake/ToolInvocationRewriter.cs
@@ -5,12 +5,12 @@
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;
+using Fallout.Application.Tools.DotNet;
+using Fallout.Application.Tools.SignTool;
+using Fallout.Application.Tools.NuGet;
+using Fallout.Application.Tools.MSBuild;
namespace Fallout.Cli.Rewriting.Cake;
diff --git a/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs b/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs
index 610133e07..cd8b2ded8 100644
--- a/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs
+++ b/src/Fallout.Common/Attributes/CheckPathEnvironmentVariableAttribute.cs
@@ -1,8 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Fallout.Common.Tooling;
using Fallout.Application.Execution;
+using Fallout.Infrastructure.Tooling;
namespace Fallout.Common.Execution;
diff --git a/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs b/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs
index e28185e03..6f6f11de3 100644
--- a/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs
+++ b/src/Fallout.Common/Attributes/HandleSingleFileExecutionAttribute.cs
@@ -7,10 +7,11 @@
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.Infrastructure.Tooling;
namespace Fallout.Common.Execution;
diff --git a/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs b/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs
index 7bfa03c63..fdff354d3 100644
--- a/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs
+++ b/src/Fallout.Common/Attributes/LatestGitHubReleaseAttribute.cs
@@ -3,12 +3,13 @@
using System.Reflection;
using System.Text.RegularExpressions;
using NuGet.Versioning;
-using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Application.ValueInjection;
using Fallout.Application.Git;
+using Fallout.Application.Tools.GitHub;
+using Fallout.Common;
-namespace Fallout.Common.Tooling;
+namespace Fallout.Application.Tooling;
public class LatestGitHubReleaseAttribute : ValueInjectionAttributeBase
{
diff --git a/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs b/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs
index e9e55ba4c..ec798ff67 100644
--- a/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs
+++ b/src/Fallout.Common/Attributes/LatestMavenVersionAttribute.cs
@@ -6,7 +6,7 @@
using Fallout.Common.Utilities;
using Fallout.Application.ValueInjection;
-namespace Fallout.Common.Tooling;
+namespace Fallout.Application.Tooling;
public class LatestMavenVersionAttribute : ValueInjectionAttributeBase
{
diff --git a/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs b/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs
index 67935f34d..92ff7218d 100644
--- a/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs
+++ b/src/Fallout.Common/Attributes/LatestMyGetVersionAttribute.cs
@@ -5,7 +5,7 @@
using Fallout.Common.Utilities;
using Fallout.Application.ValueInjection;
-namespace Fallout.Common.Tooling;
+namespace Fallout.Application.Tooling;
public class LatestMyGetVersionAttribute : ValueInjectionAttributeBase
{
diff --git a/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs b/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs
index da5eca413..dfcdc7487 100644
--- a/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs
+++ b/src/Fallout.Common/Attributes/LatestNpmVersionAttribute.cs
@@ -5,7 +5,7 @@
using Fallout.Common.Utilities;
using Fallout.Application.ValueInjection;
-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.Common/Attributes/LatestNuGetVersionAttribute.cs
index fa0ad9f06..64c0ccc42 100644
--- a/src/Fallout.Common/Attributes/LatestNuGetVersionAttribute.cs
+++ b/src/Fallout.Common/Attributes/LatestNuGetVersionAttribute.cs
@@ -5,7 +5,7 @@
using Fallout.Common.Utilities;
using Fallout.Application.ValueInjection;
-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.Common/Attributes/LocalPathAttribute.cs
index 6879d4577..a027e24fb 100644
--- a/src/Fallout.Common/Attributes/LocalPathAttribute.cs
+++ b/src/Fallout.Common/Attributes/LocalPathAttribute.cs
@@ -4,8 +4,9 @@
using System.Reflection;
using Fallout.Common.IO;
using Fallout.Application.Tooling;
+using Fallout.Common;
-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.Common/Attributes/NpmPackageAttribute.cs
index 76e6a2a85..4ccb40dde 100644
--- a/src/Fallout.Common/Attributes/NpmPackageAttribute.cs
+++ b/src/Fallout.Common/Attributes/NpmPackageAttribute.cs
@@ -3,7 +3,7 @@
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.Common/Attributes/NuGetPackageAttribute.cs
index 93c7b027c..712fd5be5 100644
--- a/src/Fallout.Common/Attributes/NuGetPackageAttribute.cs
+++ b/src/Fallout.Common/Attributes/NuGetPackageAttribute.cs
@@ -2,8 +2,9 @@
using System.Linq;
using System.Reflection;
using Fallout.Application.Tooling;
+using Fallout.Common;
-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.Common/Attributes/PathVariableAttribute.cs
index 7de8915b5..5db2f6707 100644
--- a/src/Fallout.Common/Attributes/PathVariableAttribute.cs
+++ b/src/Fallout.Common/Attributes/PathVariableAttribute.cs
@@ -3,7 +3,7 @@
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.Common/CI/AppVeyor/AppVeyor.cs b/src/Fallout.Common/CI/AppVeyor/AppVeyor.cs
index 129c2679a..cf1ea83a0 100644
--- a/src/Fallout.Common/CI/AppVeyor/AppVeyor.cs
+++ b/src/Fallout.Common/CI/AppVeyor/AppVeyor.cs
@@ -2,10 +2,10 @@
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;
namespace Fallout.Common.CI.AppVeyor;
//
diff --git a/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs b/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs
index b870f7c75..3033ce36e 100644
--- a/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs
+++ b/src/Fallout.Common/CI/AppVeyor/AppVeyorImage.cs
@@ -1,6 +1,6 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.AppVeyor;
diff --git a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs b/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs
index 8744d042a..210e685e4 100644
--- a/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.cs
+++ b/src/Fallout.Common/CI/AppVeyor/Configuration/AppVeyorConfiguration.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.CI;
using Fallout.Application.Utilities;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.AppVeyor.Configuration;
diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs b/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs
index 2c5f41baf..38d6957a0 100644
--- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs
+++ b/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesAttribute.cs
@@ -4,13 +4,13 @@
using System.Linq;
using Fallout.Common.CI.AzurePipelines.Configuration;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using Fallout.Common.Utilities.Collections;
using static Fallout.Common.IO.PathConstruction;
using Fallout.Application.CI;
using Fallout.Application.Utilities;
using Fallout.Application.Execution;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.AzurePipelines;
diff --git a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs b/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs
index f03f9b282..bb42aa7df 100644
--- a/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs
+++ b/src/Fallout.Common/CI/AzurePipelines/AzurePipelinesImage.cs
@@ -1,6 +1,6 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.AzurePipelines;
diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs
index 8a78d0384..28d9b2674 100644
--- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs
+++ b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesCacheStep.cs
@@ -1,8 +1,8 @@
using System;
using System.Linq;
using Fallout.Common.Utilities;
-using Fallout.Common.Tooling;
using Fallout.Application.Utilities;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.AzurePipelines.Configuration;
diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs
index e1f19fe3b..75bb288a0 100644
--- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs
+++ b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesJob.cs
@@ -1,10 +1,10 @@
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;
namespace Fallout.Common.CI.AzurePipelines.Configuration;
diff --git a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs
index 0fee503b5..7f6c181cd 100644
--- a/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs
+++ b/src/Fallout.Common/CI/AzurePipelines/Configuration/AzurePipelinesStage.cs
@@ -1,10 +1,10 @@
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;
namespace Fallout.Common.CI.AzurePipelines.Configuration;
diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs
index f616c554b..c0e632f00 100644
--- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs
+++ b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsConfiguration.cs
@@ -1,9 +1,9 @@
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;
namespace Fallout.Common.CI.GitHubActions.Configuration;
diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs
index 500ecb15a..08d817a15 100644
--- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs
+++ b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsJob.cs
@@ -1,10 +1,10 @@
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;
namespace Fallout.Common.CI.GitHubActions.Configuration;
diff --git a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs
index 5d6319fbe..268e04b26 100644
--- a/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs
+++ b/src/Fallout.Common/CI/GitHubActions/Configuration/GitHubActionsVcsTrigger.cs
@@ -1,9 +1,9 @@
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;
namespace Fallout.Common.CI.GitHubActions.Configuration;
diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs b/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs
index 026002121..abd748dc9 100644
--- a/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs
+++ b/src/Fallout.Common/CI/GitHubActions/GitHubActions.cs
@@ -8,10 +8,10 @@
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;
namespace Fallout.Common.CI.GitHubActions;
diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs b/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs
index f503997aa..39e6c4c1c 100644
--- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs
+++ b/src/Fallout.Common/CI/GitHubActions/GitHubActionsAttribute.cs
@@ -4,12 +4,12 @@
using System.Linq;
using Fallout.Common.CI.GitHubActions.Configuration;
using Fallout.Common.IO;
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using Fallout.Common.Utilities.Collections;
using Fallout.Application.CI;
using Fallout.Application.Utilities;
using Fallout.Application.Execution;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.GitHubActions;
diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs b/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs
index f2e38554e..9e6c8011d 100644
--- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs
+++ b/src/Fallout.Common/CI/GitHubActions/GitHubActionsImage.cs
@@ -1,6 +1,6 @@
-using System;
+using System;
using System.Linq;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.GitHubActions;
diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs b/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs
index a69838d35..54c48b83b 100644
--- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs
+++ b/src/Fallout.Common/CI/GitHubActions/GitHubActionsPermissions.cs
@@ -1,6 +1,6 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.GitHubActions;
diff --git a/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs b/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs
index f96098337..b1e8c2e8b 100644
--- a/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs
+++ b/src/Fallout.Common/CI/GitHubActions/GitHubActionsTrigger.cs
@@ -1,6 +1,6 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
+using Fallout.Application.Tooling;
namespace Fallout.Common.CI.GitHubActions;
diff --git a/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs b/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs
index 1298e4cca..6aa6d2b63 100644
--- a/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs
+++ b/src/Fallout.Common/CI/TeamCity/DotNetBuildSettingsExtensions.cs
@@ -1,7 +1,7 @@
using System;
using System.Linq;
-using Fallout.Common.Tooling;
-using Fallout.Common.Tools.DotNet;
+using Fallout.Application.Tools.DotNet;
+using Fallout.Infrastructure.Tooling;
namespace Fallout.Common.CI.TeamCity;
diff --git a/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs b/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs
index ec8653064..20517ec49 100644
--- a/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs
+++ b/src/Fallout.Common/CI/TeamCity/DotNetTestSettingsExtensions.cs
@@ -1,7 +1,7 @@
-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;
namespace Fallout.Common.CI.TeamCity;
diff --git a/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs b/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs
index 0dcd951b0..1ae9ddc13 100644
--- a/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs
+++ b/src/Fallout.Common/CI/TeamCity/MSBuildSettingsExtensions.cs
@@ -1,6 +1,6 @@
using System;
using System.Linq;
-using Fallout.Common.Tools.MSBuild;
+using Fallout.Application.Tools.MSBuild;
namespace Fallout.Common.CI.TeamCity;
diff --git a/src/Fallout.Common/CI/TeamCity/TeamCity.cs b/src/Fallout.Common/CI/TeamCity/TeamCity.cs
index 058294755..8dd04939d 100644
--- a/src/Fallout.Common/CI/TeamCity/TeamCity.cs
+++ b/src/Fallout.Common/CI/TeamCity/TeamCity.cs
@@ -5,12 +5,12 @@
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;
namespace Fallout.Common.CI.TeamCity;
diff --git a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs b/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs
index c44b88ad0..71991ce69 100644
--- a/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs
+++ b/src/Fallout.Common/ChangeLog/ChangeLogTasks.cs
@@ -4,11 +4,11 @@
using System.Linq;
using NuGet.Versioning;
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;
// ReSharper disable ArgumentsStyleLiteral
namespace Fallout.Common.ChangeLog;
diff --git a/src/Fallout.Common/IO/HttpTasks.cs b/src/Fallout.Common/IO/HttpTasks.cs
index 009204f01..d99dfc879 100644
--- a/src/Fallout.Common/IO/HttpTasks.cs
+++ b/src/Fallout.Common/IO/HttpTasks.cs
@@ -1,10 +1,10 @@
-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.Application.Tooling;
namespace Fallout.Common.IO;
diff --git a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs
index 83f1e81ab..9dab14e30 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs
+++ b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVault.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Linq;
using System.Threading.Tasks;
using Azure.Identity;
@@ -6,8 +6,9 @@
using Azure.Security.KeyVault.Keys;
using Azure.Security.KeyVault.Secrets;
using Fallout.Common.Utilities;
+using Fallout.Common;
-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.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs
index 13ad2ab0a..b71f70ebf 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttribute.cs
+++ b/src/Fallout.Common/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.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs
index 63d85126e..e4eac4482 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs
+++ b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultAttributeBase.cs
@@ -3,8 +3,9 @@
using System.Reflection;
using Fallout.Application;
using Fallout.Application.ValueInjection;
+using Fallout.Common;
-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.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs
index 1e99a96ed..d6ca73888 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificate.cs
+++ b/src/Fallout.Common/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.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs
index a0b5258f3..34d676c22 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultCertificateAttribute.cs
+++ b/src/Fallout.Common/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.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs
index 03f5f869c..a1fe208f1 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs
+++ b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultConfigurationAttribute.cs
@@ -4,7 +4,7 @@
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.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs
index d0da5e314..307ec5a4a 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKey.cs
+++ b/src/Fallout.Common/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.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs
index d9e2f3cd6..5322c05a3 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultKeyAttribute.cs
+++ b/src/Fallout.Common/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.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs
index 55985ab7d..f5fcfccc5 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs
+++ b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultSecretAttribute.cs
@@ -3,7 +3,7 @@
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.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs
index b4a6bfb35..371912abd 100644
--- a/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs
+++ b/src/Fallout.Common/Tools/AzureKeyVault/AzureKeyVaultTasks.cs
@@ -1,7 +1,8 @@
-using System;
+using System;
using System.Linq;
+using Fallout.Common;
-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.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs
index 030be4657..9857b7625 100644
--- a/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs
+++ b/src/Fallout.Common/Tools/AzureSignTool/AzureSignTool.Generated.cs
@@ -1,4 +1,3 @@
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -10,8 +9,9 @@
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]
@@ -26,13 +26,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
For more details, visit the official website.
[ExcludeFromCodeCoverage]
@@ -25,13 +25,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
@@ -79,7 +79,7 @@ public partial class CodecovSettings : ToolOptions
}
#endregion
#region CodecovSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class CodecovSettingsExtensions
{
diff --git a/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs b/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs
index 8cbcccf33..db864cfc6 100644
--- a/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs
+++ b/src/Fallout.Common/Tools/Codecov/CodecovTasks.cs
@@ -1,13 +1,14 @@
-using System;
-using Fallout.Common.Tooling;
+using System;
+using Fallout.Application.Tooling;
+using Fallout.Common;
-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.Common/Tools/CorFlags/CorFlags.Generated.cs
index 7ccb947da..c4fdbb969 100644
--- a/src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs
+++ b/src/Fallout.Common/Tools/CorFlags/CorFlags.Generated.cs
@@ -1,7 +1,6 @@
// 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.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -12,8 +11,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]
@@ -27,13 +27,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
@@ -57,7 +57,7 @@ public partial class CorFlagsSettings : ToolOptions
}
#endregion
#region CorFlagsSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class CorFlagsSettingsExtensions
{
diff --git a/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs b/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs
index cbf870749..6ec2148f7 100644
--- a/src/Fallout.Common/Tools/CorFlags/CorFlagsSettings.cs
+++ b/src/Fallout.Common/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.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
index 9ab051b0b..8164e97d0 100644
--- a/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
+++ b/src/Fallout.Common/Tools/CoverallsNet/CoverallsNet.Generated.cs
@@ -1,4 +1,3 @@
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -10,8 +9,9 @@
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]
@@ -26,13 +26,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
@@ -78,7 +78,7 @@ public partial class CoverallsNetSettings : ToolOptions
}
#endregion
#region CoverallsNetSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class CoverallsNetSettingsExtensions
{
diff --git a/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs b/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs
index 78801f476..34aa9fa61 100644
--- a/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs
+++ b/src/Fallout.Common/Tools/Coverlet/Coverlet.Generated.cs
@@ -1,8 +1,6 @@
// 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.DotNet;
using Fallout.Common.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -13,8 +11,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]
@@ -29,13 +29,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
@@ -67,7 +67,7 @@ public partial class CoverletSettings : ToolOptions
}
#endregion
#region CoverletSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class CoverletSettingsExtensions
{
diff --git a/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs b/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs
index d37e3dfb3..0acd04d30 100644
--- a/src/Fallout.Common/Tools/Coverlet/CoverletSettingsExtensions.cs
+++ b/src/Fallout.Common/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.Common/Tools/Discord/Discord.Generated.cs
index 2277892ce..d1efe0e77 100644
--- a/src/Fallout.Common/Tools/Discord/Discord.Generated.cs
+++ b/src/Fallout.Common/Tools/Discord/Discord.Generated.cs
@@ -1,7 +1,6 @@
// 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.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -12,8 +11,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/DiscordTasks.cs b/src/Fallout.Common/Tools/Discord/DiscordTasks.cs
index 398d2cc39..b1b3c03b0 100644
--- a/src/Fallout.Common/Tools/Discord/DiscordTasks.cs
+++ b/src/Fallout.Common/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;
-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.Common/Tools/DocFX/DocFX.Generated.cs
index 114506878..d129d413e 100644
--- a/src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs
+++ b/src/Fallout.Common/Tools/DocFX/DocFX.Generated.cs
@@ -1,7 +1,6 @@
// 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.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -12,8 +11,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]
@@ -28,76 +28,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:
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
@@ -193,7 +193,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
@@ -209,7 +209,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
@@ -223,7 +223,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
@@ -233,7 +233,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
@@ -255,7 +255,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
@@ -287,7 +287,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
@@ -327,7 +327,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
@@ -447,7 +447,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
@@ -463,7 +463,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
@@ -479,7 +479,7 @@ public partial class DocFXTemplateSettings : ToolOptions
}
#endregion
#region DocFXBuildSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXBuildSettingsExtensions
{
@@ -1090,7 +1090,7 @@ public static partial class DocFXBuildSettingsExtensions
}
#endregion
#region DocFXDependencySettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXDependencySettingsExtensions
{
@@ -1138,7 +1138,7 @@ public static partial class DocFXDependencySettingsExtensions
}
#endregion
#region DocFXDownloadSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXDownloadSettingsExtensions
{
@@ -1178,7 +1178,7 @@ public static partial class DocFXDownloadSettingsExtensions
}
#endregion
#region DocFXHelpSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXHelpSettingsExtensions
{
@@ -1193,7 +1193,7 @@ public static partial class DocFXHelpSettingsExtensions
}
#endregion
#region DocFXInitSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXInitSettingsExtensions
{
@@ -1292,7 +1292,7 @@ public static partial class DocFXInitSettingsExtensions
}
#endregion
#region DocFXMergeSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXMergeSettingsExtensions
{
@@ -1443,7 +1443,7 @@ public static partial class DocFXMergeSettingsExtensions
}
#endregion
#region DocFXMetadataSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXMetadataSettingsExtensions
{
@@ -1665,7 +1665,7 @@ public static partial class DocFXMetadataSettingsExtensions
}
#endregion
#region DocFXPdfSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXPdfSettingsExtensions
{
@@ -2423,7 +2423,7 @@ public static partial class DocFXPdfSettingsExtensions
}
#endregion
#region DocFXServeSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXServeSettingsExtensions
{
@@ -2471,7 +2471,7 @@ public static partial class DocFXServeSettingsExtensions
}
#endregion
#region DocFXTemplateSettingsExtensions
-///
+///
[ExcludeFromCodeCoverage]
public static partial class DocFXTemplateSettingsExtensions
{
diff --git a/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs b/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs
index f47be9417..3869cafdc 100644
--- a/src/Fallout.Common/Tools/DocFX/DocFXTasks.cs
+++ b/src/Fallout.Common/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.Common/Tools/Docker/Docker.Generated.cs
index 964545ea8..85ae6e4dd 100644
--- a/src/Fallout.Common/Tools/Docker/Docker.Generated.cs
+++ b/src/Fallout.Common/Tools/Docker/Docker.Generated.cs
@@ -1,4 +1,3 @@
-using Fallout.Common.Tooling;
using Fallout.Common.Utilities.Collections;
using System;
using System.Collections.Generic;
@@ -10,8 +9,9 @@
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]
@@ -25,1315 +25,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);
///