Repository Layout¶
MESA is multi-repo. Each component lives in its own GitHub repository so that release cadences, language toolchains, and CI pipelines can differ without coupling.
The core repos¶
| Repo | Language | Layer | Status |
|---|---|---|---|
cyverse/mesa |
Markdown (this site) | Project hub & docs | Active |
cyverse/mesa-mcp |
Python | MCP server: iRODS + AVU + OBO/OLS + DuckLake | Pre-alpha |
cyverse/mesa-ducklake |
Python | AVU-history Lakehouse library | Pre-alpha (functional) |
cyverse/irods-mcp-server |
Go | Generic iRODS MCP server | Public release |
cyverse-de/formation-mcp |
Go | Formation API MCP server | Public release |
cyverse/terrain-mcp |
Node.js | Terrain API MCP server | Public release |
Cross-repo dependencies¶
graph LR
mesa["cyverse/mesa<br/>(docs hub)"] -.references.-> mm
mm["mesa-mcp"] -->|imports| md["mesa-ducklake"]
mm -. wraps same API .- ims["irods-mcp-server"]
mm -. complements .- fm["formation-mcp"]
mm -. complements .- tm["terrain-mcp"]
fm -.builds on.-> tm
mesa-mcpdepends onmesa-ducklake(Python import).mesa-mcpandirods-mcp-serverare siblings — same iRODS surface, different languages.mesa-mcpadds AVU history and ontology workflows on top.formation-mcpis higher-level thanterrain-mcp— Formation is an orchestration API on top of Terrain.
Release coordination¶
Each repo manages its own version. The doc site (this repo) pins a "current supported" matrix on the Components page so users know which versions interoperate.
Branch model¶
| Repo | Default branch | Release branch |
|---|---|---|
cyverse/mesa |
main |
(none — site deploys from main) |
cyverse/mesa-mcp |
main |
release/x.y |
cyverse/mesa-ducklake |
main |
release/x.y |
cyverse/irods-mcp-server |
main |
release/x.y |
cyverse-de/formation-mcp |
main |
tags only |
cyverse/terrain-mcp |
main |
tags only |