Files
leptos-shadcn-ui/docs/remediation/build-system-remediation.md
Peter Hanssens f6a72352c0 feat: Complete file size optimization - refactor 10 large files into 55 focused modules
- Refactored 6,741 lines across 10 large files into 55 focused modules
- All modules now under 300 lines for better LLM comprehension and maintainability
- Maintained full test coverage and functionality

Files refactored:
- packages/leptos/input/src/implementation_tests.rs (867 lines) → 6 modules
- packages/leptos/form/src/implementation_tests.rs (783 lines) → 5 modules
- packages/signal-management/src/signal_management_tests.rs (766 lines) → 7 modules
- packages/signal-management/src/simple_tests.rs (753 lines) → 7 modules
- packages/signal-management/src/lifecycle_tests.rs (648 lines) → 5 modules
- packages/leptos/input/src/tdd_tests.rs (663 lines) → 6 modules
- packages/leptos/command/src/tdd_tests.rs (607 lines) → 5 modules
- packages/signal-management/src/memory_management_tests.rs (554 lines) → 5 modules
- packages/signal-management/src/component_migration.rs (541 lines) → 4 modules
- packages/leptos/button/src/tdd_tests.rs (560 lines) → 5 modules

Added comprehensive remediation documentation in docs/remediation/
All tests passing - 132 tests for button component alone
2025-09-19 20:57:55 +10:00

4.6 KiB

🔧 Build System Remediation Plan

Priority: 🔴 CRITICAL - IMMEDIATE
Timeline: Week 1
Impact: Blocks all development and production deployment

🚨 Critical Issues Identified

1. Compilation Failures (68+ errors)

  • leptos-shadcn-command: 68 type mismatch errors
  • tailwind-rs-core: 6 compilation errors (missing types, trait bounds)
  • Multiple packages: Type conversion issues with MaybeProp<T>

2. API Inconsistencies

  • MaybeProp<String> vs &str mismatches
  • Option<Callback<T>> vs Callback<T> inconsistencies
  • Deprecated create_signal usage (should be signal())

3. Dependency Issues

  • Version inconsistencies across Leptos versions
  • Unused dependencies causing warnings
  • Workspace complexity with 80+ members

🎯 Remediation Strategy

Phase 1A: Fix Type System Issues (Days 1-2)

1.1 Standardize MaybeProp Usage

// Current problematic pattern:
<CommandInput placeholder="Search..."/>  // &str
// Expected:
<CommandInput placeholder="Search...".into()/>  // MaybeProp<String>

// Fix: Update all component props to use .into() for string literals

1.2 Fix Callback Type Inconsistencies

// Current problematic pattern:
on_value_change=Some(callback)  // Option<Callback<String>>
// Expected:
on_value_change=callback  // Callback<String>

// Fix: Remove Option wrapper where not needed

1.3 Update Deprecated APIs

// Current deprecated usage:
let (value, set_value) = create_signal(initial_value);
// Updated:
let (value, set_value) = signal(initial_value);

Phase 1B: Fix Component-Specific Issues (Days 3-4)

1.4 Command Component Fixes

  • Fix 68 type mismatch errors in packages/leptos/command/src/tdd_tests.rs
  • Standardize all prop types to use MaybeProp<T>
  • Fix callback handling patterns

1.5 Tailwind Core Fixes

  • Fix missing type definitions (ReactiveThemeManager, ReactiveColor)
  • Resolve trait bound issues
  • Fix example compilation errors

Phase 1C: Dependency Cleanup (Day 5)

1.6 Version Standardization

# Standardize on single Leptos version across all packages
leptos = "0.8.8"  # Use latest stable
leptos_router = "0.8.8"

1.7 Remove Unused Dependencies

  • Clean up unused imports and dependencies
  • Remove dead code causing warnings
  • Optimize workspace member list

📋 Implementation Checklist

Day 1: Type System Standardization

  • Create MaybeProp conversion macros for string literals
  • Update all component prop definitions
  • Fix callback type inconsistencies
  • Test compilation of core components

Day 2: API Consistency

  • Replace all create_signal with signal()
  • Standardize callback patterns
  • Fix trait bound issues
  • Update example code

Day 3: Command Component

  • Fix all 68 type mismatch errors
  • Update test cases to use correct types
  • Verify component functionality
  • Run comprehensive tests

Day 4: Tailwind Core

  • Implement missing type definitions
  • Fix example compilation
  • Resolve trait bound issues
  • Test integration

Day 5: Dependency Cleanup

  • Standardize Leptos versions
  • Remove unused dependencies
  • Clean up workspace configuration
  • Verify clean build

🧪 Testing Strategy

Build Verification

# Test commands to run after each fix:
cargo check --workspace
cargo test --workspace --no-run
cargo build --workspace

Component Testing

# Test individual components:
cargo test --package leptos-shadcn-command
cargo test --package tailwind-rs-core
cargo test --package leptos-shadcn-button  # Reference implementation

📊 Success Metrics

  • Zero compilation errors across entire workspace
  • Zero type mismatch warnings
  • Clean cargo check output
  • All tests passing for fixed components
  • Consistent API patterns across all components

🚨 Risk Mitigation

Backup Strategy

  • Create branch before starting fixes
  • Commit after each successful fix
  • Maintain working reference implementations

Rollback Plan

  • Keep working component implementations as reference
  • Document all changes made
  • Test each fix independently

Next Steps: After completing build system remediation, proceed to API Standardization Plan for comprehensive type system improvements.