feat(config): add form-view-enabled feature flag, default off - #8029
feat(config): add form-view-enabled feature flag, default off#8029yangzhang75 wants to merge 1 commit into
Conversation
Automated Reviewer SuggestionsBased on the
|
|
/request-review @mengw15 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8029 +/- ##
============================================
+ Coverage 93.14% 93.31% +0.17%
- Complexity 4654 4689 +35
============================================
Files 1174 1179 +5
Lines 47580 47716 +136
Branches 5316 5314 -2
============================================
+ Hits 44318 44526 +208
+ Misses 1785 1738 -47
+ Partials 1477 1452 -25
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds a new GUI feature flag (form-view-enabled, default off) to gate the upcoming Form View feature across the config layer (HOCON → Scala GuiConfig → /api/config/gui JSON) and exposes it in the frontend GUI config typing/mocks.
Changes:
- Add
gui.workflow-workspace.form-view-enabledtogui.confwith an env override and a Scala accessor (GuiConfig.guiWorkflowWorkspaceFormViewEnabled) plus a parsing assertion inGuiConfigSpec. - Expose the flag from
ConfigResource/api/config/guiasformViewEnabled. - Add
formViewEnabledto the frontendGuiConfiginterface andMockGuiConfigServicedefaults.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| common/config/src/main/resources/gui.conf | Introduces form-view-enabled with default false and env override. |
| common/config/src/main/scala/org/apache/texera/common/config/GuiConfig.scala | Adds Scala accessor for the new GUI config key. |
| common/config/src/test/scala/org/apache/texera/common/config/GuiConfigSpec.scala | Adds a regression assertion that the default resolves to false when env override is unset. |
| config-service/src/main/scala/org/apache/texera/service/resource/ConfigResource.scala | Adds formViewEnabled to the /api/config/gui response payload. |
| frontend/src/app/common/type/gui-config.ts | Extends the frontend GUI config type with formViewEnabled. |
| frontend/src/app/common/service/gui-config.service.mock.ts | Updates the frontend GUI config mock defaults to include formViewEnabled. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🔴 | bs=10 sw=10 sl=64 | 377 | 0.23 | 25,895/34,816/34,816 us | 🔴 +14.1% / 🔴 +151.5% |
| 🔴 | bs=100 sw=10 sl=64 | 783 | 0.478 | 126,244/157,550/157,550 us | 🟢 -10.4% / 🔴 +68.2% |
| ⚪ | bs=1000 sw=10 sl=64 | 934 | 0.57 | 1,064,500/1,124,964/1,124,964 us | ⚪ within ±5% / 🔴 +24.6% |
Baseline details
Latest main 57a4230 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 377 tuples/sec | 418 tuples/sec | 894.86 tuples/sec | -9.8% | -57.9% |
| bs=10 sw=10 sl=64 | MB/s | 0.23 MB/s | 0.255 MB/s | 0.546 MB/s | -9.8% | -57.9% |
| bs=10 sw=10 sl=64 | p50 | 25,895 us | 22,697 us | 11,139 us | +14.1% | +132.5% |
| bs=10 sw=10 sl=64 | p95 | 34,816 us | 32,573 us | 13,843 us | +6.9% | +151.5% |
| bs=10 sw=10 sl=64 | p99 | 34,816 us | 32,573 us | 16,839 us | +6.9% | +106.8% |
| bs=100 sw=10 sl=64 | throughput | 783 tuples/sec | 785 tuples/sec | 1,166 tuples/sec | -0.3% | -32.8% |
| bs=100 sw=10 sl=64 | MB/s | 0.478 MB/s | 0.479 MB/s | 0.711 MB/s | -0.2% | -32.8% |
| bs=100 sw=10 sl=64 | p50 | 126,244 us | 118,932 us | 87,509 us | +6.1% | +44.3% |
| bs=100 sw=10 sl=64 | p95 | 157,550 us | 175,791 us | 93,675 us | -10.4% | +68.2% |
| bs=100 sw=10 sl=64 | p99 | 157,550 us | 175,791 us | 102,153 us | -10.4% | +54.2% |
| bs=1000 sw=10 sl=64 | throughput | 934 tuples/sec | 918 tuples/sec | 1,198 tuples/sec | +1.7% | -22.0% |
| bs=1000 sw=10 sl=64 | MB/s | 0.57 MB/s | 0.56 MB/s | 0.731 MB/s | +1.8% | -22.1% |
| bs=1000 sw=10 sl=64 | p50 | 1,064,500 us | 1,086,625 us | 859,766 us | -2.0% | +23.8% |
| bs=1000 sw=10 sl=64 | p95 | 1,124,964 us | 1,181,214 us | 902,897 us | -4.8% | +24.6% |
| bs=1000 sw=10 sl=64 | p99 | 1,124,964 us | 1,181,214 us | 937,957 us | -4.8% | +19.9% |
Raw 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,531.20,200,128000,377,0.230,25894.77,34816.42,34816.42
1,100,10,64,20,2553.72,2000,1280000,783,0.478,126243.96,157549.61,157549.61
2,1000,10,64,20,21404.97,20000,12800000,934,0.570,1064500.04,1124963.96,1124963.96Introduces gui.workflow-workspace.form-view-enabled (default false) plumbed through GuiConfig and ConfigResource to the frontend GuiConfig type and mock, guarded by a GuiConfigSpec assertion. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
a6f179c to
986ea5a
Compare
What changes were proposed in this PR?
Adds a single feature flag
form-view-enabled(default off) that will gate the entire Form View feature, so the rest of the stacked series can merge without exposing an unfinished feature to users.common/config/.../gui.conf:gui.workflow-workspace.form-view-enabled = false(env-overridable)GuiConfig: read it asguiWorkflowWorkspaceFormViewEnabledConfigResource: expose via/api/config/guiasformViewEnabledgui-config.ts+gui-config.service.mock.ts: addformViewEnabledNothing reads the flag yet; it is flipped on only by the final PR in the series.
Any related issues, documentation, discussions?
Closes #8013.
Part of #8011 — first of a stacked series of 16 PRs (1/16)
How was this PR tested?
GuiConfigSpecasserts the flag parses;ng buildand the existing frontend test suite pass. No behavior change — nothing consumes the flag yet.Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus)