Skip to content

Lift Partition into Fallout.Core (Phase 2a)#14

Open
ChrisonSimtian wants to merge 1 commit into
core/lift-lifecycle-interfacesfrom
core/lift-partition
Open

Lift Partition into Fallout.Core (Phase 2a)#14
ChrisonSimtian wants to merge 1 commit into
core/lift-lifecycle-interfacesfrom
core/lift-partition

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Owner

Phase 2a of the de-statification groundwork — the zero-risk shrink of IFalloutBuild's blocker set.

Stacked on #13. Review order: #9#10#11#12#13 → this.

What moved

Partition (CI test/build partitioning — int Part/Total, IsIn, GetCurrent<T>, nested TypeConverter; all BCL) → Fallout.Core. Namespace kept as Fallout.Common.CI → no consumer edits; already in the naming-drift baseline → no baseline change.

Configure<T> — deliberately untouched (and why)

The other IFalloutBuild blocker evaluated for 2a was Configure<T>. It can't move to Core: ConfigureExtensions keeps it in use from Fallout.Tooling, which targets netstandard2.0 and therefore cannot reference netstandard2.1 Fallout.Core. It also can't live in the ns2.0 tooling leaf (Core can't reference that). So its resolution is folded into the 2e IFalloutBuild interface-split: ReportSummary (the only member using it) can simply stay off the Core IFalloutBuild contract — no move, no breaking reshape.

This is a symptom of a broader root constraint (the ns2.0 tooling/generator/MSBuild stack vs ns2.1 Core) that's now tracked separately as a cleanup.

Verification

  • Full fallout.slnx build: 0 errors.
  • Architecture suite: 31/31 green.

🤖 Generated with Claude Code

@ChrisonSimtian ChrisonSimtian added the target/2026 Releases on the 2026 calendar line label Jun 29, 2026
@ChrisonSimtian ChrisonSimtian force-pushed the core/lift-lifecycle-interfaces branch from 695dd96 to e4df566 Compare June 29, 2026 11:30
Phase 2a of the de-statification groundwork: move the pure Partition model
(CI test/build partitioning — int Part/Total, IsIn, GetCurrent<T>, nested
TypeConverter; all BCL) down into Fallout.Core. It's one of the types that
blocks lifting IFalloutBuild (IFalloutBuild.Partition); moving it is a
zero-risk, non-breaking step.

Namespace kept as Fallout.Common.CI, so no consumer edits; already in the
architecture naming-drift baseline by full name, so the ratchet stays green
with no baseline change.

Configure<T> (the other IFalloutBuild blocker evaluated for 2a) is deliberately
left untouched: it must stay consumable by the netstandard2.0 Fallout.Tooling,
so it cannot move into netstandard2.1 Fallout.Core. Its resolution is folded
into the 2e IFalloutBuild interface-split (ReportSummary can simply stay off the
Core contract). See the netstandard2.0-constraint note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisonSimtian ChrisonSimtian force-pushed the core/lift-lifecycle-interfaces branch from e4df566 to 3e0c70e Compare June 30, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target/2026 Releases on the 2026 calendar line

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant