atharvalade opened a new pull request, #2867:
URL: https://github.com/apache/iggy/pull/2867

   ## Which issue does this PR close?
   
   Closes #2816
   
   ## Rationale
   
   The Python SDK is built with maturin/PyO3, so all business logic is compiled 
Rust. The previous two attempts (PR #2790 with pytest-cov, PR #2817 with manual 
llvm-cov) both failed: pytest-cov cannot measure Rust code, and the manual 
llvm-cov approach produced 0% coverage due to missing CARGO_TARGET_DIR 
centralization and LCOV source paths relative to the crate root instead of the 
repo root.
   
   ## What changed?
   
   Coverage reports were empty because raw llvm-profdata/llvm-cov export 
produced paths like `src/client.rs` while Codecov expected 
`foreign/python/src/client.rs` under the python flag. Dependency code from 
core/sdk also leaked into the report with no filtering.
   
   The fix rewrites both post-merge and pre-merge coverage pipelines to use 
cargo-llvm-cov properly (matching the existing Rust coverage job pattern and 
the cjermain/rust-python-coverage reference). It sources env vars via `cargo 
llvm-cov show-env`, centralizes CARGO_TARGET_DIR, drops --release from maturin 
develop, generates LCOV with `cargo llvm-cov report`, filters dependencies with 
--ignore-filename-regex, and fixes paths with sed.
   
   ## Local Execution
   
   - Passed
   - Pre-commit hooks ran
   
   ## AI Usage
   
   1. Opus 4.6
   2. research, planning
   3. Verified by reviewing against the cjermain/rust-python-coverage reference 
repo, cross-checking env var safety with the existing Rust coverage job, and 
confirming Codecov path matching with codecov.yml flag configuration
   4. Yes


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