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

nordisk/holger

.nornir/SUITES.md

holger — the product list

A suite is what a customer receives as one thing; a variant (a Build Thing row) is one build point (package × bin × features × target × kind). Holger has one suite, MVP, and one product list (lane HOL-PRODUCTS, owner 2026-10-30). The rows are declared in Rust, in holger-recipe/src/variants.rs; .nornir/build-variants.toml is their emission, and cargo xtask build --suite MVP --list prints them.

The four products

Each product is one crate, and its row builds exactly what cargo install <crate> builds (holger-recipe/src/twins.rs, held by tests/rows_equal_cargo_install.rs; cargo xtask twin compares the two binaries).

product crate what it is
holger ⭐ server server/cli the server: the twelve formats, the intake chain, the offline bundle and intel verbs, signed evidence, the sync protocol
holger-downstream holger-downstream/ the airgapped downstream, a thin crate over the server's downstream feature
holger-ui holger-ui crates/holger-ui the web console, a thin crate over holger-ui-server
holger-cli ⭐ client holger-cli/ the command-line tool: every console action, the airgap bundle (`bundle prepare

Every product's default dials nothing. The extras are features of the same crates: all-formats (NuGet, gems, conda, Composer beside the twelve; fmt-all is its old name), online (the outbound clients), federation (Artifactory, Nexus, AWS and Azure through Skidbladnir) and full (all three). cargo xtask build --suite MVP --features full builds the four products with everything.

What only an estate needs

rows what they are
mvp-server-musl the static appliance build of the server (the installer's and the ISO's payload)
downstream-musl the static appliance build of the downstream (its medium's payload)
mvp-server-metered, mvp-server-musl-metered (+ -narrate) the sold builds: the paid state, the wasm host and the signed meter guests
estate-front-musl-metered (+ -narrate) holger-estate-front, the estate's front
plugin-allocation, plugin-skidbladnir, plugin-rust-toolchain the three signed wasm plugins
holger-mvp-appliance, holger-installer, holger-installer-metered, holger-appliance-iso, holger-front-installer-metered, holger-keep, holger-front-keep, holger-downstream-installer the media's pointer rows (the media are packaging.rs's)

History

Until 2026-10-30 holger declared three suites. ORIGINAL carried the three exclusive server tiers embedded (holger-embedded), mini (holger-mikro) and full (holger-full), server-local, and the agent rows agent / agent-online. OPEN (H5, 2026-10-26) carried upstream, downstream (--features downstream --bin holger-downstream on the server crate) and cli. MVP carried mvp-server (the glibc appliance service), the update-bundle tools mvp-bundle / mvp-verify (holger-bundle, holger-verify) and the estate rows. HOL-PRODUCTS folded them into the list above: the tiers became the default plus the named extras (full keeps its meaning: everything), the downstream became its own crate, and the bundle tool, the verifier and the agent became holger-cli commands. The reasoning behind each old row is in git history (git show f7cc8583:holger-recipe/src/variants.rs) and in the design notes that still name the tiers (.nornir/holger-tiers.md, .nornir/mini-holger-for-henrik.md, .nornir/stinky/), which are records of their time, not of the code.