Skip to content

refactor: reverse Core↔Differential dependency and make all components independent #447

Description

@JusterZhu

Problem

The current project dependency structure is backwards:

  • GeneralUpdate.Differential depends on GeneralUpdate.Core — but Differential is the low-level diffing engine and Core is the higher-level orchestrator
  • ICleanStrategy/IDirtyStrategy/IBinaryDiffer are defined in Core but are Differential concepts
  • Bowl/Drivelution/Extension unnecessarily depend on Core even though they only use basic utilities (logging, file operations)

Solution

See PR #446

Key changes:

  1. Reverse Core↔Differential dependency: Core now references Differential
  2. Move orchestration types from Differential to Core (DefaultCleanStrategy, DiffPipeline, etc.)
  3. Make Differential a pure algorithm library (IBinaryDiffer + implementations only)
  4. Make Bowl/Drivelution/Extension fully independent (zero project references)
  5. Remove ICleanStrategy from Core.Differential namespace

Final dependency graph:

Differential (0 deps) ← Core (1 dep) 
Bowl (0 deps) | Drivelution (0 deps) | Extension (0 deps)

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refactorRefactor some existing code.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions