OXYGENHUB

Project skeleton in Oxygen's shape: workspace, Makefile, scripts, changelog, plan issue #1 closed: completed andymccall opened this · 1 comment

andymccall

The workspace and everything around the code, shaped exactly as Oxygen's so moving between the projects needs no relearning (docs/implementation-prompt.md, "The one rule about shape").

  • Cargo.toml workspace with [workspace.package] (0.1.0, edition 2021, MIT OR Apache-2.0), the spectra binary at the root, members crates/spectra-core, crates/spectra-mcp, crates/spectra-api, crates/radar.
  • Makefile: oxygenhub's targets (build, check: changelog fmt clippy test, changelog, fmt, clippy, test, run, ts) plus oxygen's install.
  • build.rs and SPECTRA_BUILD (the build identity from oxy describe), spectra version [--json].
  • Copied from Oxygen: scripts/changelog-check.sh, rustfmt.toml (oxygenhub's), .oxyignore, .oxyattributes, LICENSE; src/cli/ui.rs and src/cli/json.rs with the names changed.
  • deps/oxygen: Oxygen pinned as a subrepo (oxy submodule add), the way oxygenhub pins its dependencies, so spectra-core builds against an exact oxy-core for identities, signatures, CBOR and hashing (spec §7.3, §9.5).
  • Dependencies chosen from crates and versions already in oxygen's, oxygenhub's and oxygenflow's Cargo.lock, so the vendored OxygenFlow image can build Spectra without a rebuild (see issue #2).
  • CHANGELOG.md with ## Unreleased; docs/plan.md with the overnight loop, its rules and the Sprint 1 items as checkboxes.

Done when make check passes on the empty project, spectra --help and spectra version --json work, and the skeleton is committed with oxy.

andymccall set labels chore ·

andymccall set milestone Sprint 1 ·

andymccall edited ·

andymccall referenced by change 258bb3824813 on main ·

andymccall

Done in 4e229000: the workspace in Oxygen's shape (spectra-core, spectra-mcp, spectra-api, radar, the spectra binary), Oxygen pinned as a subrepo under deps/oxygen for identities and signatures, make check (changelog, fmt on Spectra's own packages, clippy -D warnings, tests), spectra version [--json] with the build identity from build.rs, and make deps-check. Cargo.lock starts from oxygenhub's, with proptest and unicode-width pinned to the versions oxygen has, so all 212 crates are ones the OxygenFlow image already vendors.

andymccall closed ·