This is an automated email from the ASF dual-hosted git repository. Xiao-zhen-Liu pushed a commit to branch xiaozhen-caching-prototype in repository https://gitbox.apache.org/repos/asf/texera.git
commit d66503e5eba5584c6def94454949c187adc6a7b2 Merge: af1dc2a04a bc2776ed4f Author: Xiaozhen Liu <[email protected]> AuthorDate: Mon Apr 20 12:37:22 2026 -0700 Merge branch 'refs/heads/main' into xiaozhen-caching-prototype # Conflicts: # frontend/src/app/common/service/computing-unit/computing-unit-status/computing-unit-status.service.ts .github/workflows/build-and-push-images.yml | 14 +- .github/workflows/github-action-build.yml | 2 + .licenserc.yaml | 1 - bin/access-control-service.dockerfile | 3 - bin/build-images.sh | 34 +-- bin/computing-unit-master.dockerfile | 60 +----- bin/computing-unit-worker.dockerfile | 57 +---- bin/config-service.dockerfile | 3 - bin/file-service.dockerfile | 3 - bin/fix-format.sh | 4 +- .../access-control-service-deployment.yaml | 4 + bin/k8s/values.yaml | 3 + bin/single-node/docker-compose.yml | 2 +- bin/texera-web-application.dockerfile | 3 - bin/workflow-compiling-service.dockerfile | 3 - ...flow-computing-unit-managing-service.dockerfile | 3 - build.sbt | 31 ++- .../apache/texera/amber/operator/LogicalOp.scala | 13 +- .../FileListerSourceOpDesc.scala} | 34 +-- .../source/dataset/FileListerSourceOpExec.scala | 59 ++++++ .../source/scan/csv/CSVScanSourceOpDesc.scala | 2 +- .../scan/csv/ParallelCSVScanSourceOpDesc.scala | 2 +- .../FileScanOpDesc.scala} | 55 +++-- .../operator/source/scan/file/FileScanOpExec.scala | 48 +++++ .../scan/{ => file}/FileScanSourceOpDesc.scala | 5 +- .../source/scan/file/FileScanSourceOpExec.scala | 46 +++++ .../FileScanUtils.scala} | 120 ++++++----- .../source/sql/mysql/MySQLSourceOpDesc.scala | 1 + .../source/sql/mysql/MySQLSourceOpExec.scala | 1 + .../texera/amber/operator/union/UnionOpDesc.scala | 2 +- .../visualization/DotPlot/DotPlotOpDesc.scala | 3 +- .../IcicleChart/IcicleChartOpDesc.scala | 3 +- .../ImageViz/ImageVisualizerOpDesc.scala | 3 +- .../ScatterMatrixChartOpDesc.scala | 3 +- .../visualization/barChart/BarChartOpDesc.scala | 3 +- .../boxViolinPlot/BoxViolinPlotOpDesc.scala | 3 +- .../bubbleChart/BubbleChartOpDesc.scala | 5 +- .../bulletChart/BulletChartOpDesc.scala | 5 +- .../candlestickChart/CandlestickChartOpDesc.scala | 3 +- .../carpetPlot/CarpetPlotOpDesc.scala | 124 +++++++++++ .../choroplethMap/ChoroplethMapOpDesc.scala | 3 +- .../ContinuousErrorBandsOpDesc.scala | 3 +- .../contourPlot/ContourPlotOpDesc.scala | 5 +- .../dendrogram/DendrogramOpDesc.scala | 3 +- .../dumbbellPlot/DumbbellPlotOpDesc.scala | 3 +- .../FigureFactoryTableOpDesc.scala | 3 +- .../filledAreaPlot/FilledAreaPlotOpDesc.scala | 3 +- .../funnelPlot/FunnelPlotOpDesc.scala | 3 +- .../ganttChart/GanttChartOpDesc.scala | 3 +- .../gaugeChart/GaugeChartOpDesc.scala | 3 +- .../visualization/heatMap/HeatMapOpDesc.scala | 3 +- .../hierarchychart/HierarchyChartOpDesc.scala | 3 +- .../histogram/HistogramChartOpDesc.scala | 3 +- .../histogram2d/Histogram2DOpDesc.scala | 3 +- .../visualization/htmlviz/HtmlVizOpDesc.scala | 8 +- .../visualization/lineChart/LineChartOpDesc.scala | 3 +- .../nestedTable/NestedTableOpDesc.scala | 3 +- .../networkGraph/NetworkGraphOpDesc.scala | 3 +- .../visualization/pieChart/PieChartOpDesc.scala | 3 +- .../PolarChartOpDesc.scala} | 110 +++++----- .../quiverPlot/QuiverPlotOpDesc.scala | 3 +- .../radarChart/RadarChartOpDesc.scala | 3 +- .../radarPlot/RadarPlotLinePattern.java | 37 ++++ .../visualization/radarPlot/RadarPlotOpDesc.scala | 230 +++++++++++++++++++++ .../rangeSlider/RangeSliderOpDesc.scala | 3 +- .../sankeyDiagram/SankeyDiagramOpDesc.scala | 3 +- .../scatter3DChart/Scatter3dChartOpDesc.scala | 3 +- .../scatterplot/ScatterplotOpDesc.scala | 3 +- .../stripChart/StripChartOpDesc.scala | 3 +- .../tablesChart/TablesPlotOpDesc.scala | 3 +- .../ternaryPlot/TernaryPlotOpDesc.scala | 5 +- .../timeSeriesplot/TimeSeriesOpDesc.scala | 3 +- .../visualization/treeplot/TreePlotOpDesc.scala | 3 +- .../visualization/urlviz/UrlVizOpDesc.scala | 8 +- .../volcanoPlot/VolcanoPlotOpDesc.scala | 3 +- .../waterfallChart/WaterfallChartOpDesc.scala | 3 +- .../WindRoseChartOpDesc.scala} | 85 +++++--- .../visualization/wordCloud/WordCloudOpDesc.scala | 3 +- .../dataset/FileListerSourceOpDescSpec.scala | 38 ++-- .../source/scan/csv/CSVScanSourceOpDescSpec.scala | 32 +++ .../source/scan/file/FileScanOpDescSpec.scala | 99 +++++++++ .../{text => file}/FileScanSourceOpDescSpec.scala | 9 +- .../scan/{ => file}/FileScanSourceOpExecSpec.scala | 3 +- computing-unit-managing-service/build.sbt | 1 - frontend/src/app/app.module.ts | 10 +- frontend/src/app/common/formly/formly-config.ts | 6 +- .../computing-unit-actions.service.ts | 17 +- .../computing-unit-status.service.ts | 16 +- .../mock-computing-unit-status.service.ts | 2 +- .../workflow-computing-unit-managing.service.ts | 4 +- .../type}/computing-unit-connection.interface.ts | 0 .../type}/workflow-computing-unit.ts | 0 .../src/app/common/util/computing-unit.util.ts | 2 +- .../user/share-access/share-access.component.ts | 2 +- .../user-computing-unit-list-item.component.ts | 8 +- .../user-computing-unit.component.spec.ts | 6 +- .../user-computing-unit.component.ts | 8 +- .../service/user/download/download.service.ts | 2 +- frontend/src/app/dashboard/type/dashboard-entry.ts | 2 +- frontend/src/app/dashboard/type/type-predicates.ts | 2 +- .../dataset-file-selector.component.html} | 37 ++-- .../dataset-file-selector.component.ts} | 34 +-- .../dataset-selection-modal.component.html | 67 ++++++ .../dataset-selection-modal.component.scss} | 36 +--- .../dataset-selection-modal.component.ts | 108 ++++++++++ .../dataset-version-selector.component.html} | 36 ++-- .../dataset-version-selector.component.ts | 60 ++++++ .../file-selection/file-selection.component.html | 77 ------- .../file-selection/file-selection.component.scss | 89 -------- .../file-selection/file-selection.component.ts | 127 ------------ .../input-autocomplete.component.spec.ts | 49 ----- .../component/left-panel/left-panel.component.scss | 1 - .../time-travel/time-travel.component.spec.ts | 4 +- .../app/workspace/component/menu/menu.component.ts | 6 +- .../computing-unit-selection.component.spec.ts | 4 +- .../computing-unit-selection.component.ts | 11 +- .../operator-property-edit-frame.component.spec.ts | 4 +- .../operator-property-edit-frame.component.ts | 22 +- .../property-editor/property-editor.component.scss | 1 - .../property-editor.component.spec.ts | 4 +- .../result-exportation.component.ts | 4 +- .../console-frame/console-frame.component.spec.ts | 4 +- .../error-frame/error-frame.component.spec.ts | 4 +- .../result-panel/result-panel.component.scss | 1 - .../result-panel/result-panel.component.spec.ts | 4 +- .../workflow-editor.component.spec.ts | 4 +- .../workspace/component/workspace.component.scss | 5 +- .../execute-workflow.service.spec.ts | 4 +- .../execute-workflow/execute-workflow.service.ts | 2 +- .../operator-menu/operator-menu.service.spec.ts | 4 +- .../workflow-result-export.service.ts | 2 +- .../workflow-websocket.service.spec.ts | 60 ++++++ .../workflow-websocket.service.ts | 4 +- frontend/src/assets/operator_images/CarpetPlot.png | Bin 0 -> 17941 bytes frontend/src/assets/operator_images/FileLister.png | Bin 0 -> 22499 bytes frontend/src/assets/operator_images/FileScanOp.png | Bin 0 -> 22499 bytes frontend/src/assets/operator_images/PolarChart.png | Bin 0 -> 133686 bytes frontend/src/assets/operator_images/RadarPlot.png | Bin 0 -> 48432 bytes .../src/assets/operator_images/WindRoseChart.png | Bin 0 -> 24191 bytes project/AddMetaInfLicenseFiles.scala | 142 +++++++++++++ 140 files changed, 1610 insertions(+), 1031 deletions(-) diff --cc frontend/src/app/common/service/computing-unit/computing-unit-status/computing-unit-status.service.ts index 06d7de9d28,831263183b..fc7d86ed7f --- a/frontend/src/app/common/service/computing-unit/computing-unit-status/computing-unit-status.service.ts +++ b/frontend/src/app/common/service/computing-unit/computing-unit-status/computing-unit-status.service.ts @@@ -20,15 -20,14 +20,17 @@@ import { Injectable, OnDestroy } from "@angular/core"; import { BehaviorSubject, interval, Observable, of, Subject, Subscription } from "rxjs"; import { catchError, distinctUntilChanged, filter, map, switchMap, take, tap } from "rxjs/operators"; - import { DashboardWorkflowComputingUnit } from "../../types/workflow-computing-unit"; + import { DashboardWorkflowComputingUnit } from "../../../type/workflow-computing-unit"; import { WorkflowComputingUnitManagingService } from "../workflow-computing-unit/workflow-computing-unit-managing.service"; - import { WorkflowWebsocketService } from "../workflow-websocket/workflow-websocket.service"; + import { WorkflowWebsocketService } from "../../../../workspace/service/workflow-websocket/workflow-websocket.service"; import { UntilDestroy, untilDestroyed } from "@ngneat/until-destroy"; - import { ComputingUnitState } from "../../types/computing-unit-connection.interface"; - import { isDefined } from "../../../common/util/predicate"; - import { WorkflowStatusService } from "../workflow-status/workflow-status.service"; - import { WorkflowCacheEntriesService } from "../workflow-status/workflow-cache-entries.service"; - import { UserService } from "../../../common/service/user/user.service"; + import { ComputingUnitState } from "../../../type/computing-unit-connection.interface"; + import { isDefined } from "../../../util/predicate"; + import { WorkflowStatusService } from "../../../../workspace/service/workflow-status/workflow-status.service"; + import { UserService } from "../../user/user.service"; ++import { ++ WorkflowCacheEntriesService ++} from "../../../../workspace/service/workflow-status/workflow-cache-entries.service"; /** * Service that manages and provides access to computing unit status information
