Skip to content

Implement DevTools cleanup module #36

@Sstark97

Description

@Sstark97

Phase 4: Cleanup Modules

Implement DevTools orchestrator module with sub-cleaners for Maven, Gradle, Node, Python, SDKMAN.

Main Module

In Infrastructure/Modules/DevTools/DevToolsModule.cs

  • Implements ICleanupModule
  • Orchestrates all sub-cleaners
  • Supports nuclear mode

Sub-Cleaners to Implement

MavenCleaner

In Infrastructure/Modules/DevTools/MavenCleaner.cs

  • Standard: Clear dependency cache - clear_maven_dependency_cache
  • Nuclear: Delete entire repository (~/.m2/repository) - nuclear_maven_clean

GradleCleaner

In Infrastructure/Modules/DevTools/GradleCleaner.cs

  • Standard: Remove outdated caches - remove_outdated_gradle_caches
  • Standard: Clear cache completely - clear_gradle_cache_completely
  • Nuclear: Delete caches + wrapper - nuclear_gradle_clean

NodeCleaner

In Infrastructure/Modules/DevTools/NodeCleaner.cs

  • Standard: Clear npm/yarn/pnpm caches - clear_node_package_caches
  • Standard: Clear nvm cache - clear_nvm_cache
  • Nuclear: Delete entire npm directory - nuclear_node_clean

PythonCleaner

In Infrastructure/Modules/DevTools/PythonCleaner.cs

  • Clear pip caches
  • Clear poetry caches
  • From bash src/modules/package-managers/python.sh

SdkmanCleaner

In Infrastructure/Modules/DevTools/SdkmanCleaner.cs

  • Clear SDKMAN tmp directory
  • From bash src/modules/package-managers/sdkman.sh

Features

AnalyzeAsync

  • Run analyze on all sub-cleaners
  • Aggregate CleanupTarget lists
  • Show nuclear mode warning if applicable

CleanAsync (Standard Mode)

  • Run cleanup on all sub-cleaners
  • Aggregate results

CleanAsync (Nuclear Mode)

From bash src/modules/devtools.sh nuclear_devtools_clean:

  • Show what will be deleted
  • Require "yes" confirmation (ConfirmationLevel.Nuclear)
  • Delete ALL caches across all tools
  • NEVER auto-confirm, even with --force

Properties

  • Name: ModuleName.DevTools
  • Description: "Clean dev tools (Maven, Gradle, Node, Python, SDKMAN)"
  • IsDestructive: true (nuclear mode)
  • IsAvailableOnPlatform: true for all (SDKMAN skip on Windows)

Tests to Port

All in tests/Infrastructure/Modules/DevTools/DevToolsModuleTests.cs

Port tests from bash tests/unit/devtools_test.sh:

  • Each sub-cleaner independently
  • Nuclear mode orchestration
  • Confirmation requirements
  • Size estimation

Definition of Done

  • All 5 sub-cleaners implemented
  • DevToolsModule orchestrates correctly
  • Nuclear mode with proper confirmation
  • All bash tests ported
  • ~5-15GB typical recovery

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions