Skip to content

Move ICleanStrategy/IDirtyStrategy to Core — Core owns Differential contracts#385

Merged
JusterZhu merged 2 commits into
masterfrom
batch-13-deps-fix
May 24, 2026
Merged

Move ICleanStrategy/IDirtyStrategy to Core — Core owns Differential contracts#385
JusterZhu merged 2 commits into
masterfrom
batch-13-deps-fix

Conversation

@JusterZhu
Copy link
Copy Markdown
Collaborator

Summary

Moves the ICleanStrategy and IDirtyStrategy interface definitions into Core, so Core truly owns them. Differential keeps backward-compatible aliases that extend Core's interfaces.

Architecture

Core (owns interfaces)
├── ICleanStrategy
├── IDirtyStrategy
└── IBinaryDiffer

Differential → Core (implements Core's interfaces)
├── ICleanStrategy : Core.Differential.ICleanStrategy (alias)
├── IDirtyStrategy : Core.Differential.IDirtyStrategy (alias)
├── DefaultCleanStrategy : ICleanStrategy
├── DefaultDirtyStrategy : IDirtyStrategy
└── IBinaryDiffer : Core.Differential.IBinaryDiffer (alias)

No circular dependency. Differential references Core, not the reverse.

Changes

  • Create ICleanStrategy.cs and IDirtyStrategy.cs in Core.Differential
  • Update AbstractBootstrap to use the actual interface constraints
  • Differential interfaces become empty alias interfaces extending Core's
  • Default implementations use local (Diff) interface types for backward compat

Build

  • dotnet build src/c#/GeneralUpdate.slnx — 0 errors

Related

Addresses the remaining dependency architecture concern.

JusterZhu added 2 commits May 24, 2026 19:44
…nd Core

- Create ICleanStrategy and IDirtyStrategy in Core.Differential namespace
- Update AbstractBootstrap extension points to use the actual interface types:
  CleanStrategy<T>() where T : ICleanStrategy, new()
  DirtyStrategy<T>() where T : IDirtyStrategy, new()
- Differential interfaces become backward-compatible aliases extending Core's
- Default implementations use the local (Differential) interface types

This satisfies: Core owns the canonical interface definitions.
Differential references Core (via ProjectReference) and implements them.
No circular dependency.
Copilot AI review requested due to automatic review settings May 24, 2026 11:47
@JusterZhu JusterZhu merged commit 7e145a9 into master May 24, 2026
1 check failed
@JusterZhu JusterZhu deleted the batch-13-deps-fix branch May 24, 2026 11:47
@JusterZhu JusterZhu review requested due to automatic review settings May 24, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant