Yicong-Huang opened a new pull request, #5019: URL: https://github.com/apache/texera/pull/5019
### What changes were proposed in this PR? Add `WorkflowCompilerSpec` in amber with 6 direct unit cases pinning the compiler's contract: - physical-plan shape: each logical op produces ≥1 physical op; logical link translates to a physical link between the corresponding physical op ids - storage-port collection: terminal logical op's non-internal output port lands in `context.workflowSettings.outputPortsNeedingStorage`; `opsToViewResult` additively pulls a non-terminal op into the storage set; a single source op (out-degree 0) is treated as terminal - strict-mode error semantics: scan source with no `fileName` raises out of `compile` (no `errorList`, fail-fast path) Behavioral regressions in `WorkflowCompiler.expandLogicalPlan` are caught today only transitively by 9 e2e/scheduler specs through `TestUtils.buildWorkflow`. A dedicated spec locates failures at the compiler boundary instead of surfacing them as opaque engine errors, and provides a stable anchor for the planned consolidation with `workflow-compiling-service`'s compiler copy. Not in scope: the Python codegen `#EXCEPTION DURING CODE GENERATION:` regex branch — requires a `PythonOperatorDescriptor` subclass whose `generatePythonCode()` throws; deferred so this initial PR stays focused. ### Any related issues, documentation, discussions? Closes #5018. ### How was this PR tested? `sbt "WorkflowExecutionService/testOnly org.apache.texera.workflow.WorkflowCompilerSpec"` — 6 passed, 0 failed. `WorkflowExecutionService/Test/scalafmtCheck` and `WorkflowExecutionService/Test/compile` clean. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Opus 4.7 (1M context) -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
