Add AWS → Oracle AIDP Migrator (Claude Code plugin) - #108
Conversation
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application. When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated. If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public. |
Deep review — the offline pipeline, tests, fixture and secret hygiene are solid; but the plugin cannot be installed or run as shipped, both translators silently change semantics in routine cases, and the "verified live end-to-end" claim is not backed by migrator output@mppotnuru — thank you for a substantial contribution; the AWS half of the migration story is genuinely needed and the deterministic-first design is the right instinct. This review was done by execution, not by reading: the 19 tests, the four-verb fixture pipeline, Verified working ✔
Blockers
Majors — Athena → Spark SQL transpiler (all executed on PySpark 3.5.9; every case is flags=0 → status ok → verify PASS)The README says the transpiler "won't corrupt SQL it doesn't recognize" and
Fix direction: run the Presto AST after transpile and flag Majors — Glue → PySpark translator (executed; each is flags=0 → PASS unless noted)
Majors — plan / verify / report / packaging (executed)
Majors — live path and the live-validation claim (executed with fakes/Stubber; nothing touched AWS or OCI)
Minors (executed unless noted)
Notes — repo hygiene and content
Bottom line: keep the architecture (four verbs, sqlglot AST core, generated rclone job, flag-don't-guess) — it is the right shape, and the offline demo proves it. Before this can merge: pin |
Deterministic AWS->AIDP migrator under ai/claude-code-plugins/: four verbs (inventory/plan/migrate/verify), Athena->Spark SQL + Glue->PySpark with review gates, generated rclone S3->OCI job, self-installing MCP server, 289-test offline stress suite. MIT + NOTICE + PRIVACY. Addresses the deep-review on oracle-samples#108. Signed-off-by: Mounika Potnuru <mounika.potnuru@oracle.com>
a90a08e to
cfa7165
Compare
|
Thanks for the exceptionally thorough review — force-pushed a substantial revision that addresses it. Engine (both PRs): the Athena transpiler was reworked off Fixed here:
Remaining follow-ups called out honestly: one live run of a translated Glue job on a cluster to promote the widgets mapping from flagged→rewrite, and the shared-plugin-content dedup between the two trees. Happy to iterate. 🙏 |
Deterministic AWS->AIDP migrator: four verbs, Athena->Spark SQL + Glue->PySpark with review gates, rclone S3->OCI job, self-installing MCP server, 289-test offline stress suite. Includes Spark-3.5.3 translator fixes (JOIN-after-UNNEST, 1-based array subscripts, scoped .spark_session). MIT + NOTICE + PRIVACY. Addresses the oracle-samples#108 deep review. Signed-off-by: Mounika Potnuru <mounika.potnuru@oracle.com>
cfa7165 to
ed0422c
Compare
Addresses the 'verify PASS is a status relabel' finding: restores the input/ output parse-validation the sqlglot->regex change had removed. Adds multi- statement / unrecognised-statement / Presto-only-syntax gates + a Spark-3.5 builtins allowlist, and makes PASS wording honest (translated, not execution- verified). Design mirrors the Glue translator's ast gate. Signed-off-by: Mounika Potnuru <mounika.potnuru@oracle.com>
|
Update (additive commit, no force-push): the "verify PASS is a status relabel" major is now addressed. Root cause was exactly as you found — when the SQL side moved off
Also included the earlier Spark-3.5.3 translator fixes (JOIN-after-UNNEST, 1-based subscripts, scoped |
New Claude Code plugin under
ai/claude-code-plugins/that migrates an AWS data stack (S3, Glue, Athena) to Oracle AIDP via four verbs: inventory / plan / migrate / verify.report.htmlshows before/after + flags.🤖 Generated with Claude Code