fix: argo conditional issue - #3340
Conversation
There was a problem hiding this comment.
some added test cases have issues, will fix those in a bit. The main fix was verified against a separate test-suite.
Greptile SummaryThis bug fix preserves recursively calculated conditional ancestry for nested Argo split-switch nodes instead of overwriting it during the graph-wide traversal.
Confidence Score: 4/5The production fix appears safe to merge, with a non-blocking gap in how directly the regression test verifies the generated Argo dependency. The traversal change preserves the recursively established ancestry needed for nested conditionals, while the only accepted concern is that tests stop at intermediate metadata rather than confirming the final Files Needing Attention: test/unit/test_argo_nested_conditional_join.py
|
| Filename | Overview |
|---|---|
| metaflow/plugins/argo/argo_workflows.py | Preserves nested conditional-parent metadata by avoiding a redundant traversal that previously made dependency semantics graph-order-dependent. |
| test/unit/test_argo_nested_conditional_join.py | Covers parser metadata for nested and simple switches, but does not assert the final Argo dependency expression associated with the regression. |
Reviews (1): Last reviewed commit: "simplify fix" | Re-trigger Greptile
|
|
||
| # Inner branch nodes are conditional | ||
| for name in ("b_sub_a", "b_sub_b"): | ||
| assert name in aw.conditional_nodes, f"{name} should be in conditional_nodes" | ||
|
|
There was a problem hiding this comment.
Assert the emitted dependency expression
This regression test checks intermediate conditional-node metadata but not the generated Argo depends field. As a result, a downstream regression that restores && between mutually exclusive branches can pass these assertions while leaving the deployed join unable to run.
Knowledge Base Used: Argo Workflows plugin
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
PR Type
Issue
Fixes #3334
AI Tool Usage
Claude Code for test cases and fix iteration