zyratlo opened a new pull request, #8910:
URL: https://github.com/apache/texera/pull/8910

   ### What changes were proposed in this PR?
   
   This is the first of three PRs adding R support to the migration tool 
(#8009). It is a pure refactor with no behavior change: Python conversions send 
the same prompts and build the same operators as before.
   
   The migration tool hardcodes Python in three places that R needs to vary: 
the documentation and prompts sent to the model, the operator type built from 
each generated UDF (`PythonUDFV2`), and the kernelspec of the notebook derived 
for a script. This PR gathers those into one `MigrationPromptSet` per source 
language, held in a `PROMPT_SETS` table that only has a Python entry for now.
   
   * `convertNotebookToWorkflow` and `convertScriptToWorkflow` take a 
`language` argument, defaulting to `"python"`, and read everything from the set.
   * `buildWorkflow`, `requestConversion` and `finishConversion` receive the 
operator type and notebook metadata as arguments instead of hardcoding them.
   * The three Python documentation arrays move from private statics on the 
class to module level constants, unchanged, so the table can reference them.
   * The folder path uses the Python set explicitly. R folders come in a later 
PR.
   
   `MigrationLanguage` is `"python"` only in this PR. The next PR widens it to 
`"python" | "r"` and adds the R set.
   
   ### Any related issues, documentation, discussions?
   
   Part of #8009
   Parent-issue #4301
   
   The plan for R support is in 
https://github.com/apache/texera/discussions/8866. The follow up PRs add the R 
prompts and the R option in the import modal. They are stacked on this one.
   
   ### How was this PR tested?
   
   Three new tests in `migration-llm.spec.ts` pin the Python output so later 
changes cannot alter it silently:
   
   * The notebook path sends exactly the existing system prelude, workflow 
prompt and mapping prompt.
   * The script path does the same with the script prelude and prompts.
   * Generated operators are built as `PythonUDFV2`.
   
   The existing notebook, script and folder tests pass unchanged. Coverage of 
`migration-llm.ts` is 100% of lines; the one uncovered branch is the 
`@Injectable()` decorator, as before this change. The full frontend suite 
passes.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 5.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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to