facett-cicd/Cargo.toml
[package]
name = "facett-cicd"
description = "facett — CI/CD forge panel: a pipeline roster (name · trigger · last status), a selected pipeline's run history + per-stage breakdown, and a live-run detail (steps + log tail); backend-agnostic (no dwarves/nornir deps)"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
[features]
# L4: functional-status emitter passthrough (see facett-core). No-op in release.
testmatrix = ["facett-core/testmatrix"]
[dependencies]
facett-core = { path = "../facett-core", version = "0.3.0" }
# The shared status chip/verdict widget (pass/fail/running colouring on the active
# theme) — reused so the forge doesn't reinvent status colours.
facett-stat = { path = "../facett-stat", version = "0.2.0" }
egui = { workspace = true }
# FC-3: the observable `CicdModel` derives Serialize/Deserialize so the
# `facett_core::Elm` contract round-trips it and the headless harness snapshots it.
serde = { version = "1", features = ["derive"] }
serde_json = { workspace = true }
[dev-dependencies]
# The reusable native+wasm demo HOST — `cicd_panel` mounts the forge view as a
# Codeberg-Pages web demo and a native window from one source (facett-demo/README).
facett-wasm-demo = { path = "../facett-wasm-demo"}
# Native-only host dep: the native eframe the `cicd_panel` demo names, on the WGPU
# backend (LAW #4). Target-gated so the wasm `--example` build never reaches it —
# eframe's plain `wgpu` feature pulls `egui-wgpu/default` → `wgpu/webgl`, and features
# unify across targets, so ungating it would drop the dead WebGL2 backend into wasm.
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
# `wgpu_no_default_features`, NOT `wgpu` (LAW 4 / GFX_V2 Decision 0). eframe's plain
# `wgpu` feature expands to `egui-wgpu/default` -> `wgpu/default` -> `wgpu-hal/default`
# -> **glow**, the GL backend this constellation dropped. Cargo features are additive
# and unify across the whole graph, so one DEV dependency spelling it this way turns the
# GL backend on for every crate here, normal edges included. Backends come from the
# workspace `wgpu` entry.
eframe = { version = "0.36", default-features = false, features = ["default_fonts", "wgpu_no_default_features", "wayland", "x11"] }
# `cicd_panel` needs `wasm-bindgen` for its `#[wasm_bindgen(start)]` web entry.
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
wasm-bindgen = "0.2"
[[example]]
name = "cicd_panel"
path = "examples/cicd_panel.rs"