HyukjinKwon opened a new pull request, #73:
URL: https://github.com/apache/spark-connect-rust/pull/73

   ### What changes were proposed in this pull request?
   
   The Coverage workflow (`.github/workflows/coverage.yml`) ran `cargo llvm-cov 
-p apache-spark-connect` with **no Spark Connect server** and no `SPARK_REMOTE` 
set. The behavioral `e2e_*.rs` tests self-gate on `SPARK_REMOTE`:
   
   ```rust
   fn should_run() -> bool { std::env::var("SPARK_REMOTE").is_ok() }
   #[test] fn dataframe_transforms_and_setops() { if !should_run() { return; } 
... }
   ```
   
   So in the coverage job those tests **no-op**, and the runtime execution 
paths (collect/count/RPC-backed DataFrame, functions, session, catalog, ...) 
are never exercised. Only unit + golden (plan-serialization) tests run, so the 
Rust coverage badge reported **~73.3%**, well below the real coverage. Those 
same e2e tests already run in `build_python_connect.yml`, which downloads Spark 
4.2.0, starts a Connect server, and sets `SPARK_REMOTE`.
   
   This PR makes the coverage job start a Spark 4.2.0 Connect server (mirroring 
`build_python_connect.yml`) and measure coverage in two accumulated 
`cargo-llvm-cov` passes that are then combined:
   
   1. the default unit + golden tests, run in parallel;
   2. the behavioral e2e suite against the live server (`SPARK_REMOTE` set), 
run serially since the tests share one server session.
   
   `--no-report` accumulates raw coverage from each pass; `cargo llvm-cov 
report` merges both into one JSON summary consumed by the existing badge parser.
   
   Supporting changes: JDK 17 + the Python deps the server's workers need, a 
shared Spark-dist cache key (reused from the parity job), a 45-minute job 
timeout, and a server-log artifact for debugging. The two duplicate Python 
setup steps are consolidated into one.
   
   ### Why are the changes needed?
   
   So the Rust coverage badge reflects the coverage actually achieved when the 
runtime paths are exercised, instead of undercounting because the e2e tests 
silently no-op without a server.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No. CI-only change.
   
   ### How was this patch tested?
   
   CI (the coverage workflow itself).
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code


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


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

Reply via email to