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.