crucible build parity #14
@@ -97,5 +97,5 @@ publish event is a `v*` tag (see `sow-docs/runbooks/ci-trigger-standard.md`).
|
||||
|
||||
## Consumers
|
||||
|
||||
How the artifact repos resolve a Crucible binary (and the `NWN_ROOT` rule) is
|
||||
How the artifact repos resolve a Crucible binary is
|
||||
documented in [`docs/consumer-contract.md`](docs/consumer-contract.md).
|
||||
|
||||
@@ -36,17 +36,6 @@ container:
|
||||
|
||||
~~No host install, no `$HOME` layout, no developer machine assumptions.~~
|
||||
|
||||
## `NWN_ROOT` rule
|
||||
|
||||
Crucible **never guesses `NWN_ROOT` from `$HOME`** (this was a deploy-notes
|
||||
pain point). The NWN install/data root is passed explicitly:
|
||||
|
||||
- env `NWN_ROOT=/path/to/nwn`, or
|
||||
- flag `--nwn-root /path/to/nwn`.
|
||||
|
||||
A builder that needs `NWN_ROOT` and receives neither must fail closed with a
|
||||
clear message, not fall back to a home-directory default.
|
||||
|
||||
## Determinism
|
||||
|
||||
Same inputs → identical output bytes. Consumers may checksum artifacts across
|
||||
|
||||
@@ -249,8 +249,8 @@ func usage(w io.Writer) {
|
||||
fmt.Fprintf(w, " config [args] inspect/validate effective configuration\n")
|
||||
fmt.Fprintf(w, " changelog [args] generate the release changelog\n")
|
||||
fmt.Fprintf(w, "\nBuilders read all inputs from the project tree (nwn-tool.yaml + data/); no\n")
|
||||
fmt.Fprintf(w, "NWN install is required. If a builder ever needs an NWN root, it must be\n")
|
||||
fmt.Fprintf(w, "passed explicitly via NWN_ROOT; crucible never guesses from $HOME. See\n")
|
||||
fmt.Fprintf(w, "NWN install is required. A builder that one day needs NWN game data\n")
|
||||
fmt.Fprintf(w, "auto-detects the install; it never requires a hand-set path. See\n")
|
||||
fmt.Fprintf(w, "docs/consumer-contract.md.\n")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user