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]
