Skip to content

Releases: networmix/NetGraph

v0.21.0

26 Mar 00:57

Choose a tag to compare

[0.21.0] - 2026-03-26

Fixed

  • Risk group scoped failures now produce correct exclusions; compute_exclusions passes flattened attribute dicts to policy matching instead of raw RiskGroup objects

Changed

  • Relicensed from BSD-3-Clause to MIT

Added

  • Cached failure-rule candidate pools in FailureManager, avoiding repeated condition matching across Monte Carlo iterations
  • Cached risk group membership index for O(1) node/link exclusion lookup on risk group failure

v0.20.0

26 Feb 01:19

Choose a tag to compare

[0.20.0] - 2026-02-26

Changed

  • Relicensed from GPL-3.0-or-later to BSD-3-Clause

v0.19.0

18 Feb 11:40

Choose a tag to compare

[0.19.0] - 2026-02-18

Changed

  • Relicensed from AGPL-3.0-or-later to GPL-3.0-or-later

v0.18.0

17 Feb 11:39

Choose a tag to compare

[0.18.0] - 2026-02-17

Added

  • Python 3.14 support, including free-threaded (no-GIL) builds in CI

v0.17.4

08 Feb 18:51

Choose a tag to compare

[0.17.4] - 2026-02-08

Fixed

  • Single shared RNG per apply_failures call, fixing correlated-seed bug across rules
  • Bracket-exhaustion edge case in MSD binary search when all probed alphas are feasible

Removed

  • seeds_per_alpha MSD parameter (placement is deterministic)
  • SeedManager.create_random_state() and seed_global_random() (unused)

v0.17.3

02 Feb 23:34

Choose a tag to compare

[0.17.3] - 2026-02-02

Fixed

  • Link path filter now uses deterministic {source}|{target} instead of full link ID

v0.17.2

02 Feb 19:39

Choose a tag to compare

[0.17.2] - 2026-02-02

Changed

  • Version management simplified

v0.17.1

16 Jan 03:32

Choose a tag to compare

[0.17.1] - 2026-01-16

Fixed

  • DSL skill documentation aligned with implementation; removed unused demand_placed schema field

v0.17.0

16 Jan 01:47
6581076

Choose a tag to compare

[0.17.0] - 2026-01-10
Changed
BREAKING: DSL syntax refinement with renamed fields and restructured expansion blocks; see updated DSL reference

v0.16.0

22 Dec 11:22
6ee4620

Choose a tag to compare

[0.16.0] - 2025-12-21

Changed

  • Module reorganization: ngraph.exec split into ngraph.analysis (runtime analysis) and ngraph.model (data structures); public API unchanged via re-exports
  • Expanded public API: TrafficDemand, FlowPolicyPreset, Scenario, NetworkExplorer, and placement functions now exported from top-level modules
  • Placement analysis: Extracted SPF caching and demand placement logic into ngraph.analysis.placement module with place_demands() and PlacementResult

Added

  • ngraph.model.demand subpackage: TrafficDemand and builder functions
  • ngraph.model.flow subpackage: FlowPolicyPreset and policy configuration
  • ngraph.types exports: Mode, FlowPlacement, EdgeSelect, EdgeRef, MaxFlowResult

[0.15.0] - 2025-12-21

Added

  • Dynamic risk group creation: membership rules auto-assign entities by attribute matching; generate blocks create groups from unique attribute values
  • Risk group validation: Undefined references and circular hierarchies detected at load time
  • Dot-notation in conditions: attr field supports nested paths (e.g., hardware.vendor)

Changed

  • match.logic defaults now context-aware: "or" for adjacency/demands, "and" for membership rules