DanielLeens commented on PR #11413:
URL: https://github.com/apache/seatunnel/pull/11413#issuecomment-5178113268

   Thanks for asking before pushing ahead — that is exactly the right instinct 
on a change this size, and it is a fair question. Two things: a CI correction I 
owe you, then my actual answer.
   
   ## First, a correction: CI is green now
   
   My previous comment asked you to sync with the latest `dev` and rerun 
`Build`, because the run at that time had a red lane. **That is no longer the 
current fact.** On head `ba85c1ab`, the required `Build` check is now 
**SUCCESS**, along with `labeler` and `Notify test workflow`. So please 
disregard the sync-and-rerun request — there is nothing to chase, and 
re-rolling a green multi-hour connector CI result would only risk a flaky lane 
for no gain.
   
   Combined with my previous review, that means: **no source-level blocker from 
my side, and CI is green.** The only open question on this PR is the one you 
just asked.
   
   ## On the merge strategy
   
   The decision is a committer's to make, so treat this as one reviewer's 
opinion rather than an answer — but I have read the whole diff and I think the 
shape of it points fairly clearly one way.
   
   Here is what the 75 files actually are:
   
   ```text
   seatunnel-connectors-v2/connector-hugegraph/src/main/...      37 files
   seatunnel-connectors-v2/connector-hugegraph/src/test/...      18 files
   seatunnel-e2e/.../connector-hugegraph-e2e/...                 11 files
   docs/{en,zh}/connectors/{source,sink,changelog}/...            6 files
   pom.xml, plugin-mapping.properties, module poms                 3 files
   ```
   
   So despite +14135/-1223, this is almost entirely contained in one connector 
module plus its own E2E and docs. It does not touch the engine, the API, other 
connectors, or any shared runtime path. That matters a lot: the review risk of 
a large PR is mostly about *blast radius*, not line count, and this one's blast 
radius is genuinely small. SeaTunnel does merge large single-connector PRs for 
exactly that reason.
   
   **That said, I would still split it into two**, and the reason is the 
`-1223`.
   
   The two halves have very different risk profiles:
   
   - **The new HugeGraph source is purely additive.** Nothing existing can 
regress from it. If it has a bug, only people who opt into the new source are 
affected.
   - **The sink refactor with multi-mapping changes code that is already 
released.** That is where every regression risk in this PR lives, and it is the 
part that deserves a reviewer's full attention on its own terms — existing job 
configs, existing mapping semantics, backward compatibility of the option 
surface.
   
   Bundled together, the sink refactor is reviewed as a supporting detail of a 
large feature PR. Split apart, it gets reviewed as what it is: a change to 
shipped behavior. My suggested order:
   
   1. **PR A — sink refactor + multi-mapping**, including whatever shared 
client/mapping layer the source will later build on. Reviewable against a 
single question: does every existing HugeGraph sink job behave identically, and 
where it does not, is that documented?
   2. **PR B — the new source connector**, on top of A. Additive, and much 
faster to review because the shared layer is already settled.
   
   Two honest caveats so this is not a one-sided recommendation. First, if the 
source and the refactored sink genuinely co-evolved, PR A may land a shared 
abstraction with only one consumer, which is slightly awkward to review in 
isolation — that is a real cost and if it turns out to be severe, say so and 
keeping it as one PR is defensible. Second, splitting costs you a rebase and a 
second CI cycle on an already-green branch. If a committer tells you to keep it 
as one, that is a perfectly reasonable call given the contained blast radius, 
and I would not argue with it.
   
   Since your current head is green and unblocked, I would suggest waiting for 
@davidzollo or @imbajin to weigh in before doing the split work — no point 
rebasing twice.
   
   ## One suggestion on the design document
   
   You linked the architecture and test results to an external wiki. That is 
genuinely useful material and I am glad it exists — but for an ASF project it 
is better if the design rationale lives somewhere the project itself retains: 
the PR description, a linked GitHub issue, or a doc under `docs/`. External 
links rot, and reviewers a year from now trying to understand why the mapping 
model works the way it does will not have access to it. Even a condensed 
version of the architecture and the multi-mapping semantics pasted into the PR 
description would help — and it would help the committers answering your 
question above, since PR scope decisions are much easier when the design 
rationale is in front of them.
   
   I have not opened the external link myself; the review above is based 
entirely on the code in this PR.
   
   Thanks again for the quality of this contribution and for checking on 
process first — that is a good habit and it is appreciated. I will re-review 
the full head from scratch whichever way the split decision goes.
   


-- 
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