Files
leptos-shadcn-ui/docs/remediation/RUST_VERSION_UPDATE_PLAN.md
Peter Hanssens ec459d142c 🔧 Complete refactoring implementation for v0.9.0
- All 9 components fully refactored with modular architecture
- 45+ test modules created and organized
- File size compliance achieved (99% reduction)
- Enterprise-grade code quality implemented
- All compilation issues resolved

Ready for v0.9.0 release publication!
2025-09-22 13:06:22 +10:00

7.5 KiB

🦀 Rust Version Update Plan

Priority 3: Update to Latest Rust & Dependencies

📊 Current Version Analysis

Current State (September 20, 2025)

  • Rust Version: 1.89.0 (August 4, 2025)
  • Leptos: 0.8.9 (workspace dependency)
  • Edition: 2024 (latest)
  • Target Architecture: wasm32-unknown-unknown

Target State

  • Rust Version: 1.90.0+ (September 2025)
  • Leptos: 0.8.10+ (if available)
  • Dependencies: Latest stable versions
  • Security: All dependencies audited

🔍 Dependency Analysis

Core Dependencies Status

Dependency Current Version Latest Version Status Action Required
leptos 0.8.9 0.8.10+ ⚠️ Check Update if available
leptos-router 0.8.9 0.8.10+ ⚠️ Check Update if available
wasm-bindgen 0.2 0.2.95+ ⚠️ Check Update to latest
web-sys 0.3 0.3.70+ ⚠️ Check Update to latest
serde 1.0 1.0.200+ ⚠️ Check Update to latest
tokio 1.47.1 1.50+ ⚠️ Check Update to latest
clap 4.5.46 4.5.50+ ⚠️ Check Update to latest

WASM-Specific Dependencies

Dependency Current Version Latest Version Status Action Required
getrandom 0.2 0.2.15+ ⚠️ Check Update to latest
uuid 1.0 1.10+ ⚠️ Check Update to latest
console_error_panic_hook 0.1 0.1.7+ ⚠️ Check Update to latest
wasm-bindgen-test 0.3 0.3.40+ ⚠️ Check Update to latest

🚀 Update Strategy

Phase 1: Rust Version Update (Week 1)

1. Update Rust Toolchain

# Check current version
rustc --version

# Update to latest stable
rustup update stable

# Verify update
rustc --version

2. Update rust-toolchain.toml

# Create/update rust-toolchain.toml
[toolchain]
channel = "stable"
components = ["rustfmt", "clippy", "rust-src"]
targets = ["wasm32-unknown-unknown"]

3. Verify WASM Compatibility

# Test WASM compilation
cargo check --target wasm32-unknown-unknown

# Test WASM demo
cd wasm-demo
cargo build --target wasm32-unknown-unknown

Phase 2: Dependency Updates (Week 2)

1. Update Workspace Dependencies

# Cargo.toml workspace dependencies
[workspace.dependencies]
leptos = "0.8.10"  # Update if available
leptos-router = "0.8.10"  # Update if available
getrandom = { version = "0.2.15", features = ["js"] }
serde = { version = "1.0.200", features = ["derive"] }
serde_json = "1.0.200"
wasm-bindgen = "0.2.95"
web-sys = "0.3.70"
js-sys = "0.3.70"
wasm-bindgen-test = "0.3.40"
console_error_panic_hook = "0.1.7"
uuid = { version = "1.10", features = ["v4", "js"] }
tokio = { version = "1.50", features = ["full"] }
clap = { version = "4.5.50", features = ["derive"] }

2. Update Individual Package Dependencies

# Update all packages
cargo update

# Check for outdated dependencies
cargo outdated

# Audit for security vulnerabilities
cargo audit

3. Test Compatibility

# Test all packages
cargo test --workspace

# Test WASM packages specifically
cargo test --workspace --target wasm32-unknown-unknown

# Test published packages
cargo test -p leptos-shadcn-ui-wasm

Phase 3: Security & Performance (Week 3)

1. Security Audit

# Run security audit
cargo audit

# Check for known vulnerabilities
cargo audit --deny warnings

# Update vulnerable dependencies
cargo update

2. Performance Testing

# Run performance benchmarks
cargo bench

# Test bundle sizes
cd wasm-demo
cargo build --release --target wasm32-unknown-unknown
du -h pkg/*.wasm

3. Compatibility Testing

# Test with different Rust versions
rustup toolchain install beta
cargo +beta test --workspace

# Test with different targets
cargo test --workspace --target x86_64-unknown-linux-gnu
cargo test --workspace --target wasm32-unknown-unknown

🛠️ Implementation Plan

Week 1: Rust Version Update

  • Update Rust toolchain to latest stable
  • Create/update rust-toolchain.toml
  • Verify WASM compatibility
  • Test all packages with new Rust version

Week 2: Dependency Updates

  • Update workspace dependencies
  • Update individual package dependencies
  • Run cargo update and cargo outdated
  • Test compatibility across all packages

Week 3: Security & Performance

  • Run security audit
  • Update vulnerable dependencies
  • Run performance benchmarks
  • Test bundle sizes and performance

Week 4: Validation & Documentation

  • Validate all tests pass
  • Update documentation
  • Create update guidelines
  • Document any breaking changes

📈 Success Metrics

Version Targets

  • Rust 1.90.0+ (latest stable)
  • All dependencies updated to latest stable
  • Zero security vulnerabilities (cargo audit clean)
  • All tests passing with new versions

Performance Metrics

  • Bundle size maintained or improved
  • Compilation time maintained or improved
  • Test execution time maintained or improved
  • WASM compatibility maintained

Quality Metrics

  • No breaking changes in public APIs
  • Backward compatibility maintained
  • Documentation updated for new versions
  • Team training completed on new versions

🔧 Update Tools & Commands

Version Checking

# Check Rust version
rustc --version

# Check dependency versions
cargo outdated

# Check for security issues
cargo audit

Update Commands

# Update Rust
rustup update stable

# Update dependencies
cargo update

# Update specific dependency
cargo update -p dependency-name

Testing Commands

# Test all packages
cargo test --workspace

# Test WASM packages
cargo test --workspace --target wasm32-unknown-unknown

# Test specific package
cargo test -p package-name

🚨 Risk Mitigation

Breaking Changes

  • Test thoroughly before updating
  • Maintain backward compatibility where possible
  • Document breaking changes clearly
  • Provide migration guides for users

WASM Compatibility

  • Test WASM compilation after each update
  • Verify WASM demo still works
  • Check bundle sizes for regressions
  • Test in browsers for compatibility

Performance Regressions

  • Run benchmarks before and after updates
  • Monitor bundle sizes for increases
  • Test compilation times for regressions
  • Profile performance if issues arise

📋 Update Checklist

Pre-Update

  • Backup current working state
  • Document current versions
  • Run full test suite
  • Check current performance metrics

During Update

  • Update Rust toolchain
  • Update dependencies incrementally
  • Test after each major update
  • Fix any compilation errors

Post-Update

  • Run full test suite
  • Check performance metrics
  • Update documentation
  • Notify team of changes

🚀 Next Steps

  1. Check latest Rust version availability
  2. Update Rust toolchain to latest stable
  3. Update workspace dependencies incrementally
  4. Test compatibility across all packages
  5. Document any breaking changes or migration requirements

This update plan ensures the repository stays current with the latest Rust and dependency versions while maintaining stability and performance.


Plan created: September 20, 2025
Target completion: October 11, 2025