Gunnar

nordisk/edda

crates/dwarves-runa/Cargo.toml

[package]
name = "dwarves-runa"
version = "0.3.0"
edition = "2021"
# NOTE: the crates.io name `runa` is owned by a stranger (onlymaresia, stuck at
# 0.1.1), so this forge-owned crate publishes as `dwarves-runa` (Rust identifier
# `dwarves_runa`). It is still *runa* in prose, in the `*.runa.ron` file format
# and in the forge's step vocabulary — only the package identity is namespaced.
description = "The runes the dwarves' forge reads: the authoring layer for the dwarves CI/CD forge. Strongly-typed, RON-authored `Pipeline / Stage / Step / Trigger` pipelines with a step catalog spanning a normal build→test→deploy plus the common Tier-B/C steps (CargoBuild, Nextest, Lint, SecurityScan, Build-variant, ContainerBuild, PushImage, Sbom, HolgerPackage, ReleaseDoctor, PublishCrates, Deploy, ApprovalGate, Notify, ProvisionTestEnv, Xtask, …) and a load-time validator (DAG cycle-check over stage `needs`, reusing funnel-core's topo engine — no re-implemented Tarjan/Kahn). Pipelines read like config, validate like Rust, and drop to compiled `xtask` for real logic. Consumed by dwarves (the runner), xtask, and later the visual builder."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["ci", "cd", "pipeline", "ron", "dag"]
categories = ["development-tools"]
exclude = ["/.nornir/"]

[dependencies]
serde = { version = "1", features = ["derive"] }
ron = "0.12"
thiserror = "2"
# REUSE (Law #1): the topo / cycle-detection engine. `dwarves-runa` does NOT re-implement
# Tarjan/Kahn — the stage-`needs` DAG is validated through funnel-core's
# `PlanDag::topo_order` (petgraph toposort under the hood). funnel-core is the
# pure workflow-DAG core shared across the nordisk funnel; here it is the neutral
# string-id DAG cycle checker.
funnel-core = { path = "../../../funnel-core", version = "0.1.3" }

[dev-dependencies]
serde_json = "1"