Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Cargo build output
/target

# Cargo.lock is intentionally tracked (workspace builds binaries).
34 changes: 33 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This repo merges three previously-separate projects into a single workspace with

## Status

**Design phase.** The two docs below are the current design + migration plan; no code has landed yet.
**Early implementation.** The workspace builds; the front-end crates are landing per the migration plan below. Present today: `crates/core` (shared planner core) and `crates/lower` (SQL/PromQL → L2 lowering). The two docs below are the design + migration plan that the code is following.

- [`docs/design.md`](docs/design.md) — target architecture, repo layout, extension points, wire contracts.
- [`docs/migration-plan.md`](docs/migration-plan.md) — phase-by-phase plan to land the merger without disrupting any running deployment.
Expand Down Expand Up @@ -80,6 +80,38 @@ Both produce functionally identical artifacts. The placement is a deployment/tea
- `deployment-model-asaplifecycle` + `deployment-model-asapquery` in ASAPController workspace (share a YAML emitter).
- `deployment-model-asapfusion` in the `asap-fusion` repo (research cadence, independent release).

## Building

The build is a normal `cargo build`. The only setup is GitHub access: `crates/lower`
depends on our private PromQL parser fork (`ProjectASAP/promql-parser`, branch `asap`)
as a git dependency, so Cargo has to be able to clone a private repo.

1. Get added to the `ProjectASAP/promql-parser` repo (ask an org owner).

2. Let git authenticate to GitHub over HTTPS. Easiest is the `gh` CLI as a
credential helper:

```bash
gh auth login # choose GitHub.com → HTTPS, follow the prompts
gh auth setup-git # registers gh as git's credential helper
```

3. Build:

```bash
cargo build
```

Cargo resolves the parser to the commit pinned in `Cargo.lock`, fetches it via git
(authenticated by `gh`), and compiles the workspace.

**Troubleshooting.** If the fetch fails with `authentication failed` or
`repository not found`, it's one of two things: your account doesn't have access to
the private repo, or git isn't using your credentials — re-run `gh auth setup-git`.
Don't hand-edit `~/.gitconfig` with a `url.…insteadOf` rule containing a personal
access token; that embeds *your* token in plaintext and shares it with anyone who
copies the snippet. Keep credentials in `gh` (or git's keychain helper) instead.

## Key design references

- 5-layer pipeline: `docs/design.md` §3
Expand Down
Loading