Gunnar

nordisk/holger-ui

.nornir/build-variants.toml

# 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",
]