#!/bin/bash set -e echo "🚀 RTX Workspace Migration - Physical Crate Movement" echo "==================================================" # Crate categorization based on dependency analysis declare -A CRATE_CATEGORIES # Core infrastructure (8 crates) CRATE_CATEGORIES["rtx-tensor"]="core" CRATE_CATEGORIES["rtx-runtime"]="core" CRATE_CATEGORIES["rtx-autograd"]="core" CRATE_CATEGORIES["rtx-memory"]="core" CRATE_CATEGORIES["rtx-kernel"]="core" CRATE_CATEGORIES["rtx-bindings"]="core" CRATE_CATEGORIES["rtx-graph"]="core" CRATE_CATEGORIES["rtx-validation"]="core" CRATE_CATEGORIES["rtx-losses"]="core" # Training & optimization (10 crates) CRATE_CATEGORIES["rtx-transformers"]="training" CRATE_CATEGORIES["rtx-distributed"]="training" CRATE_CATEGORIES["rtx-rl"]="training" CRATE_CATEGORIES["rtx-compress"]="training" CRATE_CATEGORIES["rtx-flash-attention"]="training" CRATE_CATEGORIES["rtx-preprocessing"]="training" CRATE_CATEGORIES["rtx-auto"]="training" CRATE_CATEGORIES["rtx-automeasure"]="training" CRATE_CATEGORIES["rtx-evolution"]="training" CRATE_CATEGORIES["rtx-federated"]="training" # Model architectures (7 crates) CRATE_CATEGORIES["rtx-vision"]="models" CRATE_CATEGORIES["rtx-vision-advanced"]="models" CRATE_CATEGORIES["rtx-multimodal"]="models" CRATE_CATEGORIES["rtx-diffuse"]="models" CRATE_CATEGORIES["rtx-timeseries"]="models" CRATE_CATEGORIES["rtx-neuromorphic"]="models" CRATE_CATEGORIES["rtx-nlg"]="models" # Production & deployment (9 crates) CRATE_CATEGORIES["rtx-serving-api"]="production" CRATE_CATEGORIES["rtx-inference"]="production" CRATE_CATEGORIES["rtx-streaming"]="production" CRATE_CATEGORIES["rtx-mlops-orchestrator"]="production" CRATE_CATEGORIES["rtx-edge"]="production" CRATE_CATEGORIES["rtx-security"]="production" CRATE_CATEGORIES["rtx-robust"]="production" CRATE_CATEGORIES["rtx-cloud"]="production" CRATE_CATEGORIES["rtx-hub"]="production" # Specialized computing (10 crates) CRATE_CATEGORIES["rtx-quantum"]="specialized" CRATE_CATEGORIES["rtx-synthesis"]="specialized" CRATE_CATEGORIES["rtx-compiler"]="specialized" CRATE_CATEGORIES["rtx-geom"]="specialized" CRATE_CATEGORIES["rtx-polygraph"]="specialized" CRATE_CATEGORIES["rtx-sklearn-py"]="specialized" CRATE_CATEGORIES["rtx-ml-classic"]="specialized" CRATE_CATEGORIES["rtx-platform"]="specialized" CRATE_CATEGORIES["rtx-hardware-extended"]="specialized" CRATE_CATEGORIES["rtx-science"]="specialized" # Development & tooling (12 crates) CRATE_CATEGORIES["rtx-bench"]="tooling" CRATE_CATEGORIES["rtx-profiler"]="tooling" CRATE_CATEGORIES["rtx-governance"]="tooling" CRATE_CATEGORIES["rtx-privacy"]="tooling" CRATE_CATEGORIES["rtx-eval"]="tooling" CRATE_CATEGORIES["rtx-docs"]="tooling" CRATE_CATEGORIES["rtx-examples"]="tooling" CRATE_CATEGORIES["rtx-debug"]="tooling" CRATE_CATEGORIES["rtx-codegen"]="tooling" CRATE_CATEGORIES["rtx-finance"]="tooling" CRATE_CATEGORIES["rtx-audio"]="tooling" CRATE_CATEGORIES["rtx-games"]="tooling" migrate_crate() { local crate_name=$1 local category=${CRATE_CATEGORIES[$crate_name]} if [ -z "$category" ]; then echo "❌ Unknown category for $crate_name - skipping" return 1 fi echo "📦 Migrating $crate_name to crates/$category/" # Ensure category directory exists mkdir -p "crates/$category" # Move crate directory from crates/ to new location if [ -d "crates/$crate_name" ]; then mv "crates/$crate_name" "crates/$category/" echo " ✅ Moved $crate_name to crates/$category/" else echo " ⚠️ Directory crates/$crate_name not found - may already be moved" fi } # Count total crates total_crates=0 moved_crates=0 echo "📊 Starting Migration:" echo "====================" # Migrate all crates for crate_dir in crates/rtx-*/; do if [ -d "$crate_dir" ]; then crate_name=$(basename "$crate_dir") total_crates=$((total_crates + 1)) if migrate_crate "$crate_name"; then moved_crates=$((moved_crates + 1)) fi fi done echo "" echo "✅ Physical crate migration complete!" echo "📊 Summary:" echo " Total crates found: $total_crates" echo " Successfully moved: $moved_crates" echo "" echo "📁 New structure:" for category in core training models production specialized tooling; do if [ -d "crates/$category" ]; then count=$(ls -1d crates/$category/rtx-* 2>/dev/null | wc -l) echo " $category: $count crates" fi done echo "" echo "🔧 Next steps:" echo "1. Update dependency paths in all Cargo.toml files" echo "2. Update import statements in source code" echo "3. Test compilation"