Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/edda

crates/nornir-release/src/lib.rs

//! **nornir-release** — the warehouse-free release detectors, lifted out of nornir
//! so the release *command* can live in dwarves while the shared logic lives in
//! exactly ONE place (Law #1). Today it holds the **source-drift** detector
//! (`can_skip_republish` / `assess`): decide whether a crate's source actually
//! changed since its published version, so a release skips unchanged crates.
//!
//! Deliberately std-only (no nornir warehouse dep — a leaf). The warehouse-coupled
//! parts of release (doctor/gate/preflight) STAY in nornir: they read nornir's
//! Iceberg warehouse, so moving them to a leaf would invert the dep graph
//! (edda → nornir = cycle). Those move to dwarves as a *command* over nornir's
//! warehouse via gRPC, not as an engine move.
//!
//! It also holds the pure **publish-wave** planner ([`waves`]): the deps-first,
//! parallel-publish order of a workspace, computed with zero I/O — the `logic`
//! half of the release engine that a third consumer (dwarves) wants as-is, while
//! the `cargo metadata` read and the `cargo publish` walk stay in the conductor.
pub mod selftest;
pub mod source_drift;
pub mod waves;