Skip to content

Instantly share code, notes, and snippets.

@ryan-williams
Last active November 8, 2025 23:02
Show Gist options
  • Select an option

  • Save ryan-williams/f38c0ab59897cfb57c99081b7d87af54 to your computer and use it in GitHub Desktop.

Select an option

Save ryan-williams/f38c0ab59897cfb57c99081b7d87af54 to your computer and use it in GitHub Desktop.

marin-community/marin#1723 "Workspace" step 2: experimentsmarinlevanter

Second step in the "uv workspace migration plan" (#1773):

  • Merge Levanter into lib/levanter/ (preserving full Git history)
  • Migrate GitHub Actions workflows to monorepo structure
  • Builds on: #1690 ("step 1", workspace initialization)
  • Next step: Step 3 (Haliax integration)
flowchart TB
    subgraph " "
        experiments["<b>experiments</b><br/><small>step 1</small>"]
        data_browser["<b>data_browser</b><br/><small>independent</small>"]
    end

    subgraph "lib/"
        marin["<b>marin ✅</b><br/><small>step 1</small>"]
        levanter["<b>levanter 🎯</b><br/><small>step 2</small>"]
        haliax["<b>haliax 📋</b><br/><small>step 3</small>"]
        thalas["<b>thalas 📋</b><br/><small>step 4</small>"]
        zephyr["<b>zephyr ✅</b><br/><small><a href='https://github.com/marin-community/marin/pull/1646'>#1646</a></small>"]
    end

    experiments --> marin
    experiments --> levanter
    experiments --> zephyr

    marin --> levanter
    marin --> zephyr

    levanter --> haliax

    style experiments fill:#d4edda,color:#000
    style marin fill:#d4edda,color:#000
    style levanter fill:#fff3cd,color:#000
    style zephyr fill:#d4edda,color:#000
    style haliax fill:#f8d7da,color:#000
    style thalas fill:#f8d7da,color:#000
    style data_browser fill:#e2e3e5,color:#000

    classDef completed fill:#d4edda,stroke:#28a745,stroke-width:2px,color:#000
    classDef inProgress fill:#fff3cd,stroke:#ffc107,stroke-width:2px,color:#000
    classDef planned fill:#f8d7da,stroke:#dc3545,stroke-width:2px,stroke-dasharray: 5 5,color:#000
    classDef independent fill:#e2e3e5,stroke:#6c757d,stroke-width:2px,color:#000
Loading

Legend:

  • ✅ Completed & merged
  • 🎯 This PR
  • 📋 Planned

(data_browser stays independent, not a workspace member)

Changes

  • Merge Levanter into lib/levanter/ (preserving full Git history)
  • Add Levanter member to workspace root pyproject.toml
  • Update Marin's Levanter dependency to use workspace reference
  • Migrate GitHub Actions workflows to monorepo structure:
    • Rename Marin workflows with marin- prefix
    • Rename Levanter workflows with levanter- prefix
    • Add "Marin - " / "Levanter - " prefixes to workflow names
    • Add path filters to trigger only on relevant changes
    • Update Levanter workflows for workspace (working-directory, --package levanter --frozen flags)
  • Update TPU setup scripts for monorepo structure
  • Update pre-commit config to exclude lib/levanter/ from Marin license insertion
  • Update ReadTheDocs configs to use --frozen flag

Structure After

 marin/
   pyproject.toml        # Workspace root
   experiments/
   .github/workflows/
     marin-*.yaml        # Marin workflows
+    levanter-*.yaml     # Levanter workflows (new)
   lib/
     marin/              # Workspace member
       pyproject.toml
       src/marin/
+    levanter/           # Workspace member (new)
+      pyproject.toml
+      src/levanter/
+      infra/

Migration Scripts

See workspace-migration scripts for:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment