Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- **Onion layering — namespace realignment begun; `Fallout.Core` → `Fallout.Domain`** ([ADR-0006](docs/adr/0006-onion-layering-and-namespace-realignment.md)). First ring of a project-wide realignment to explicit onion layers (`Fallout.Domain` / `Fallout.Application` / `Fallout.Infrastructure`, `Fallout.Cli` composition root) with `namespace = project = layer`, dissolving the `Fallout.Common.*` catch-all. This entry covers **step 1 (the Domain ring)**; the Application/Infrastructure/tooling-port rings land on `experimental` as separate PRs (any that miss the 2026 cut roll to 2027).
- **Namespaces**: `Fallout.Core.Planning` → `Fallout.Domain.Planning`; `ITargetModel` and `ExecutionStatus` move out of `Fallout.Common.Execution` → `Fallout.Domain.Execution`. **Package/assembly**: `Fallout.Core` → `Fallout.Domain`. Replace the corresponding `using` directives and any `PackageReference`/`ProjectReference`.
- **Migration / shim**: the `Nuke.*` transition shims silently stop re-exporting the two moved types (the generator only mirrors the `Fallout.Common.*` prefix). A fresh migration/shim strategy is designed once the realignment completes (ADR-0006 defers it deliberately); native `Fallout.*` consumers rewrite the two `using`s above.
- **Step 2 (the Application ring)**: the core API `Fallout.Build` declared under `Fallout.Common.*` — `FalloutBuild`, `Target`, `[Parameter]` & attributes, `Host`, the execution engine, value injection, and the CI ports — moves to **`Fallout.Application.*`**. Native consumers rewrite `using Fallout.Common;` → `using Fallout.Application;` (and the `Fallout.Common.Execution`/`.CI`/`.ValueInjection` sub-namespaces likewise). Performed by a semantic rewriter (`tools/OnionRewriter`). The `Nuke.*` shim surface that mirrored these (`Nuke.Common.Target`, `…Parameter`, …) lapses for now — `Nuke.Consumer` and `Nuke.Common.Shim.Tests` are temporarily out of the solution until the migration phase. The `Fallout.Build` **assembly/project** is renamed to `Fallout.Application` in a later mechanical step (namespaces are already migrated).
- **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.
Expand Down
4 changes: 2 additions & 2 deletions build/Build.CodeGeneration.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
using System;
using Fallout.Common;
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 Fallout.Application;

partial class Build
{
Expand Down
1 change: 1 addition & 0 deletions build/Build.Contributors.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Fallout.Common.Utilities;
using Fallout.Common.Utilities.Collections;
using static Fallout.Common.Tools.Git.GitTasks;
using Fallout.Application;

partial class Build
{
Expand Down
6 changes: 3 additions & 3 deletions build/Build.GlobalSolution.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Fallout.Common;
using Fallout.Common.Git;
using Fallout.Common.IO;
using Fallout.Solutions;
using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Utilities.Text.Yaml;
using static Fallout.Common.ControlFlow;
using static Fallout.Application.ControlFlow;
using static Fallout.Common.Tools.Git.GitTasks;
using Fallout.Application;
using Fallout.Application.Git;

partial class Build
{
Expand Down
2 changes: 1 addition & 1 deletion build/Build.Licenses.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
using Fallout.Common;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Fallout.Common.IO;
using Fallout.Components;
using Serilog;
using static Fallout.Common.IO.HttpTasks;
using Fallout.Application;

partial class Build
{
Expand Down
1 change: 1 addition & 0 deletions build/Build.PublicApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Fallout.Common.IO;
using Fallout.Common.Utilities;
using Fallout.Common.Utilities.Collections;
using Fallout.Application;

partial class Build
{
Expand Down
1 change: 1 addition & 0 deletions build/Build.RunTargetInDockerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Fallout.Common.Tools.Docker;
using Fallout.Common.Utilities;
using Serilog;
using Fallout.Application;

partial class Build
{
Expand Down
4 changes: 2 additions & 2 deletions build/Build.Stargazers.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using System.Linq;
using System.Linq;
using System.Threading.Tasks;
using Fallout.Common;
using Fallout.Common.IO;
using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Application;

partial class Build
{
Expand Down
6 changes: 3 additions & 3 deletions build/Build.Terminal.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System;
using System.Linq;
using Fallout.Common;
using Fallout.Common.Execution;
using Fallout.Application.Execution;
using Fallout.Application;

[DisableDefaultOutput<Terminal>(
DefaultOutput.Logo,
Expand Down
9 changes: 5 additions & 4 deletions build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@
using System.Linq;
using NuGet.Packaging;
using Fallout.Common;
using Fallout.Common.CI;
using Fallout.Common.CI.GitHubActions;
using Fallout.Common.Execution;
using Fallout.Common.Git;
using Fallout.Common.IO;
using Fallout.Solutions;
using Fallout.Common.Tooling;
using Fallout.Common.Tools.DotNet;
using Fallout.Common.Tools.GitHub;
using Fallout.Common.Utilities;
using Fallout.Components;
using static Fallout.Common.ControlFlow;
using static Fallout.Application.ControlFlow;
using static Fallout.Common.Tools.DotNet.DotNetTasks;
using Fallout.Application;
using Fallout.Application.CI;
using Fallout.Application.Git;
using Fallout.Application.Execution;

[DotNetVerbosityMapping]
[ShutdownDotNetAfterServerBuild]
Expand Down
6 changes: 4 additions & 2 deletions fallout.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,15 @@
<Project Path="tests\Fallout.Cli.Tests\Fallout.Cli.Tests.csproj" />
<Project Path="tests\Fallout.Migrate.Tests\Fallout.Migrate.Tests.csproj" />
<Project Path="tests\Fallout.Migrate.Analyzers.Tests\Fallout.Migrate.Analyzers.Tests.csproj" />
<Project Path="tests\Nuke.Common.Shim.Tests\Nuke.Common.Shim.Tests.csproj" />
<!-- Temporarily excluded during the onion realignment (ADR-0006): these exercise the Nuke.* shim
surface, which lapses while the rings land. Re-added when the migration/shim strategy is
redesigned for the final shape. -->
<Project Path="tests\Nuke.Components.Shim.Tests\Nuke.Components.Shim.Tests.csproj" />
<Project Path="tests\Fallout.ProjectModel.Tests\Fallout.ProjectModel.Tests.csproj" />
<Project Path="tests\Fallout.Solution.Tests\Fallout.Solution.Tests.csproj" />
<Project Path="tests\Fallout.SourceGenerators.Tests\Fallout.SourceGenerators.Tests.csproj" />
<Project Path="tests\Benchmarks\Fallout.Persistence.Solution.Benchmarks\Fallout.Persistence.Solution.Benchmarks.csproj" />
<Project Path="tests\Consumers\Nuke.Consumer\Nuke.Consumer.csproj" />
<!-- Nuke.Consumer excluded during the onion realignment (ADR-0006) — consumes the lapsing Nuke.* shim. -->
<Project Path="tests\Consumers\Fallout.Consumer.Local\Fallout.Consumer.Local.csproj" />
<Project Path="tests\Consumers\Fallout.Consumer.NuGet\Fallout.Consumer.NuGet.csproj" />
<Project Path="tests\Fallout.Tooling.Tests\Fallout.Tooling.Tests.csproj" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.CI;
using Fallout.Common.Git;
using Fallout.Common.Tooling;
using Fallout.Common.Utilities;
using Fallout.Application.CI;
using Fallout.Application.Git;
using Fallout.Application;
using Fallout.Common;

namespace Fallout.Common.Execution;
namespace Fallout.Application.Execution;

public class ArgumentsFromGitCommitMessageAttribute : BuildExtensionAttributeBase, IOnBuildCreated
{
Expand Down
4 changes: 2 additions & 2 deletions src/Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System;
using System.Linq;

namespace Fallout.Common;
namespace Fallout.Application;

[AttributeUsage(AttributeTargets.Class)]
public class DisableDefaultOutputAttribute : Attribute
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using System;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.Tooling;
using Fallout.Application.Execution;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

/// <summary>
/// See <a href="https://github.com/dotnet/cli/issues/11424">dotnet/cli#11424</a>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System.Linq;
using Fallout.Common.Utilities.Collections;

namespace Fallout.Common.Execution;
namespace Fallout.Application.Execution;

public class UnsetVisualStudioEnvironmentVariablesAttribute : BuildExtensionAttributeBase, IOnBuildCreated
{
Expand Down
7 changes: 5 additions & 2 deletions src/Fallout.Build/Attributes/VerbosityMappingAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.Utilities.Collections;
using Fallout.Application.Execution;
using Fallout.Application;
using Fallout.Common;
using Fallout.Common.Tooling;

namespace Fallout.Common.Tooling;
namespace Fallout.Application.Tooling;

public class VerbosityMappingAttribute : BuildExtensionAttributeBase, IOnBuildInitialized
{
Expand Down
3 changes: 2 additions & 1 deletion src/Fallout.Build/CICD/BuildServerConfigurationGeneration.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using System;
using System.Linq;
using Fallout.Application;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public static class BuildServerConfigurationGeneration
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Fallout.Common.Execution;
using Fallout.Common.Utilities.Collections;
using Fallout.Application.Execution;
using Fallout.Application;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public class BuildServerConfigurationGenerationAttributeBase : BuildExtensionAttributeBase
{
Expand Down
8 changes: 5 additions & 3 deletions src/Fallout.Build/CICD/CIAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System;
using System;
using System.Linq;
using System.Reflection;
using Fallout.Common.Utilities;
using Fallout.Common.ValueInjection;
using Fallout.Application.ValueInjection;
using Fallout.Application;
using Fallout.Common;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Property)]
public class CIAttribute : ValueInjectionAttributeBase
Expand Down
5 changes: 3 additions & 2 deletions src/Fallout.Build/CICD/ChainedConfigurationAttributeBase.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.Utilities.Collections;
using Fallout.Application.Execution;
using Fallout.Common;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public abstract class ChainedConfigurationAttributeBase : ConfigurationAttributeBase
{
Expand Down
8 changes: 5 additions & 3 deletions src/Fallout.Build/CICD/ConfigurationAttributeBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.IO;
using Fallout.Common.Utilities;
using static Fallout.Common.CI.BuildServerConfigurationGeneration;
using static Fallout.Application.CI.BuildServerConfigurationGeneration;
using Fallout.Application;
using Fallout.Application.Utilities;
using Fallout.Application.Execution;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

[AttributeUsage(AttributeTargets.Class)]
public abstract class ConfigurationAttributeBase : Attribute, IConfigurationGenerator
Expand Down
4 changes: 2 additions & 2 deletions src/Fallout.Build/CICD/ConfigurationEntity.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using System;
using System.Linq;
using Fallout.Common.Utilities;
using Fallout.Application.Utilities;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public abstract class ConfigurationEntity
{
Expand Down
3 changes: 2 additions & 1 deletion src/Fallout.Build/CICD/CustomFileWriter.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using System;
using System.IO;
using System.Linq;
using Fallout.Common.Utilities;

namespace Fallout.Common.Utilities;
namespace Fallout.Application.Utilities;

public class CustomFileWriter
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.Utilities.Collections;
using static Fallout.Common.CI.BuildServerConfigurationGeneration;
using static Fallout.Application.CI.BuildServerConfigurationGeneration;
using Fallout.Application.Execution;
using Fallout.Application;
using Fallout.Common;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public class GenerateBuildServerConfigurationsAttribute
: BuildServerConfigurationGenerationAttributeBase, IOnBuildCreated
Expand Down
4 changes: 2 additions & 2 deletions src/Fallout.Build/CICD/IBuildServer.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

namespace Fallout.Common.CI;

namespace Fallout.Application.CI;

public interface IBuildServer
{
Expand Down
4 changes: 2 additions & 2 deletions src/Fallout.Build/CICD/IConfigurationGenerator.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.IO;
using Fallout.Application.Execution;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public interface IConfigurationGenerator
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Fallout.Common.Execution;
using Fallout.Common.IO;
using Fallout.Common.Tooling;
using Serilog;
using static Fallout.Common.CI.BuildServerConfigurationGeneration;
using static Fallout.Application.CI.BuildServerConfigurationGeneration;
using Fallout.Application.Execution;
using Fallout.Application;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public class InvokeBuildServerConfigurationGenerationAttribute
: BuildServerConfigurationGenerationAttributeBase, IOnBuildCreated
Expand Down
4 changes: 2 additions & 2 deletions src/Fallout.Build/CICD/NoConvertAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using System;
using System.Linq;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

[AttributeUsage(AttributeTargets.Property)]
public class NoConvertAttribute : Attribute
Expand Down
2 changes: 1 addition & 1 deletion src/Fallout.Build/CICD/Partition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using System.Globalization;
using System.Linq;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

[TypeConverter(typeof(TypeConverter))]
public class Partition
Expand Down
3 changes: 2 additions & 1 deletion src/Fallout.Build/CICD/PartitionAttribute.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using System;
using System.Linq;
using System.Reflection;
using Fallout.Application;

namespace Fallout.Common.CI;
namespace Fallout.Application.CI;

public class PartitionAttribute : ParameterAttribute
{
Expand Down
Loading