Files
sq/todos/SQ-000-workspace-skeleton.md
2026-02-26 21:52:50 +01:00

1.7 KiB

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

  • cargo check --workspace passes
  • cargo test --workspace passes (no tests yet, but no errors)
  • All 7 crates are listed in workspace members
  • 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