Replies: 6 comments 17 replies
-
|
Thanks, @zyratlo . @mengw15 : please share your thoughts about whether this PR could be further split vertically. |
Beta Was this translation helpful? Give feedback.
-
|
I haven't looked at the codes in detail but based on the demo videos, I think we should break it up to make this easier to review. How about this?
|
Beta Was this translation helpful? Give feedback.
-
|
A general question is whether we can have a PR after which we have "partial functionality." @Yicong-Huang @aglinxinyuan @zuozhiw and others : What do you think? |
Beta Was this translation helpful? Give feedback.
-
|
Thanks @kunwp1 for the input. I think it's a great suggestion. In general I agree a large PR isn't ideal, and smaller PRs are better when feasible. To address @zyratlo's concern about keeping the tool fully functional at each step, I wonder if we could keep @kunwp1's three slices but reorder them: PR1: Uploading + LLM notebook-to-workflow conversion — the core function. After this PR, a user can upload a notebook and get a converted workflow end-to-end. PR2: Rendering the notebook (plus window controls) — adds the Jupyter iframe panel as a UX enhancement on top of the working tool. PR3: Cell-to-operator mapping — adds traceability between cells and operators. Under this ordering, the main functionality lands in PR1, and PR2/PR3 are additive features. The tool stays functional after every PR, so the slices are more independent. @zyratlo — could you confirm whether this reordering is feasible given the actual code dependencies? If it isn't, I'm not against shipping as a single PR, since the code is well-isolated, the risk is low. |
Beta Was this translation helpful? Give feedback.
-
|
@chenlica Based on the discussion, here's my proposed conclusion: We don't go with a single PR. Instead, we split into multiple PRs, with a feature flag to hide the feature until everything is merged. The thread converged on a few points that together resolve the original concern:
|
Beta Was this translation helpful? Give feedback.
-
|
You can check my PR as an example: #4442. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
A new feature currently in the review phase before being merged is the Python Notebook Migration Tool. The related pages are Issue #4301 and PR #4486 . As of the time of this writing, the PR has 37 files changed and 3,342 additions. We have decided to currently merge this large addition to the code base in a single PR for multiple reasons:
Architecture
As shown in the architecture diagrams below, a large portion of the new code is contained within new files. Portions of the front-end and existing services (such as the LiteLLM proxy) are reused while maintaining their original purposes are unchanged.
Breakdown of Code Changes
More detailed breakdown can be found here
SQL
sql/updates/23.sqlsql/texera_ddl.sqlModified Existing Files
Config files
build.sbtcommon/config/src/main/resources/storage.confcommon/config/src/main/scala/org/apache/texera/amber/config/StorageConfig.scalafrontend/proxy.config.jsonfrontend/src/app/app.module.tsFront-end
frontend/src/app/workspace/component/menu/menu.component.tsfrontend/src/app/workspace/component/workflow-editor/mini-map/workspace.component.tsNew Files
Front-end
frontend/src/app/workspace/component/jupyter-notebook-panel/jupyter-notebook-panel.component.tsfrontend/src/app/workspace/service/jupyter-panel/jupyter-panel.service.tsfrontend/src/app/workspace/service/notebook-migration/migration-llm.tsfrontend/src/app/workspace/service/notebook-migration/notebook-migration.service.tsBack-end
notebook-migration-service/Beta Was this translation helpful? Give feedback.
All reactions