Skip to content

Conversation

@networmix
Copy link
Owner

@networmix networmix commented Jan 15, 2026

Note

BREAKING DSL refinements

  • Rename keys: adjacencylinks, traffic_matrix_setdemands, failure_policy_setfailures, sinktarget, groupsnodes (with count/template), overrides→node_rules/link_rules
  • Flatten link properties (remove link_params); link_countcount; any_directionbidirectional
  • Expansion restructure: expand_vars/expansion_modeexpand.vars/expand.mode
  • Failure/risk terms: entity_scopescope, rule_typemode, fail_risk_groupsexpand_groups, fail_risk_group_childrenexpand_children; add optional path filters and link_match
  • Operators: any_value/no_valueexists/not_exists
  • New support for nested inline nodes; clarified processing order and selection-model defaults

Documentation and tooling

  • Fully updates DSL reference, examples, tutorials, and SKILL guides to new syntax
  • README rewritten to align with DSL and features; CHANGELOG adds 0.17.0 noting breaking changes; add AGPL LICENSE
  • Pre-commit: include netgraph-core; minor docs script/comment tweaks

Written by Cursor Bugbot for commit fc60879. This will update automatically on new commits. Configure here.

Copilot AI review requested due to automatic review settings January 15, 2026 15:11
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a comprehensive DSL refinement, modernizing field names and simplifying the schema across the codebase. The changes focus on improving consistency and clarity in the configuration language.

Changes:

  • Renamed DSL fields for consistency: operatorop, any_value/no_valueexists/not_exists, sinktarget, demandvolume, step_typetype, and others
  • Flattened nested structures by removing link_params wrapper and merging properties directly into link definitions
  • Updated field names in failure policies: entity_scopescope, rule_typemode, fail_risk_groupsexpand_groups
  • Renamed top-level YAML sections: traffic_matrix_setdemands, failure_policy_setfailures, groups/adjacencynodes/links

Reviewed changes

Copilot reviewed 89 out of 125 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/dsl/test_selectors.py Updated operator field from operator to op in Condition objects; renamed any_value/no_value to exists/not_exists
tests/dsl/test_rule_selectors.py New test file validating enhanced rule selector support with op field
tests/dsl/test_risk_group_expansion.py Updated DSL field names: groupsnodes, node_countcount, adjacencylinks, node_overridesnode_rules
tests/dsl/test_parse_helpers.py Renamed test functions and updated to use check_link_keys instead of separate check_adjacency_keys and check_link_params
tests/dsl/test_expansion.py Updated ExpansionSpec fields: expand_varsvars, expansion_modemode
tests/dsl/test_examples.py Comprehensive DSL updates across example scenarios with field renames
tests/dsl/test_dsl_features_validation.py New validation tests for DSL features using updated field names
tests/dsl/test_dot_notation_conditions.py Updated condition operators to use op field and exists/not_exists
tests/conftest.py Added shared network fixtures (diamond, asymmetric_diamond, multi_tier)
tests/cli/test_cli.py Updated workflow step type field and demand fields
tests/analysis/test_placement.py Renamed sinktarget, demandvolume, flow_policy_configflow_policy; moved helper function to module level
tests/analysis/test_paths.py Updated condition operator field to op
tests/analysis/test_maxflow_cost_distribution.py Replaced network factory with shared fixture from conftest
tests/analysis/test_maxflow_cache.py Updated to use shared network factory from conftest
tests/analysis/test_maxflow_api.py Updated comment about graph builder
tests/analysis/test_functions_details.py Updated demand field names
tests/analysis/test_functions.py Renamed demand fields and added test for unknown parameter rejection
tests/analysis/test_failure_manager_integration.py Updated failure rule fields: entity_scopescope, rule_typemode
tests/analysis/test_failure_manager.py Updated failure rule and condition field names
tests/analysis/test_demand.py Renamed TrafficDemand fields throughout tests
scenarios/square_mesh.yaml Updated scenario with new DSL field names
scenarios/readme_example.yml New example scenario demonstrating updated DSL
scenarios/nsfnet.yaml Updated large scenario file with flattened link structure
scenarios/backbone_clos.yml Updated with new DSL field names and flattened structures
pyproject.toml Version bump to 0.17.0
ngraph/workflow/traffic_matrix_placement_step.py Renamed matrix_namedemand_set, updated field references
ngraph/workflow/parse.py Updated step_typetype in workflow parsing
ngraph/workflow/network_stats.py Updated docstring example
ngraph/workflow/maximum_supported_demand_step.py Renamed matrix_namedemand_set with comprehensive updates
ngraph/workflow/max_flow_step.py Renamed sinktarget field
ngraph/workflow/cost_power.py Updated docstring example
ngraph/workflow/build_graph.py Updated docstring and removed outdated comment
ngraph/workflow/base.py Enhanced docstring with improved lifecycle description
ngraph/types/dto.py Updated module docstring
ngraph/schemas/scenario.json Comprehensive JSON schema updates reflecting all DSL changes
ngraph/scenario.py Updated to use DemandSet instead of TrafficMatrixSet, renamed fields
ngraph/results/snapshot.py Updated snapshot building with renamed fields
ngraph/profiling/profiler.py Replaced warning with NotImplementedError for combined profile saving
ngraph/model/path.py Simplified get_sub_path signature by removing unused parameters
ngraph/model/flow/policy_config.py Updated docstring for serialize_policy_preset
ngraph/model/failure/validation.py Updated comment referencing scope field
ngraph/model/failure/policy.py Renamed entity_scopescope, rule_typemode, fail_risk_groupsexpand_groups
ngraph/model/failure/parser.py Updated parser to use new field names and match block structure
ngraph/model/failure/membership.py Added path filtering support, updated field names
ngraph/model/failure/init.py Removed FailureCondition export (now using Condition from selectors)

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@networmix networmix merged commit 6581076 into main Jan 16, 2026
7 checks passed
@networmix networmix deleted the dsl_refine branch January 16, 2026 01:41
@networmix networmix linked an issue Jan 16, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Policy-based attribute assignment with variable expansion

2 participants