builtbybel / builtbybel/FluentCleaner

[Feature Request] Add developer cache and build artifact cleanup modules (Package Managers & Compilers)

Open
#145 0 comments 1 reaction 0 assignees View on GitHub
enhancement feature request
Dominant language
C#
Stars
6k
Forks
212
Avg merge
3d 11h
Merged PRs (30d)
12

Description

### Summary
Propose introducing a dedicated **Developer Cleanup Module** to scan and purge package manager caches, compilation artifacts, and IDE build temporary files across major software ecosystems, drawing inspiration from macOS cleanup utilities like [mole](https://github.com/twpayne/mole).

---

### Motivation & Prior Art
On developer environments, disk consumption escalates rapidly due to distributed package caches, module stores, and incremental build intermediates.

Tools like **`mole` on macOS** have demonstrated the utility of treating developer toolchains as first-class citizens by categorizing system cleanup separately from developer artifact cleanup (e.g., Xcode `DerivedData`, Homebrew caches, CocoaPods, and language-specific managers).

Bringing a comparable, structured developer cleanup capability to Windows via FluentCleaner would address significant disk usage that standard Windows temporary directory cleanups leave untouched.

---

### Proposed Scope & Target Paths

#### 1. Global Package Manager Caches
* **Node.js / JavaScript Ecosystem:**
* npm cache: `%LocalAppData%\npm-cache`
* Yarn global cache: `%LocalAppData%\Yarn\Cache`
* pnpm global store: `%LocalAppData%\pnpm\store`
* **Rust:**
* Cargo registry/git cache: `%USERPROFILE%\.cargo\registry\cache`, `%USERPROFILE%\.cargo\git\db`
* **Python:**
* pip cache: `%LocalAppData%\pip\cache`
* uv cache: `%LocalAppData%\uv\cache`
* **.NET / C#:**
* NuGet global packages cache: `%USERPROFILE%\.nuget\packages`
* NuGet HTTP cache: `%LocalAppData%\NuGet\v3-cache`
* **Go:**
* Go build cache: `%LocalAppData%\go-build`
* Go module cache: `%USERPROFILE%\go\pkg\mod`
* **C / C++:**
* vcpkg downloads/binary cache: `%LocalAppData%\vcpkg\archives`, `%USERPROFILE%\.vcpkg\archives`
* ccache / sccache local cache directories
* **Java / JVM:**
* Gradle caches: `%USERPROFILE%\.gradle\caches`
* Maven local repository: `%USERPROFILE%\.m2\repository`

#### 2. IDE & Compiler Artifacts
* **Visual Studio / MSBuild:**
* Component model cache: `%LocalAppData%\Microsoft\VisualStudio\\ComponentModelCache`
* Temporary ASP.NET / MSBuild files
* **JetBrains IDEs:**
* System caches and indexing temp files: `%LocalAppData%\JetBrains\\caches`

---

### Key Architectural & UX Considerations (Referencing `mole`)

1. **Modular Rule Definitions:**
* Abstract each developer toolchain into an isolated, extensible rule module with defined safe-to-delete paths and validation checks (e.g., verifying if the directory is locked by a running compiler daemon).

2. **Granular Categorization & Safe Defaults:**
* Group targets under a separate **"Developer Toolchains"** tab/section in the UI.
* Restrict defaults to immutable download/tarball caches; avoid altering active workspace paths (e.g., local project `target` or `node_modules` folders) without explicit user intervention.

3. **Pre-Scan Analysis (Dry-Run):**
* Provide a breakdown of disk space utilized per toolchain prior to execution, allowing developers to inspect and select specific ecosystems to purge.

---

### Benefits
* Centralizes fragmented CLI operations (`cargo clean`, `npm cache clean --force`, `pip cache purge`, `dotnet nuget locals all --clear`) into a single, unified workflow.
* Provides substantial disk reclamation on workstations running modern polyglot development environments.

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no repository files, tests, or entry points. Start by locating the existing cleanup modules and UI organization, then determine how a Developer Toolchains section could represent the listed caches, safe-delete checks, and dry-run size breakdown; done means the requested ecosystems can be scanned and selectively purged without touching active workspaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, csharp, go, java, javascript, node.js, python, rust
Domain
desktop, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.