Home / migration / DEVTOOLS-EXTRACTION

DevTools Extraction - Complete ✅

Date: December 7, 2025 Action: Moved devtools back to separate repository Status:COMPLETE

🎯 What Was Done

DevTools was initially migrated into the monorepo workspace as devtools/ but has now been restored as an independent repository to maintain architectural consistency with @larcjs/core and @larcjs/ui.

Changes Made

  • Removed from workspace:
  • - Deleted devtools/ directory - Removed from npm workspaces
  • Restored as submodule:
  • - Added devtools/ as git submodule - Points to: https://github.com/larcjs/devtools.git
  • Updated configuration:
  • - .gitmodules now includes devtools submodule - package.json workspace only manages type packages - Documentation updated to reflect new structure

    🏗️ Final Repository Architecture

    Four Independent Repositories:

  • github.com/larcjs/core@larcjs/core
  • - The PAN messaging bus (5KB, zero dependencies)
  • github.com/larcjs/components@larcjs/ui
  • - UI component library (57 components)
  • github.com/larcjs/devtools@larcjs/devtools
  • - Chrome DevTools extension for debugging PAN
  • github.com/larcjs/larc (Monorepo)
  • - Type definitions workspace - Documentation - Examples and apps (as submodules)

    📦 Monorepo Workspace Now Contains

    larc/
    ├── packages/
    │   ├── core-types/          (@larcjs/core-types)
    │   └── components-types/    (@larcjs/ui-types)
    ├── core/         (submodule → @larcjs/core)
    ├── ui/           (submodule → @larcjs/ui)
    ├── devtools/     (submodule → @larcjs/devtools) ✨ RESTORED
    ├── examples/     (submodule)
    └── apps/         (submodule)

    ✅ Verification

    • [x] DevTools removed from packages/ directory
    • [x] DevTools added as submodule at root level
    • [x] Workspace still works (only 2 packages now)
    • [x] npm install succeeds
    • [x] No vulnerabilities
    • [x] .gitmodules updated correctly
    • [x] Documentation updated
    • [x] Changes committed

    🎉 Benefits

    Architectural Consistency

    All runtime/distributed packages are now separate repositories:
    • @larcjs/core - separate
    • @larcjs/ui - separate
    • @larcjs/devtools - separate
    Only type definitions remain in the monorepo workspace (as they should be):
    • @larcjs/core-types - monorepo
    • @larcjs/ui-types - monorepo

    Developer Experience

    • DevTools can be developed independently
    • Simpler workspace (fewer packages to manage)
    • Clear separation: runtime vs. types
    • Each package has its own release cycle

    📊 Updated Metrics

    | Metric | Value | |--------|-------| | Total Repositories | 4 | | Submodules in larc/ | 5 | | Workspace Packages | 2 | | Independent Packages | 3 |


    💻 Commands Used

    # Remove from packages
    rm -rf devtools
    
    # Add as submodule
    git submodule add https://github.com/larcjs/devtools.git devtools
    
    # Verify workspace
    npm install
    
    # Commit changes
    git add -A
    git commit -m "Move devtools back to separate repository"
    git commit -m "Update migration docs: devtools now separate repo"

    📝 Notes

    • The original github.com/larcjs/devtools repository was never deleted
    • DevTools history is preserved
    • This change improves architectural clarity
    • Type definitions remain co-located in monorepo (makes sense!)

    Status: ✅ Complete and committed Ready for: Push to origin