[ 
https://issues.apache.org/jira/browse/SPARK-59908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

L. C. Hsieh resolved SPARK-59908.
---------------------------------
    Fix Version/s: connect-gateway-0.1.0
       Resolution: Fixed

Issue resolved by pull request 42
[https://github.com/apache/spark-connect-gateway/pull/42]

> Sync the vendored Spark Connect protos to v4.2.0
> ------------------------------------------------
>
>                 Key: SPARK-59908
>                 URL: https://issues.apache.org/jira/browse/SPARK-59908
>             Project: Spark
>          Issue Type: Sub-task
>          Components: Connect
>    Affects Versions: connect-gateway-0.1.0
>            Reporter: L. C. Hsieh
>            Assignee: L. C. Hsieh
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: connect-gateway-0.1.0
>
>
> SPARK-59856 recorded that the vendored Spark Connect protos were behind
> upstream and added dev/sync-protos.sh, but deliberately left the drift in
> place: re-syncing moves the protocol the gateway speaks, so it wanted its own
> review. This does that sync.
>   dev/sync-protos.sh --sync --ref v4.2.0
> The result is +31 lines in relations.proto and +42 in pipelines.proto, with no
> deletions -- the drift was one-directional, so closing it is purely additive:
>   relations.proto   the NearestByJoin message, and its entry in the 
> Relation.rel_type oneof (tag 47)
>   pipelines.proto   the AutoCdcFlowDetails message, and the import of 
> spark/connect/expressions.proto it needs
> v4.2.0 was chosen because it is the newest released Spark tag. v4.3.0 exists
> only as release candidates; syncing to an rc would pin the gateway to a
> protocol that can still change before release. For reference, the tree is 4
> files away from v4.3.0-rc1, so there will be another sync to make once 4.3.0
> ships.
> Verified beyond the build, because a compiling binding is weak evidence for a
> protocol change:
>   - The vendored files are byte-identical to upstream v4.2.0, all 11 of 11,
>     compared file by file rather than trusting the script that wrote them.
>   - cargo build -p scg-genproto regenerates the bindings, and the two new
>     messages are present in the generated Rust as real structs -- not merely
>     compiled past.
>   - The new rel_type variant cannot break an exhaustive match: grepping the
>     workspace outside crates/genproto for rel_type / RelType returns nothing.
>     The one place that does inspect message contents,
>     crates/proxy/src/config_filter.rs, matches on
>     ConfigRequest.operation.op_type, which this change does not touch.
>   - End to end against a real Spark backend on kind, deployed via the Helm
>     chart: AnalyzePlan returns the correct schema for a range plan and
>     ExecutePlan streams 15 response messages back, with the gateway's audit 
> log
>     confirming both RPCs passed through it. The client encoded its requests 
> from
>     the newly synced .proto files, which is what makes this a test of the sync
>     rather than of the gateway alone -- and it confirms the v4.2.0 protocol
>     remains compatible with a Spark 4.0 backend.
>   - cargo test --workspace is 204 passed, 0 failed, 10 ignored, matching main;
>     clippy --workspace --all-targets -D warnings and cargo fmt --check are 
> clean.
> proto/PROVENANCE.md is updated to match the new state. The revision is now
> recorded as an exact match rather than a diff baseline, and the uncertainty 
> the
> old text carried -- that the previous copy came from an untagged 4.2
> development commit that no release tag matched -- moves into a History 
> section,
> since it still documents where the original snapshot came from. The
> explanation of why protocol drift degrades gracefully is kept, rewritten as
> general guidance for judging how urgent a future sync is rather than as a
> description of this particular gap. UPSTREAM_REF in dev/sync-protos.sh is
> unchanged at v4.2.0; its comment is corrected, as it now names the revision 
> the
> files are at rather than one to diff against.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to