You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "eugenegujing (via GitHub)" <gi...@apache.org> on 2026/08/19 00:28:23 UTC
[PR] test(workflow-operator): guard visualization output schemas [texera]
eugenegujing opened a new pull request, #7768:
URL: https://github.com/apache/texera/pull/7768
### What changes were proposed in this PR?
The frontend renders a chart by reading a single `html-content` STRING column from a visualization operator's one output port. All 48 Python visualization descriptors re-declare that contract in identical three-line `getOutputSchemas` overrides, but 24 of them never had the method called by any test, and no spec swept the operator registry for the contract as a whole — so a new chart, or an edit to an existing one, could silently ship a schema the frontend cannot render.
This PR adds one new guard spec, `VisualizationOutputSchemaSpec`, instead of 24 per-operator tests. It walks `OperatorMetadataGenerator.operatorTypeMap`, selects the visualization descriptors by package, instantiates each, and asserts the contract, so the next chart operator is covered the moment it is registered. Four tests: a floor assertion (at least 48 swept) so a package rename cannot turn the sweep into a vacuous pass; an assertion that the only visualization-package registrations outside `PythonOperatorDescriptor` are exactly `HtmlVizOpDesc` and `UrlVizOpDesc`, which derive their schemas through `SchemaPropagationFunc` and are covered by their own specs, so a new non-Python visualization operator must be consciously added to the exclusion list; the main per-descriptor sweep asserting exactly one output port whose schema is a single `html-content` STRING attribute, with a per-operator `withClue` for diagnosis; and an assertion that the derived schema is independent of the in
put schemas.
No production code changed; all 48 descriptors satisfy the contract today. The registry-wide-guard shape follows the precedents in the same package, `OutputPortReuseFlagSpec` and `AttributeTypeRuleTargetSpec` (#7249).
### Any related issues, documentation, discussions?
Resolves #7766
### How was this PR tested?
This PR is test-only. The new suite passes locally: `sbt "WorkflowOperator/testOnly *VisualizationOutputSchemaSpec"` runs 4 tests sweeping all 48 descriptors, all green, and `WorkflowOperator/Test/scalafmtCheck` passes. The full `WorkflowOperator/test` suite was also run locally to confirm the new spec introduces no cross-test interference.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Fable 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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(workflow-operator): guard visualization output schemas [texera]
Posted by "aglinxinyuan (via GitHub)" <gi...@apache.org>.
aglinxinyuan merged PR #7768:
URL: https://github.com/apache/texera/pull/7768
--
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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(workflow-operator): guard visualization output schemas [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #7768:
URL: https://github.com/apache/texera/pull/7768#issuecomment-5336010684
<!-- texera-benchmarks-comment -->
## ⚠️ Benchmark changes need a look
🟢 4 better · 🔴 2 worse · ⚪ 9 noise (<±5%) · 0 without baseline
> Compared against main `fb9f4e2` benchmarked on **this same runner**, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.
[Dashboard](https://apache.github.io/texera/dev/bench/) · [Run](https://github.com/apache/texera/actions/runs/32201378135)
| | config | throughput | MB/s | latency | max Δ latest / 7d |
|---|---|---:|---:|---:|---:|
| 🟢 | bs=10 sw=10 sl=64 | 437 | 0.267 | 22,021/29,805/29,805 us | 🟢 -8.6% / 🔴 +83.8% |
| 🟢 | bs=100 sw=10 sl=64 | 941 | 0.574 | 101,187/147,906/147,906 us | 🟢 -6.8% / 🔴 +33.2% |
| 🔴 | bs=1000 sw=10 sl=64 | 1,087 | 0.663 | 922,583/993,944/993,944 us | 🔴 +5.3% / 🟢 +9.3% |
<details><summary>Baseline details</summary>
Latest main `fb9f4e2` from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---:|---:|---:|---:|---:|
| bs=10 sw=10 sl=64 | throughput | 437 tuples/sec | 443 tuples/sec | 743.3 tuples/sec | -1.4% | -41.2% |
| bs=10 sw=10 sl=64 | MB/s | 0.267 MB/s | 0.27 MB/s | 0.454 MB/s | -1.1% | -41.1% |
| bs=10 sw=10 sl=64 | p50 | 22,021 us | 21,359 us | 13,204 us | +3.1% | +66.8% |
| bs=10 sw=10 sl=64 | p95 | 29,805 us | 32,592 us | 16,220 us | -8.6% | +83.8% |
| bs=10 sw=10 sl=64 | p99 | 29,805 us | 32,592 us | 19,867 us | -8.6% | +50.0% |
| bs=100 sw=10 sl=64 | throughput | 941 tuples/sec | 927 tuples/sec | 959.52 tuples/sec | +1.5% | -1.9% |
| bs=100 sw=10 sl=64 | MB/s | 0.574 MB/s | 0.566 MB/s | 0.586 MB/s | +1.4% | -2.0% |
| bs=100 sw=10 sl=64 | p50 | 101,187 us | 102,217 us | 103,974 us | -1.0% | -2.7% |
| bs=100 sw=10 sl=64 | p95 | 147,906 us | 158,632 us | 111,036 us | -6.8% | +33.2% |
| bs=100 sw=10 sl=64 | p99 | 147,906 us | 158,632 us | 118,982 us | -6.8% | +24.3% |
| bs=1000 sw=10 sl=64 | throughput | 1,087 tuples/sec | 1,105 tuples/sec | 994.68 tuples/sec | -1.6% | +9.3% |
| bs=1000 sw=10 sl=64 | MB/s | 0.663 MB/s | 0.674 MB/s | 0.607 MB/s | -1.6% | +9.2% |
| bs=1000 sw=10 sl=64 | p50 | 922,583 us | 907,118 us | 1,011,206 us | +1.7% | -8.8% |
| bs=1000 sw=10 sl=64 | p95 | 993,944 us | 943,599 us | 1,055,603 us | +5.3% | -5.8% |
| bs=1000 sw=10 sl=64 | p99 | 993,944 us | 943,599 us | 1,084,808 us | +5.3% | -8.4% |
</details>
<details><summary>Raw CSV</summary>
```csv
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,457.61,200,128000,437,0.267,22020.89,29805.01,29805.01
1,100,10,64,20,2126.37,2000,1280000,941,0.574,101187.16,147905.69,147905.69
2,1000,10,64,20,18402.82,20000,12800000,1087,0.663,922582.76,993943.62,993943.62
```
</details>
--
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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(workflow-operator): guard visualization output schemas [texera]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #7768:
URL: https://github.com/apache/texera/pull/7768#issuecomment-5335993744
## [Codecov](https://app.codecov.io/gh/apache/texera/pull/7768?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 91.02%. Comparing base ([`fb9f4e2`](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`c4c6d15`](https://app.codecov.io/gh/apache/texera/commit/c4c6d156b13a47ba89755cef8d9ce7f5e83529d9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## main #7768 +/- ##
=========================================
Coverage 91.02% 91.02%
Complexity 4454 4454
=========================================
Files 1174 1174
Lines 47146 47146
Branches 5287 5287
=========================================
Hits 42915 42915
Misses 2551 2551
Partials 1680 1680
```
| [Flag](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | *Carryforward flag |
|---|---|---|---|
| [access-control-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `81.00% <ø> (ø)` | | |
| [agent-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `98.62% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [amber](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `87.45% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [computing-unit-managing-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `73.67% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [config-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `86.73% <ø> (ø)` | | |
| [file-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `68.90% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [frontend](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `92.59% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [notebook-migration-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `83.74% <ø> (ø)` | | |
| [pyamber](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `97.57% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [workflow-compiling-service](https://app.codecov.io/gh/apache/texera/pull/7768/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `77.19% <ø> (ø)` | | Carriedforward from [fb9f4e2](https://app.codecov.io/gh/apache/texera/commit/fb9f4e26d8680ebeb3da28881b27707645d59acd?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
*This pull request uses carry forward flags. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to find out more.
</details>
[:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/texera/pull/7768?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] test(workflow-operator): guard visualization output schemas [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #7768:
URL: https://github.com/apache/texera/pull/7768#issuecomment-5335974439
<!-- texera-reviewer-suggestion -->
### Automated Reviewer Suggestions
Based on the `git blame` history of the changed files, we recommend the following reviewers:
- No candidates found from `git blame` history.
--
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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org