Plan: Add cuda_mppi as git submodule

Status: Completed

Overview

Extract the CUDA MPPI implementation from src/cuda_mppi/ into a separate git repository and integrate it as a submodule at third_party/cuda_mppi.

Decisions Made

  • New repository: riccardo-enr/cuda_mppi
  • Submodule path: third_party/cuda_mppi
  • Feature branch: feat/cuda-mppi-submodule
  • Track branch: main (in submodule)

Implementation Steps

1. Create New cuda_mppi Repository

2. Initialize cuda_mppi Repository

    • CMakeLists.txt (standalone build)
    • README.md (usage and build instructions)
    • LICENSE (MIT, matching main project)
    • .gitignore

3. Create Feature Branch in jax_mppi

4. Add Submodule to jax_mppi

5. Update Build System

    • Change add_subdirectory(src/cuda_mppi) to add_subdirectory(third_party/cuda_mppi)
    • Python source files
    • CMake files
    • Documentation

6. Test Build

7. Update Documentation

  • # Clone with submodules
    git clone --recursive https://github.com/riccardo-enr/jax_mppi.git
    
    # Or if already cloned
    git submodule update --init --recursive

8. Create Pull Request

Rollback Plan

If issues arise, we can:

  1. Remove submodule: git submodule deinit -f third_party/cuda_mppi
  2. Delete from git: git rm -f third_party/cuda_mppi
  3. Remove from .gitmodules
  4. Restore original src/cuda_mppi from git history