Skip to content

feat(ci): port status visibility and consistent component recursion#409

Open
Chaffelson wants to merge 1 commit into
mainfrom
feature/ci-port-status-visibility
Open

feat(ci): port status visibility and consistent component recursion#409
Chaffelson wants to merge 1 commit into
mainfrom
feature/ci-port-status-visibility

Conversation

@Chaffelson

Copy link
Copy Markdown
Owner

Summary

  • get_status now reports input/output port counts (total, running, stopped, invalid) and derives processor counts from enumeration rather than the PG aggregate component count — so invalid ports are no longer mis-reported as invalid processors.
  • New canvas.list_invalid_ports (parallel to list_invalid_processors) returning ports with validation errors across a PG and its descendants.
  • verify_config gains a verify_ports option (default True) and a new port_results key; ports with validation errors now fail verification.
  • verify_config controller verification now recurses into descendant PGs (descendants=True), consistent with processor/port verification, while still excluding ancestor-inherited services.

Motivation

Invalid ports (e.g. an output port with no outgoing connection) cause FlowFiles to queue indefinitely with no error, no bulletin, and — previously — no visibility in get_status or verify_config. This makes that state visible and reported consistently across component types.

Behaviour change

  • get_status invalid_processors/running_processors values are now processor-accurate (previously included all component types). New *_input_ports / *_output_ports fields are additive.
  • verify_config now fails when a controller in a descendant PG is invalid, where it previously only checked the target PG.

Test plan

  • make test NIPYAPI_PROFILE=single-user — full suite green (port/processor/controller paths; 21 git-registry errors are unrelated, require GH_REGISTRY_TOKEN)
  • New tests: test_list_invalid_ports, test_verify_config_with_invalid_port, test_get_status_port_counts, test_verify_config_includes_descendant_controllers
  • make pre-commit clean
  • Verified against a live runtime with a known-bad flow (3 unconnected output ports surfaced correctly)

.... Generated with Cortex Code

get_status now reports input/output port counts (total, running, stopped,
invalid) and derives processor counts from enumeration rather than the PG
aggregate, so invalid ports are no longer mis-reported as invalid processors.

Adds canvas.list_invalid_ports (parallel to list_invalid_processors) and a
verify_ports option to verify_config with a new port_results key. verify_config
controller verification now recurses into descendant PGs (descendants=True),
consistent with processor and port verification, while still excluding
ancestor-inherited services.

Also reworks the developer release guide into separate Patch and Full release
workflows.

.... Generated with [Cortex Code](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code)

Co-Authored-By: Cortex Code <noreply@snowflake.com>
@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.93%. Comparing base (0bd2d46) to head (7bedd53).

Files with missing lines Patch % Lines
nipyapi/ci/verify_config.py 85.71% 2 Missing ⚠️
nipyapi/ci/get_status.py 96.29% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #409      +/-   ##
==========================================
+ Coverage   76.84%   76.93%   +0.09%     
==========================================
  Files          41       41              
  Lines        4832     4869      +37     
==========================================
+ Hits         3713     3746      +33     
- Misses       1119     1123       +4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

1 participant