# dev This is my monorepo, started in 2026. ## Monorepo structure ```text dev/ Monorepo root ├── bazel/ Bazel support files ├── configs/ Declarative configuration │ └── nixos/ NixOS hosts, modules, guests, registry, and secrets ├── docs/ Repository documentation ├── src/ Projects │ ├── dotfiles/ Home and system configuration │ └── machoke/ Rust application ├── third_party/ External source and vendoring support │ └── crates/ Generated Rust crate sources and Bazel targets ├── Cargo.lock Shared Rust dependency lockfile ├── Cargo.toml Rust workspace manifest └── MODULE.bazel Bazel module definition ``` ## Rust dependencies The repository root contains one Cargo dependency graph. Each Rust project declares its dependencies in its local `Cargo.toml` file. Add each Rust project to the `members` list in the root `Cargo.toml` file. Use explicit member paths because the Bazel generator does not expand workspace globs. Update the shared lockfile after changing a project manifest: ```sh cargo generate-lockfile ``` Regenerate local crate sources and Bazel targets: ```sh bazel run //third_party:vendor_crates ``` Reference each dependency with an explicit local Bazel label: ```starlark deps = ["//third_party/crates:crate_name"] ``` Commit the generated files under `third_party/crates/`. Do not edit generated files manually.