Releases: networmix/NetGraph-Core
Releases · networmix/NetGraph-Core
v0.4.1
v0.4.0
[0.4.0] - 2026-02-17
Added
- Python 3.14: Add support for Python 3.14 in CI tests, wheel builds, and packaging.
- Free Threading: Declare free-threading compatibility (
py::mod_gil_not_used) for Python 3.13t/3.14t builds. Build and publish free-threaded (cp314t) wheels.
Changed
- CI: Upgrade cibuildwheel from v2 to v3.3.1 for Python 3.14 wheel builds.
Fixed
- Python Bindings: Fix object leak on Python 3.14 caused by pybind11 not clearing managed dicts during deallocation. Replace
dynamic_attr+_graph_refpattern withpy::keep_alivefor FlowState, FlowGraph, and FlowPolicy.
v0.3.6
[0.3.6] - 2026-02-17
Fixed
- Python Bindings: Fix build failure with pybind11 3.x typed tuples by adding explicit
-> py::tuplereturn type on thespflambda.
Changed
- CI: Add CentOS Stream 9 build and test jobs.
[0.3.5] - 2026-02-08
Fixed
- K-Shortest Paths: Fix off-by-one in Yen's prefix comparison and PredDAG CSR fill order. Paths visiting nodes out of numerical order (e.g.,
[0,3,2]) previously produced malformed predecessor DAGs.
v0.3.4
v0.3.2
[0.3.2] - 2025-12-12
Fixed
- Profiling: Fix ODR violation that caused empty stats when profiling was enabled. Moved
profiling_enabled()andProfilingStats::instance()definitions from inline header toprofiling.cppto ensure a single instance when static library is linked into the Python module.
v0.3.1
[0.3.1] - 2025-12-08
Added
- Profiling: Runtime profiling infrastructure for C++ hot paths (
shortest_paths_core,place_demand,place_on_dag).- Enable via
NGRAPH_CORE_PROFILE=1environment variable. - Python API:
profiling_enabled(),profiling_dump(),profiling_reset(). - Minimal overhead when disabled (single static bool check per instrumented scope).
- ~2% overhead when enabled.
- Enable via
Changed
- Build: Default optimizations: LTO, loop unrolling,
-fno-math-errno. Addmake install-nativefor CPU-specific builds.
v0.3.0
v0.2.3
[0.2.3] - 2025-12-06
Changed
- Python bindings:
StrictMultiDiGraph.from_arraysnow requiresext_edge_idsso callers always supply stable external edge identifiers. - FlowPolicy: construction is now config-only (via
FlowPolicyConfig), dropping the parameter-heavy constructor.
Fixed
- FlowGraph:
get_flow_pathnow filters only below-kEpsilonnoise so paths are reconstructed even when per-edge allocations are smaller thankMinFlow.