Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/edda

crates/nornir-config/Cargo.toml

[package]
name = "nornir-config"
version = "0.2.0"
edition = "2024"
rust-version = "1.85"
description = "The nornir.toml loader + the $HOME-derived data-root rule for the nordisk constellation. Owns the `[repo]`/`[guard]`/`[storage]`/`[registry]` config schema, the workspace-root discovery walk (`discover`/`load_explicit`), and the ONE home-derived data-root derivation (`<home>/.nornir` → registry/warehouse/funnel roots) shared by nornir AND dwarves. Extracted out of nornir/src/config.rs so dwarves can consume it FAT without a nornir->dwarves cycle; nornir re-exports it verbatim under `nornir::config`."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["nornir", "config", "toml", "workspace", "data-root"]
categories = ["config", "development-tools"]
exclude = ["/.nornir/"]

[dependencies]
anyhow = "1"
serde = { version = "1", features = ["derive"] }
toml = "1"
# The home-derived data-root rule reads the RUNNING USER's `$HOME` (falling back
# to getpwuid) — one rule for a login user AND the systemd service user, NO
# nornir-specific path env-var. `home` is the constellation-wide choice.
home = "0.5"
# `[build]` embedded build-variant schema — the SAME `BuildVariantSet` the
# standalone `.nornir/build-variants.toml` uses. Consumed (LAW #5), not twinned.
#
# PATH RESTORED (2026-07-31). This was version-ONLY, with the rationale that a
# hardcoded `../../../nornir/...` path broke any nornir git-worktree whose dir name
# != `nornir`. That objection died when build-thing MOVED INTO EDDA: `../nornir-build-thing`
# is a sibling inside THIS workspace, so there is no cross-repo layout assumption left
# to break — it is exactly the form nornir-build-info-flight and nornir-bench already use.
#
# Restoring it FIXES a live hazard. Version-only resolved the REGISTRY copy, so the edda
# workspace linked TWO different `nornir-build-thing`s at once: registry 0.1.3 here and
# the local 0.1.4 member everywhere else. That is two incompatible `BuildVariantSet`
# types in one build — and the registry one silently drops the `[[iso]]`, `[[installer]]`,
# `allow_unbuilt` and `downstream` sections of every build-variants.toml it parses
# (no `deny_unknown_fields`), so it fails by QUIETLY LOSING DATA, not by erroring.
#
# `0.1.4` is the floor deliberately: it EXCLUDES the drifted 0.1.3 by requirement, so the
# bad artifact cannot be resolved even after it is yanked-and-somehow-reachable.
nornir-build-thing = { version = "0.2.0", path = "../nornir-build-thing" }
# `BenchSpec::{missing_in,validate}` verify a `BenchRun` produced every required
# corpus result — the `BenchRun`/`BenchResult` types come from the bench leaf.
nornir-bench = { version = "0.2.0", path = "../nornir-bench" }