The GitHub Actions job "Required Checks" on texera.git/main has failed.
Run started by GitHub user github-merge-queue[bot] (triggered by 
github-merge-queue[bot]).

Head commit for run:
6daa84641094185690ec1d721f91de29635ebd93 / Kary Zheng 
<[email protected]>
feat(histogram): declare Distribution Type's values as a schema enum (#7259)

### What changes were proposed in this PR?

`marginal` — the **Distribution Type** field — was a plain string whose
legal values existed only in its description, so the form rendered a
free-text box. It now declares them as a schema `enum`: the empty
string, which is the value saved Histograms already hold and which code
generation reads as "no marginal plot", plus `rug`, `box`, `violin` and
`histogram`. The property editor validates a stored property against
this enum, so the empty value has to stay in the list rather than be
replaced by a `none` sentinel.

The enum exposes `histogram` too. `px.histogram` accepts it and the
operator always could, but the description named only three, so it was
unreachable in practice.

### Why are the changes needed?

The value is interpolated straight into `px.histogram(...,
marginal=<value>)`, so a typo reaches plotly and fails inside it with
`AttributeError: 'NoneType' object has no attribute 'constructor'` — an
error that mentions nothing the user typed.

### Any related issues, documentation, discussions?

Closes #7209

### How was this PR tested?

`HistogramChartOpDescSpec`, 7 tests. Two are new: one asserts the
generated schema's `marginal` enum is exactly the five values, empty
included, since that is what the property editor validates a stored
value against; the other deserializes a Histogram saved with `marginal:
""` and asserts the rendered figure carries no `marginal=` argument.
`WorkflowOperator/compile`, `scalafmtCheckAll` and `scalafixAll --check`
are clean.

### Does this PR introduce any user-facing change?

Yes. Distribution Type becomes a dropdown. Saved workflows are
unaffected: the stored value, empty or one of `rug`, `box` and `violin`,
stays legal and keeps its meaning.

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 5)

---------

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>

Report URL: https://github.com/apache/texera/actions/runs/31211081555

With regards,
GitHub Actions via GitBox

Reply via email to