Move pure build-execution domain enums into Fallout.Core#9
Open
ChrisonSimtian wants to merge 2 commits into
Open
Move pure build-execution domain enums into Fallout.Core#9ChrisonSimtian wants to merge 2 commits into
ChrisonSimtian wants to merge 2 commits into
Conversation
This was referenced Jun 29, 2026
Open
First onion-architecture tidy-up sweep: relocate the simple, pure domain enums down into the innermost Fallout.Core project, next to the existing ExecutionStatus / ITargetModel domain types. - Verbosity: whole-file move from Fallout.Build - DependencyBehavior: extracted from Fallout.Build/ITargetDefinition.cs - DefaultOutput: extracted from Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs (the DisableDefaultOutputAttribute itself stays in Fallout.Build) All three keep their existing `Fallout.Common` namespace, so no consumer code changes are required — Fallout.Build already references Fallout.Core. Also drops now-unused using directives from the touched files. Scope is deliberately limited to types that move with zero refactoring; the tool-execution contract (Output/OutputType/IProcess/IRequire*) is a follow-up PR stacked on this one. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
b2d7cc4 to
8ed4dd3
Compare
…line Brings the solution-wide architecture-fitness suite into the Core sweep so the layering this PR tidies up is now enforced by tests and can't silently drift back. Originally drafted as a standalone PR (#7), folded in here. - tests/Fallout.Architecture.Tests: assembly-scoped ArchUnitNET rules — Core/Utilities foundation purity, utility-satellite confinement, downward-only layering, "nothing depends on the Cli composition root", "Fallout.* never depends on the Nuke.* shims", Core I/O-purity, and a namespace-rooted-at-assembly naming rule. - Ratchet + KnownViolations: a one-way ratchet over a documented baseline. Known-broken areas are grandfathered; new violations fail, and fixed baseline entries must be removed — so the debt can only shrink. Lets us be deliberately less strict today while locking in every future gain. - Migrated the issue-Fallout-build#88 Core purity guard off the unmaintained NetArchTest.Rules onto ArchUnitNET; removed that package and the old Fallout.Core.Tests guard. - docs/architecture-tests.md, CHANGELOG, dependencies docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8ed4dd3 to
1d25508
Compare
ChrisonSimtian
added a commit
that referenced
this pull request
Jun 30, 2026
…roject list Pre-existing staleness, not from the namespace alignment: the snapshot predated the architecture suite (#9), the Application.Tooling leaves (#10), and the Application.Tools families (#11), so it was missing those projects and failing on the whole stack. The generator emits accessors from project/assembly names (unchanged by the namespace work), so this is a pure catch-up. Also drops the stray committed .received.cs (Verify artifact that should not be tracked). Fallout.SourceGenerators.Specs now 6/6. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First of the onion-architecture tidy-up sweeps, now also carrying the architecture-fitness suite that enforces the layering going forward (folded in from the closed #7).
Part 1 — pure domain enums into
Fallout.CoreFallout.Coreis the innermost ring (references nothing, forbids I/O). This pulls the simplest pure domain enums down next toExecutionStatus/ITargetModel.Verbosity(enum)Fallout.Build/Verbosity.cs(whole-file move)DependencyBehavior(enum)Fallout.Build/ITargetDefinition.cs(extracted)DefaultOutput(enum)Fallout.Build/Attributes/DisableDefaultOutputAttribute.cs(extracted; attribute stays in Build)All keep their
Fallout.Commonnamespace → no consumer code changes. Core staysnetstandard2.1;net10.0.Part 2 — ArchUnitNET architecture-fitness suite (was #7)
tests/Fallout.Architecture.Tests: a solution-wide, assembly-scoped ArchUnitNET suite that locks in the runtime layering so future work can't silently invert a dependency edge that still compiles.Core/Utilitiesfoundation purity, utility-satellite confinement, downward-only layering (Tooling/ProjectModel/Build.Shared),Solutionfacade, "nothing depends on theClicomposition root", "Fallout.*never depends on theNuke.*shims",CoreI/O-purity, and namespace-rooted-at-assembly naming.Ratchet+KnownViolations): known debt is grandfathered against a documented baseline; a new violation fails, and a fixed baseline entry must be removed — so debt can only shrink. This is the "be a bit less strict today, enforce going forward" mechanism.NetArchTest.Rulesonto ArchUnitNET and removed that package + the oldFallout.Core.Testsguard.Verification
fallout.slnxbuild: 0 errors.🤖 Generated with Claude Code