xtask/Cargo.toml
# modgunn's xtask — the ONE build verb, and nothing else.
#
# ## Why this crate is SELF-ROOTING (`[workspace]` with no members)
#
# modgunn is a single-crate repo: its root `Cargo.toml` has a `[package]` and NO
# `[workspace]` table. Adding `members = [".", "xtask"]` up there would make the
# root a real workspace, and a workspace unifies features across its members — the
# root package's resolution would then depend on what xtask happens to pull in.
# modgunn's whole point is a LEAN closure (holger and static-holger link its
# `scan`-only gate and must not acquire an arrow/iceberg tree), so letting a build
# tool touch the shipped crate's feature resolution is exactly the wrong trade.
#
# An empty `[workspace]` table here makes this package its own workspace root, so
# it resolves and locks entirely separately. The cost is that `-p xtask` cannot see
# it from the repo root, which is why the alias in `.cargo/config.toml` uses
# `--manifest-path` instead. Same shape as korp's self-rooting `crates/*` leaves.
[workspace]
[package]
name = "xtask"
version = "0.0.0"
edition = "2021"
publish = false
description = "modgunn's build verb: `cargo xtask build --suite ORIGINAL [--atom <name>]`, which reads .nornir/build-variants.toml and does nothing else."
[dependencies]
anyhow = "1"
# The ONE resolver. `suite_cli::run` turns (suite, atom) into a cargo invocation by
# READING `.nornir/build-variants.toml`; this crate contributes no variant names,
# no feature strings and no bin names of its own. That is the whole design: four
# hand-rolled build paths across the constellation gave four different answers to
# "what is this binary", and the fix is not a fifth better copy.
nornir-build-thing = { version = "0.2.0", default-features = false }
# Bridge the crates.io version-dep to the LOCAL edda checkout, exactly as modgunn's
# own root manifest does (registry 0.1.3 predates the `suite_cli` / `check_bins` /
# `Role::Solo` API). A `[patch]` is honoured only in a workspace ROOT manifest, and
# this package is its own root, so it belongs here rather than in modgunn's.
[patch.crates-io]
nornir-build-thing = { path = "../../edda/crates/nornir-build-thing" }