# holger-ui — .nornir/build-variants.toml — EMITTED, NOT SOURCE.
#
# Generated by `cargo run -p holger-ui-build-thing -- emit` from holger-ui-recipe
# (the Rust `impl BuildThing`: crates/holger-ui-recipe/src/variants.rs for the
# build points, lib.rs for the feature universe and the set rules;
# holger-ui-build-thing is its wasm32 cdylib shim). The code is the one source;
# this file DESCRIBES the build for readers and for the tools that discover a
# repository by this path (the dwarves forge, the build-thing pane, xtask,
# installtest, the bench harness). Editing it changes NOTHING: re-emit after
# changing the code. Do not edit by hand.
#
# Model: variant -> features -> settings/sub-settings -> typ. holger-ui is a
# console in TWO halves, and each row is one of them:
#
# mvp-ui-web — the wasm32 browser bundle, bundled by trunk, served as static
# files by the nginx quadlet in deploy/, speaking gRPC-web straight to
# holger's tonic-web door for everything it reads. It renders no word
# about money.
# mvp-ui-web-metered — the same bundle with `metered`, into dist-metered/:
# the paid console, with the sign-up, welcome and order pages. holger's
# paid front embeds it.
# mvp-ui — the backend-for-frontend, added 2026-09-17: it holds the passkey
# ceremony, terminates the session cookie, and speaks NATIVE gRPC to holger
# holding the console's own bearer. A browser can do none of those three.
#
# Until that crate existed this file carried ONE row and a note saying the second
# was owed but not declared, because owing a crate is not the same act as
# declaring its build. The crate exists, so the row does.
#
# The reasoning that belongs beside these rows is in the doc comments of the
# code above, and never here: a comment written into this file is deleted by the
# next `emit` without anybody noticing.
[nornir-build-thing]
schema = 5
[build]
offers = ["metered"]
[build.allow_unbuilt_bins]
holger-ui-build-thing = "the emission door (`cargo run -p holger-ui-build-thing -- emit`) and the wasm32 plugin the dwarves forge loads. Repository tooling on the tool axis, like xtask; it owns no build knowledge and ships nowhere."
xtask = "repository tasks (`cargo xtask publish | verify-chain | build`), invoked as a tool and never shipped; built by every `cargo xtask` run, not by a delivery."
[[build.variant]]
name = "mvp-ui-web"
package = "holger-ui-web"
bin = "holger-ui-web"
profile = "release"
target = "wasm32-unknown-unknown"
linkage = "thin"
role = "client"
suites = ["MVP"]
default = true
kind = "wasm"
reaches = ["holger"]
[[build.variant]]
name = "mvp-ui-web-metered"
package = "holger-ui-web"
bin = "holger-ui-web"
features = ["metered"]
profile = "release"
target = "wasm32-unknown-unknown"
linkage = "thin"
role = "client"
suites = ["MVP"]
kind = "wasm"
reaches = ["holger"]
[[build.variant]]
name = "mvp-ui"
package = "holger-ui-server"
bin = "holger-ui-server"
profile = "release"
target = "x86_64-unknown-linux-musl"
member = "holger-ui"
linkage = "thin"
role = "server"
suites = ["MVP"]
default = true
kind = "service"
reaches = ["holger"]
[[build.variant]]
name = "ui"
package = "holger-ui-server"
bin = "holger-ui-server"
profile = "release"
linkage = "thin"
role = "server"
suites = ["MVP"]
reaches = ["holger"]
[[build.web_app]]
name = "mvp-ui-web"
out_dir = "dist"
index = "index.html"
[[build.web_app]]
name = "mvp-ui-web-metered"
out_dir = "dist-metered"
index = "index-metered.html"
[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",
"x86_64-unknown-uefi",
]
timeout_secs = 3600
mem_limit_mb = 8192
cpus = 8
siblings = [
"edda",
"monetize",
]