kz930 opened a new pull request, #7984:
URL: https://github.com/apache/texera/pull/7984

   ### What changes were proposed in this PR?
   
   The Tree Plot operator's generated template no longer imports igraph. It 
computes its
   own top-down layout instead: depth picks the row, a leaf takes the next free 
column,
   and a parent sits centred over its children. Roots are the nodes that never 
appear as
   a child, and anything unreachable from a root is rooted where it is, so a 
forest, a
   cycle, a shared child and a self-loop all place every node exactly once. The 
walk is
   iterative, so a deep tree cannot hit the recursion limit.
   
   igraph was used for four things: `Graph.TupleList`, `vs['name']`, 
`layout('rt')` and
   `get_edgelist()`. Only the layout did real work, and `EdgeSeq` was imported 
but never
   used. No new dependency is added.
   
   The layout guard is kept and now reads `Tree layout failed`. It earns its 
keep: a cell
   like `[[1,2], 3]` parses to an unhashable node, which now renders the error 
page
   instead of failing the operator.
   
   The tree keeps its shape. Spacing is uniform per leaf rather than 
Reingold-Tilford's
   contour packing, so an unbalanced tree draws slightly wider than before.
   
   ### Any related issues, documentation, discussions?
   
   Closes #7969. Supersedes #7970, which declared igraph and was closed because 
GPL v2 is
   Category X under the ASF 3rd party license policy.
   
   ### How was this PR tested?
   
   `TreePlotOpDescSpec` passes, including a new test that the generated code 
does not name
   igraph. I also dumped the generated template and ran it against a four-level 
tree with
   igraph made unimportable, and it rendered the plot rather than an error 
page. The root
   landed at 2.375 over children at 1.25 and 3.5, their children at 0.5, 2, 3 
and 4, and
   the deepest pair at 0 and 1. I checked a chain, a forest, a cycle, a 
diamond, a
   self-loop and duplicate edges separately, and a 200k-node chain lays out in 
0.29s.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 5)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to