marin-community/marin#1723 "Workspace" step 2: experiments → marin → levanter
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
Legend:
- ✅ Completed & merged
- 🎯 This PR
- 📋 Planned
(data_browser stays independent, not a workspace member)
- 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 --frozenflags)
- Rename Marin workflows with
- Update TPU setup scripts for monorepo structure
- Update pre-commit config to exclude
lib/levanter/from Marin license insertion - Update ReadTheDocs configs to use
--frozenflag
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/See workspace-migration scripts for:
step2/main.sh- Main migration script (3 parts: prepare, merge, workflows)step2/test.sh- Test harness- Full documentation