Skip to content

v0.29.1

Choose a tag to compare

@TheZacillac TheZacillac released this 28 May 22:41
· 140 commits to main since this release

Maintenance release: a propagation determinism fix and a large internal refactor of the output formatters. No public API or wire-format changes.

Fixes

  • Deterministic propagation consensus. Consensus selection (build_nameserver_consensus and analyze_results) previously resolved ties on HashMap iteration order, so an even split between two value sets could flip which servers were reported as inconsistent from run to run. Ties now break toward the lexicographically smallest value set, making output stable for identical input.

Internal

  • Output formatters decomposed. The single-file human.rs (3843 lines) and markdown.rs (2054 lines) monoliths are split into output/human/ and output/markdown/ submodules — one file per concern (whois, rdap, dns, propagation, lookup, status, domain_info, diff) — mirroring the dns/propagation/ layout. Each mod.rs keeps the shared helpers and a thin impl OutputFormatter that delegates to per-submodule inherent methods. Behavior is identical; every resulting file is under 1k lines.