47 lines
1.7 KiB
Markdown
47 lines
1.7 KiB
Markdown
# SQ-000: Workspace Skeleton
|
|
|
|
**Status:** `[x] DONE`
|
|
**Blocked by:** None
|
|
**Priority:** Critical (everything depends on this)
|
|
|
|
## Description
|
|
|
|
Bootstrap the entire SQ workspace: Cargo workspace, all crate stubs, buf protobuf config, dev tooling, and gitignore. Every crate should compile with an empty `lib.rs` or `main.rs`.
|
|
|
|
## Files to Create
|
|
|
|
### Root
|
|
- `Cargo.toml` - workspace root with all members and shared dependencies
|
|
- `Cargo.lock` - (generated)
|
|
- `buf.yaml` - buf module definition (`buf.build/rawpotion/sq`)
|
|
- `buf.gen.yaml` - prost + tonic codegen config
|
|
- `mise.toml` - dev tasks (build, test, generate:proto, local:up/down)
|
|
- `.gitignore` - target/, .env, etc.
|
|
- `.env` - local dev environment vars
|
|
|
|
### Proto
|
|
- `interface/proto/sq/v1/health.proto` - minimal Status service
|
|
|
|
### Crate stubs
|
|
- `crates/sq-grpc-interface/Cargo.toml` + `src/lib.rs`
|
|
- `crates/sq-models/Cargo.toml` + `src/lib.rs`
|
|
- `crates/sq-storage/Cargo.toml` + `src/lib.rs`
|
|
- `crates/sq-cluster/Cargo.toml` + `src/lib.rs`
|
|
- `crates/sq-server/Cargo.toml` + `src/main.rs`
|
|
- `crates/sq-sdk/Cargo.toml` + `src/lib.rs`
|
|
- `crates/sq-sim/Cargo.toml` + `src/lib.rs`
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [x] `cargo check --workspace` passes
|
|
- [x] `cargo test --workspace` passes (no tests yet, but no errors)
|
|
- [x] All 7 crates are listed in workspace members
|
|
- [x] Workspace dependencies match forest/fungus conventions (tonic 0.14.2, prost 0.14.1, etc.)
|
|
|
|
## Notes
|
|
|
|
- Follow forest's Cargo.toml pattern exactly: `/home/kjuulh/git/src.rawpotion.io/rawpotion/forest/Cargo.toml`
|
|
- Follow forest's buf.gen.yaml: `/home/kjuulh/git/src.rawpotion.io/rawpotion/forest/buf.gen.yaml`
|
|
- Use Rust edition 2024
|
|
- sq-server is the only binary crate; all others are libraries
|