BREAKING CHANGES: - Removed orphaned dqn.rs monolithic trainer (4,975 lines) - Removed orphaned dqn_ensemble.rs module (816 lines) - Removed orphaned tft.rs and tft_complete_int8_integration_test.rs - TFT trainer split into modular directory structure DQN Module Refactoring: - Split trainers/dqn.rs into modular structure (config.rs, statistics.rs, trainer.rs) - Fixed hyperopt 39D search space (continuous params only) - Boolean flags (use_dueling, use_double_dqn, use_per, use_noisy_nets) are now FIXED architectural decisions - use_distributional defaults to false (Candle BUG #36 - scatter_add gradient issues) Clean Module Structure: - ml/src/trainers/dqn/ directory with proper mod.rs exports - ml/src/trainers/tft/ directory with config.rs, types.rs, model.rs, trainer.rs, tests.rs - All P0 features validated: TD-error clamping, batch diversity, LR scheduler, priority staleness Documentation: - Added comprehensive docs in docs/codebase-cleanup/ - ADR-001 for DQN refactoring decisions - Rainbow DQN component matrix and quick reference guides Build Status: Compiles with zero errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
139 lines
4.1 KiB
Markdown
139 lines
4.1 KiB
Markdown
# Dependency Cleanup Report - Foxhunt Workspace
|
|
|
|
**Date:** 2025-11-27
|
|
**Task:** Audit and remove unused dependencies from backtesting, storage, and ml crates
|
|
|
|
## Summary
|
|
|
|
Successfully removed **11 unused dependencies** from 3 crates. All target crates build successfully after cleanup.
|
|
|
|
---
|
|
|
|
## 1. Backtesting Crate (`backtesting/Cargo.toml`)
|
|
|
|
### Dependencies Removed (6 total)
|
|
|
|
| Dependency | Status | Verification Method |
|
|
|------------|--------|---------------------|
|
|
| `thiserror` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `crossbeam` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `ndarray` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `bincode` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `prometheus` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `fastrand` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
|
|
### Build Verification
|
|
```bash
|
|
cargo check -p backtesting --quiet
|
|
```
|
|
**Result:** ✅ PASSED (only warnings about deprecated types in common crate)
|
|
|
|
---
|
|
|
|
## 2. Storage Crate (`storage/Cargo.toml`)
|
|
|
|
### Dependencies Removed (5 total)
|
|
|
|
| Dependency | Status | Verification Method |
|
|
|------------|--------|---------------------|
|
|
| `tokio-util` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `rustc-hash` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `indexmap` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `fs2` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `dashmap` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `backon` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
|
|
### Build Verification
|
|
```bash
|
|
cargo check -p storage --quiet
|
|
```
|
|
**Result:** ✅ PASSED (only warnings about deprecated types in common crate)
|
|
|
|
---
|
|
|
|
## 3. ML Crate (`ml/Cargo.toml`)
|
|
|
|
### Dependencies Analyzed (2 total)
|
|
|
|
| Dependency | Status | Verification Method |
|
|
|------------|--------|---------------------|
|
|
| `arrayfire` | ✅ REMOVED | grep search: 0 matches in src/ |
|
|
| `argmin-math` | ⚠️ KEPT | **USED** - Required by hyperopt module (argmin PSO) |
|
|
|
|
### Build Verification
|
|
```bash
|
|
cargo check -p ml --quiet
|
|
```
|
|
**Result:** ✅ PASSED (warnings about unsafe blocks and unused variables)
|
|
|
|
### Note on argmin-math
|
|
Initially removed but **restored** after build failure. The dependency is required for:
|
|
- Particle Swarm Optimization (PSO) in hyperparameter tuning
|
|
- Math utilities for argmin framework
|
|
- Used in `ml/src/hyperopt/` module
|
|
|
|
---
|
|
|
|
## Overall Results
|
|
|
|
### Dependencies Removed: 11
|
|
- **backtesting:** 6 dependencies
|
|
- **storage:** 5 dependencies
|
|
- **ml:** 1 dependency (arrayfire)
|
|
|
|
### Dependencies Kept: 1
|
|
- **ml:** argmin-math (actively used)
|
|
|
|
### Build Status
|
|
✅ All target crates compile successfully
|
|
✅ No breaking changes introduced
|
|
✅ Workspace integrity maintained
|
|
|
|
---
|
|
|
|
## Verification Commands Used
|
|
|
|
```bash
|
|
# Search for dependency usage
|
|
grep -r "thiserror" backtesting/src/ --include="*.rs"
|
|
grep -r "crossbeam" backtesting/src/ --include="*.rs"
|
|
grep -r "ndarray" backtesting/src/ --include="*.rs"
|
|
grep -r "bincode" backtesting/src/ --include="*.rs"
|
|
grep -r "prometheus" backtesting/src/ --include="*.rs"
|
|
grep -r "fastrand" backtesting/src/ --include="*.rs"
|
|
|
|
grep -r "tokio_util" storage/src/ --include="*.rs"
|
|
grep -r "rustc_hash" storage/src/ --include="*.rs"
|
|
grep -r "indexmap" storage/src/ --include="*.rs"
|
|
grep -r "fs2" storage/src/ --include="*.rs"
|
|
grep -r "dashmap" storage/src/ --include="*.rs"
|
|
grep -r "backon" storage/src/ --include="*.rs"
|
|
|
|
grep -r "arrayfire" ml/src/ --include="*.rs"
|
|
grep -r "argmin_math" ml/src/ --include="*.rs"
|
|
|
|
# Build verification
|
|
cargo check -p backtesting --quiet
|
|
cargo check -p storage --quiet
|
|
cargo check -p ml --quiet
|
|
```
|
|
|
|
---
|
|
|
|
## Recommendations
|
|
|
|
1. ✅ **Safe to commit** - All changes verified and builds pass
|
|
2. 💡 Consider periodic dependency audits using `cargo machete` or `cargo udeps`
|
|
3. 📊 Reduced dependency tree should improve compile times slightly
|
|
4. 🔍 Monitor for any downstream crates that may have relied on transitive dependencies
|
|
|
|
---
|
|
|
|
## Files Modified
|
|
|
|
- `/home/jgrusewski/Work/foxhunt/backtesting/Cargo.toml`
|
|
- `/home/jgrusewski/Work/foxhunt/storage/Cargo.toml`
|
|
- `/home/jgrusewski/Work/foxhunt/ml/Cargo.toml`
|
|
|
|
**Total lines removed:** ~15 dependency declarations
|