You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "kz930 (via GitHub)" <gi...@apache.org> on 2026/08/26 02:58:00 UTC
[PR] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
kz930 opened a new pull request, #7982:
URL: https://github.com/apache/texera/pull/7982
### What changes were proposed in this PR?
An Advanced trainer emits one keyword argument per row of its Parameter Setting table. Nothing stopped two rows from naming the same parameter, and two rows naming one parameter emitted that keyword twice, which Python rejects while it compiles the operator, before any of it runs. What the user saw was a SyntaxError pointing at a line of generated code rather than at the row they had added.
The row is now refused in two places. In the form, a row whose parameter is already set by another row is marked invalid and says so under the dropdown, alongside the validators the property editor already builds from the schema. The constraint is declared on the field itself, as a `uniqueAmongRows` key the operator's schema carries, rather than by naming the operator in the frontend, so any repeated section that needs the same rule can ask for it. `uniqueItems` is not the constraint that was missing: two rows naming one parameter differ in their other fields, so they are distinct items while still colliding on the keyword.
The descriptor refuses the same thing while the workflow compiles. That is what names the operator and the parameter in the error, and it also covers a workflow submitted through the API, which never passes through the form.
### Any related issues, documentation, discussions?
Closes #7952
### How was this PR tested?
New unit tests on both sides. On the descriptor, two rows naming one parameter must be refused with the parameter named, including the mixed case where one row reads a value and the other reads a column, and two rows naming different parameters must still emit both. On the frontend, the property editor must attach the validator to a field the schema marks unique, reject a value another row already holds, accept one no row holds, and produce the message shown to the user.
The three `sklearnAdvanced.base` Scala specs pass (17 tests), as does the wider `machineLearning` package (54 tests), with `scalafmtCheckAll` and scalafix clean. `operator-property-edit-frame.component.spec.ts` passes at 237 tests.
I also dumped the generated JSON schema for the SVC trainer to confirm the new key lands on the `parameter` property next to its enum of parameter names, which is what the frontend reads.
### 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: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "kz930 (via GitHub)" <gi...@apache.org>.
kz930 closed pull request #7982: feat(operator): refuse two hyperparameter rows that set one parameter
URL: https://github.com/apache/texera/pull/7982
--
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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5419971491
## [Codecov](https://app.codecov.io/gh/apache/texera/pull/7982?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 93.14%. Comparing base ([`7fbf64e`](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`496adf4`](https://app.codecov.io/gh/apache/texera/commit/496adf4bd35730a4db749d9977e8ee1468dee58d?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 #7982 +/- ##
=========================================
Coverage 93.14% 93.14%
Complexity 4654 4654
=========================================
Files 1174 1174
Lines 47580 47580
Branches 5316 5316
=========================================
Hits 44318 44318
Misses 1785 1785
Partials 1477 1477
```
| [Flag](https://app.codecov.io/gh/apache/texera/pull/7982/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/7982/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/7982/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `99.32% <ø> (ø)` | | Carriedforward from [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `89.23% <ø> (ø)` | | Carriedforward from [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/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 [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/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/7982/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `85.56% <ø> (ø)` | | Carriedforward from [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `95.65% <ø> (ø)` | | Carriedforward from [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `79.31% <ø> (ø)` | | |
| [pyamber](https://app.codecov.io/gh/apache/texera/pull/7982/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 [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982/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 [7fbf64e](https://app.codecov.io/gh/apache/texera/commit/7fbf64e3da96a271245c3be47a2587d5513dee6f?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/7982?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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "kz930 (via GitHub)" <gi...@apache.org>.
kz930 commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5459068104
Fixed. Any change to a row now rechecks every row in that column, so the row left behind is cleared. This also covers the other direction, which was broken too: a row changed onto a parameter another row holds now marks that row. The new tests render two rows and type into one.
--
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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "kz930 (via GitHub)" <gi...@apache.org>.
kz930 commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5421928950
/request-review @aglinxinyuan @carloea2
--
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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "kz930 (via GitHub)" <gi...@apache.org>.
kz930 commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5516620453
Superseded by #8350 for the frontend half and #8348 for the operator half, each grouped with the rest of its family. Closing in favour of those.
--
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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5419950115
<!-- texera-reviewer-suggestion -->
### Automated Reviewer Suggestions
Based on the `git blame` history of the changed files, we recommend the following reviewers:
- **Contributors with relevant context:** `@carloea2`, `@Ma77Ball`, `@mengw15`
You can notify them by mentioning `@carloea2`, `@Ma77Ball`, `@mengw15` in a comment.
--
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] feat(operator): refuse two hyperparameter rows that set one parameter [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #7982:
URL: https://github.com/apache/texera/pull/7982#issuecomment-5419988255
<!-- texera-benchmarks-comment -->
## ⚠️ Benchmark changes need a look
🟢 4 better · 🔴 1 worse · ⚪ 10 noise (<±5%) · 0 without baseline
> Compared against main `7fbf64e` 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/32924666140)
| | config | throughput | MB/s | latency | max Δ latest / 7d |
|---|---|---:|---:|---:|---:|
| 🔴 | bs=10 sw=10 sl=64 | 424 | 0.259 | 24,712/27,558/27,558 us | 🟢 -25.5% / 🔴 +126.6% |
| 🟢 | bs=100 sw=10 sl=64 | 945 | 0.577 | 105,006/140,386/140,386 us | 🟢 -9.5% / 🔴 +53.3% |
| ⚪ | bs=1000 sw=10 sl=64 | 1,117 | 0.682 | 891,490/950,868/950,868 us | ⚪ within ±5% / 🔴 -8.5% |
<details><summary>Baseline details</summary>
Latest main `7fbf64e` from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---:|---:|---:|---:|---:|
| bs=10 sw=10 sl=64 | throughput | 424 tuples/sec | 445 tuples/sec | 908.02 tuples/sec | -4.7% | -53.3% |
| bs=10 sw=10 sl=64 | MB/s | 0.259 MB/s | 0.272 MB/s | 0.554 MB/s | -4.8% | -53.3% |
| bs=10 sw=10 sl=64 | p50 | 24,712 us | 19,774 us | 10,907 us | +25.0% | +126.6% |
| bs=10 sw=10 sl=64 | p95 | 27,558 us | 36,990 us | 13,604 us | -25.5% | +102.6% |
| bs=10 sw=10 sl=64 | p99 | 27,558 us | 36,990 us | 16,697 us | -25.5% | +65.0% |
| bs=100 sw=10 sl=64 | throughput | 945 tuples/sec | 957 tuples/sec | 1,188 tuples/sec | -1.3% | -20.4% |
| bs=100 sw=10 sl=64 | MB/s | 0.577 MB/s | 0.584 MB/s | 0.725 MB/s | -1.2% | -20.4% |
| bs=100 sw=10 sl=64 | p50 | 105,006 us | 100,625 us | 85,003 us | +4.4% | +23.5% |
| bs=100 sw=10 sl=64 | p95 | 140,386 us | 155,161 us | 91,599 us | -9.5% | +53.3% |
| bs=100 sw=10 sl=64 | p99 | 140,386 us | 155,161 us | 99,202 us | -9.5% | +41.5% |
| bs=1000 sw=10 sl=64 | throughput | 1,117 tuples/sec | 1,119 tuples/sec | 1,221 tuples/sec | -0.2% | -8.5% |
| bs=1000 sw=10 sl=64 | MB/s | 0.682 MB/s | 0.683 MB/s | 0.745 MB/s | -0.1% | -8.5% |
| bs=1000 sw=10 sl=64 | p50 | 891,490 us | 893,439 us | 837,593 us | -0.2% | +6.4% |
| bs=1000 sw=10 sl=64 | p95 | 950,868 us | 957,906 us | 881,015 us | -0.7% | +7.9% |
| bs=1000 sw=10 sl=64 | p99 | 950,868 us | 957,906 us | 915,550 us | -0.7% | +3.9% |
</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,471.28,200,128000,424,0.259,24712.42,27557.89,27557.89
1,100,10,64,20,2117.16,2000,1280000,945,0.577,105006.46,140386.10,140386.10
2,1000,10,64,20,17897.97,20000,12800000,1117,0.682,891490.25,950868.03,950868.03
```
</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