Gunnar

mikronova/draupnir

.nornir/build-variants.toml

# draupnir — .nornir/build-variants.toml — EMITTED, NOT SOURCE.
#
# Generated by `cargo run -p draupnir-build-thing -- emit` from
# crates/draupnir-build-thing (the Rust `impl BuildThing`). The code is the one
# source; this file DESCRIBES the build for readers and for the tools that
# discover a repo by this path. Editing it changes NOTHING: re-emit after
# changing the code. Do not edit by hand.
#
# Model: variant → features → settings/sub-settings → typ. draupnir ships NO
# executable — it is one crate, one `[lib]`, and every row below is that same
# library with a different backend compiled in. `linkage = "not-applicable"` on
# each is a DECLARATION and not an omission: a library is linked by whoever
# consumes it, so the fat/thin axis has no answer, and an omitted key reads as
# the `fat` default (a self-containment claim nobody checked). See
# .nornir/build-thing-design.md for what is declared and why.

[build]
offers = [
    "backend-oci",
    "backend-redfish",
    "backend-tunnr",
    "backend-youki",
    "redfish-server",
    "seed",
]
base_suite = "ORIGINAL"

[build.allow_unbuilt]
backend-oci = "the bollard (podman/Docker REST) container backend — a CONSUMER's choice about which wire it compiles in, and draupnir ships no artifact per backend to choose between. Its deps are all published, so nothing about this repository is untested by leaving it out of the roster."
backend-redfish = "the pure-Rust ureq/rustls Redfish client, same reason as backend-oci. Its request shaping is fixture-tested with no BMC, so a build point would prove nothing a test does not."
backend-youki = "the daemon-less youki/libcontainer backend, same reason as backend-oci. It is additionally unrunnable rootless on some hosts (apparmor_restrict_unprivileged_userns=1), which is a runtime fact about the box and not a build fact about this crate."
redfish-server = "draupnir's OWN BMC — a listening socket. Deliberately not implied by backend-redfish and deliberately not a shipped shape: a client-only build must not grow a server, and nothing in the constellation links draupnir to get one."

[build.allow_unbuilt_bins]
draupnir-build-thing = "this recipe crate's own emit door (`cargo run -p draupnir-build-thing -- emit` regenerates .nornir/build-variants.toml); the forge loads the crate as wasm, the bin is repository tooling, never shipped."

[[build.variant]]
name = "draupnir"
package = "draupnir"
profile = "release"
linkage = "not-applicable"
role = "library"
suites = ["ORIGINAL"]
default = true
kind = "lib"

[[build.variant]]
name = "draupnir-seed"
package = "draupnir"
features = ["seed"]
profile = "release"
linkage = "not-applicable"
role = "library"
suites = ["ORIGINAL"]
kind = "lib"

[[build.variant]]
name = "draupnir-tunnr"
package = "draupnir"
features = ["backend-tunnr"]
profile = "release"
linkage = "not-applicable"
role = "library"
suites = ["ORIGINAL"]
kind = "lib"

[build.toolchain]
image = "nordisk-cargo-toolchain"
image_sha256 = "668468e775ad80f32d700cbc9709d41cac726f40d00649461a0932f30d1b2067"
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 = [
    "edda",
    "tunnr",
    "znippy-zoomies",
]