Gunnar

nordisk/nornir

.nornir/build-variants.toml

# nornir — .nornir/build-variants.toml — EMITTED, NOT SOURCE.
#
# Generated by `cargo run -p nornir-build-thing -- emit` from
# crates/nornir-build-thing (the Rust `impl BuildThing`). The code is the one
# source; this file DESCRIBES the build. Editing it changes NOTHING: re-emit
# after changing the code. Do not edit by hand.
#
# Model: variant → features → settings/sub-settings → typ. ONE delivery
# (ORIGINAL) and FIVE atoms — the fleet build matrix's five rows and nothing
# else: the DAEMON (`nornir-server`, the only service-shaped row and so the only
# one that may carry `embeds`), the fat CLI, the CLI that REACHES holger
# (`linkage = mixed`, and mixed is a defined value), the GUI on `viz` alone, and
# the one-box `solo` shape. The fat/mixed axis is ONE feature — `embed-holger` —
# rather than a naming convention; skade, iceberg and parquet are plain deps, so
# no feature choice can make nornir thin. `nornir-watch` and `nornir-mcp` left
# the set on 2026-08-03 and their reasons are in crates/nornir-build-thing's
# recipe.rs, beside the rows.

[build]
base_suite = "ORIGINAL"

[build.allow_unbuilt_bins]
bctl = "a TEST FIXTURE package under crates/mimir-driver/tests/ (its own workspace, driven by mimir-driver's integration tests), not a deliverable."
bindrift_probe = "the red-when-broken fixture binary of crates/bindrift-fixtures (its build.rs injects code the git diff never shows, for Mimir.BinaryDrift to catch) — a test subject, never shipped."
cargo-mimir-dump = "a bin of crates/mimir-driver, the Mímir v2 rustc driver: it links `rustc_private`, is EXCLUDED from this workspace, pins its own dated nightly in its rust-toolchain.toml and keeps its own Cargo.lock — the stable pinned nordisk-cargo-toolchain image cannot compile it, so no atom of this workspace can."
mimir-binary = "the Mímir v2 binary-layer CLI (join one linked artifact onto a driver dump) — an operator/dev tool run from the workspace; not one of the five fleet-matrix rows."
mimir-capture = "a bin of crates/mimir-driver, the Mímir v2 rustc driver: it links `rustc_private`, is EXCLUDED from this workspace, pins its own dated nightly in its rust-toolchain.toml and keeps its own Cargo.lock — the stable pinned nordisk-cargo-toolchain image cannot compile it, so no atom of this workspace can."
mimir-driver = "a bin of crates/mimir-driver, the Mímir v2 rustc driver: it links `rustc_private`, is EXCLUDED from this workspace, pins its own dated nightly in its rust-toolchain.toml and keeps its own Cargo.lock — the stable pinned nordisk-cargo-toolchain image cannot compile it, so no atom of this workspace can."
mimir-room = "the Mímir v2 code-room CLI (stats/find/reach/diff/bench over a lake) — a dev and bench tool; the room ships inside nornir-server as a library, not as this bin."
mimir-super = "a bin of crates/mimir-driver, the Mímir v2 rustc driver: it links `rustc_private`, is EXCLUDED from this workspace, pins its own dated nightly in its rust-toolchain.toml and keeps its own Cargo.lock — the stable pinned nordisk-cargo-toolchain image cannot compile it, so no atom of this workspace can."
nornir-build-thing = "this recipe crate's own emit door (`cargo run -p nornir-build-thing -- emit`); the forge loads the crate as wasm, the bin is a maintainer tool."
nornir-demo = "the Pages demo host: its wasm row is not declared until the owner decides how it enters the matrix (xtask refuses demo-wasm by name until then); not a fleet row."
nornir-viz-web = "the viz-as-website crate (wasm bundle + a native dev window/serve path) — not one of the five fleet-matrix rows."
twin = "a TEST FIXTURE package under crates/mimir-driver/tests/ (its own workspace, driven by mimir-driver's integration tests), not a deliverable."
xtask = "the `cargo xtask` dev runner — a maintainer tool, never a delivery."

[build.downstream]
holger = ["skade"]
nornir = [
    "holger",
    "skade",
]

[[build.variant]]
name = "nornir-server"
package = "nornir"
bin = "nornir-server"
features = [
    "server",
    "viz",
    "mcp",
    "net-scan",
    "docs-export",
    "robot",
    "vector",
    "embed-tract",
    "embed-ort",
    "gen-candle",
    "gen-ollama",
    "manual-embed",
    "claude",
    "embed-holger",
]
no_default_features = true
profile = "release"
member = "nornir"
role = "server"
suites = ["ORIGINAL"]
default = true
kind = "service"
embeds = [
    "holger",
    "skade",
]
reaches = ["dwarves"]

[[build.variant]]
name = "nornir"
package = "nornir"
bin = "nornir"
features = [
    "server",
    "viz",
    "mcp",
    "net-scan",
    "docs-export",
    "robot",
    "vector",
    "embed-tract",
    "embed-ort",
    "gen-candle",
    "gen-ollama",
    "manual-embed",
    "claude",
    "embed-holger",
]
no_default_features = true
profile = "release"
member = "nornir"
role = "client"
suites = ["ORIGINAL"]
default = true
reaches = ["dwarves"]

[[build.variant]]
name = "nornir-cli"
package = "nornir"
bin = "nornir-cli"
features = [
    "server",
    "viz",
    "mcp",
    "net-scan",
    "docs-export",
    "robot",
    "vector",
    "embed-tract",
    "embed-ort",
    "gen-candle",
    "gen-ollama",
    "manual-embed",
    "claude",
    "atom-cli",
]
no_default_features = true
profile = "release"
member = "nornir"
linkage = "mixed"
role = "client"
suites = ["ORIGINAL"]
reaches = [
    "dwarves",
    "holger",
]

[[build.variant]]
name = "nornir-ui"
package = "nornir"
bin = "nornir-ui"
features = ["viz"]
no_default_features = true
profile = "release"
member = "nornir"
linkage = "mixed"
role = "client"
suites = ["ORIGINAL"]
reaches = [
    "dwarves",
    "holger",
]

[[build.variant]]
name = "nornir-solo"
package = "nornir"
bin = "nornir-solo"
features = [
    "solo",
    "server",
    "viz",
    "vector",
    "embed-tract",
    "manual-embed",
    "embed-holger",
]
no_default_features = true
profile = "release"
member = "nornir"
role = "solo"
suites = ["ORIGINAL"]
default = true
reaches = ["dwarves"]

[build.toolchain]
image = "nordisk-cargo-toolchain"
image_sha256 = "86d575e874677da3eb9aff3ba6e38ca600781ee9b7948a9df43ef89a6213c762"
rust_version = "1.97.1"
targets = [
    "x86_64-unknown-linux-gnu",
    "x86_64-unknown-linux-musl",
    "wasm32-unknown-unknown",
]
timeout_secs = 3600
mem_limit_mb = 8192
cpus = 8
siblings = [
    "Skidbladnir",
    "draupnir",
    "edda",
    "facett",
    "holger",
    "modgunn",
    "openzl-sys-rs",
    "skade",
    "znippy",
    "znippy-zoomies",
]