feat(admin-config-tool): wire xceadmin into meson + nix build
Reopens the 2026-07-21 design decision to keep xceadmin outside meson.
Standard onboarding consistency (README 3.3 `nix build .#xcecore` and
3.4 `meson compile` working for xceadmin like every other component)
outweighs the earlier concern about meson's single-artifact model not
fitting a multi-file pip install.
- src/xceadmin/meson.build: custom_target() wrapping install+test,
stamp-file output, build_always_stale (matches this repo's existing
clean-rebuild-every-invocation convention).
- src/xceadmin/meson-build.sh: out-of-tree pinned install + pytest;
stages a repo-mirror/ symlink tree so tests' fixed-relative-path
assumptions (src/configs/, src/schema/, ha/data/) still resolve from
a copied location, without touching their deliberate fail-loud
behavior.
- src/meson.build: subdir('xceadmin') under component != 'xcecli'.
- src/tools/xce-build.sh: xceadmin case now delegates to
`meson compile -C "$BUILD_DIR" xceadmin` instead of its own
pip/venv implementation, like every other component.
Verified both build paths: meson compile (165/165 passed) and
nix build --option sandbox false .#xcecore_debug (128 passed / 37
skipped — cert-dependent tests correctly skip under nix's
git-tracked-only hermetic source). AppImage bundling (README 3.5)
is explicitly deferred to future work, not part of this change.
This commit is contained in:
parent
b6bf7cb8e3
commit
e4fd9e1d3f
8 changed files with 129 additions and 43 deletions
|
|
@ -11,9 +11,11 @@ dependencies = [
|
|||
"click>=8.0",
|
||||
]
|
||||
|
||||
# NOT wired into meson (src/meson.build / src/meson.options) — xceadmin is
|
||||
# dispatched by src/tools/xce-build.sh's case-statement pattern instead.
|
||||
# See .kiro/specs/admin-config-tool/design.md, File Structure Plan.
|
||||
# Wired into meson (src/xceadmin/meson.build custom_target, pulled in by
|
||||
# src/meson.build's subdir('xceadmin')) so `nix build .#xcecore[_debug]`
|
||||
# and `meson compile` install + test this package like every other
|
||||
# component; src/tools/xce-build.sh's xceadmin case now just delegates to
|
||||
# that same meson target.
|
||||
|
||||
[project.optional-dependencies]
|
||||
test = ["pytest"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue