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:
53a8b2eda89ee0017f4e4a91247035b6a0bf8daa / Xinyuan Lin <[email protected]>
refactor(workflow-operator): share the chart output contract (#9204)

### What changes were proposed in this PR?
The 48 Python visualization descriptors each restated the same output
contract: a `getOutputSchemas` override returning one `html-content`
STRING column on the single output port, and `producesDataFrame = false`
so the exported script does not print the chart as a leaf DataFrame. A
new trait, `PythonVisualizationOpDesc`, now declares both as `final`
members, and the 48 descriptors extend it. The 41 Plotly charts keep
`with PlotlyStandaloneCode`.

| Surface | Pinned |
| --- | --- |
| output schema | one `html-content` STRING column on the single output
port, independent of the input schemas |
| exported script | not printed as a leaf DataFrame |
| operator metadata | JSON schema and operator info unchanged for all
166 operators |

The trait has no fields, so no JSON schema changes. Because both members
are `final`, a chart that overrides either one no longer compiles.
`VisualizationOutputSchemaSpec` still sweeps every registered chart. It
now also requires every chart except the two Scala map operators,
HtmlViz and UrlViz, to extend the trait, and asserts that
`producesDataFrame()` is false next to the schema.

### Any related issues, documentation, discussions?
Closes #9203.

### How was this PR tested?
- `sbt "WorkflowOperator/test"`: each of its 2,769 tests (295 suites)
has the same result before and after this change, compared test by test
from the JUnit XML reports; the two `VisualizationOutputSchemaSpec`
tests whose assertions grew were renamed and pass. Three tests fail on
main and on this branch alike on the Windows machine used (a locked temp
file in `FileScanSourceOpDescSpec`, a mount path in
`PythonUdfUiParameterSupportSpec`, an exported-script comparison in
`UrlVizOpDescSpec`); none touches the changed code.
- `sbt "WorkflowCompilingService/testOnly
org.apache.texera.amber.translator.*"`: 41 tests pass before and after.
- The JSON schema and operator info of all 166 registered operators,
dumped before and after, are identical.
- Mutation check: making the trait's `producesDataFrame` return true
fails the sweep, and so does pointing one chart (`BarChartOpDesc`) back
at `PythonOperatorDescriptor` with its own correct overrides; overriding
either `final` member in a chart fails to compile.
- `sbt "WorkflowOperator/scalafmtCheck"
"WorkflowOperator/Test/scalafmtCheck" "WorkflowOperator/scalafix
--check" "WorkflowOperator/Test/scalafix --check"`

### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 5.5)

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

With regards,
GitHub Actions via GitBox

Reply via email to