Conversation
…h matrices Upgrade PyO3 from 0.22 to 0.28 and rust-numpy from 0.22 to 0.28 to enable Python 3.14 compatibility. PyO3 0.22 cannot compile against 3.14 headers, and since maturin is the build backend, pip install fails entirely without this upgrade (the runtime fallback never gets a chance to activate). The migration is mechanical: the code already uses the modern Bound<T> API, so only 14 to_pyarray_bound→to_pyarray renames were needed. ndarray bumped from 0.16 to 0.17 as required by numpy 0.28. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Overall Assessment ✅ Looks good. No unmitigated P0/P1 findings. The Rust source edits are wrapper-level NumPy conversion migrations, not changes to estimator math, weighting, variance formulas, identification checks, or defaults; Executive Summary
Methodology No findings. I cross-checked the touched Rust-backed code paths in rust/src/bootstrap.rs:L17-L52, rust/src/linalg.rs:L16-L190, rust/src/weights.rs:L41-L57, rust/src/weights.rs:L624-L723, rust/src/trop.rs:L37-L47, rust/src/trop.rs:L1088-L1101, and rust/src/trop.rs:L1828-L1841 against docs/methodology/REGISTRY.md:L35-L83, docs/methodology/REGISTRY.md:L87-L214, docs/methodology/REGISTRY.md:L1190-L1315, and docs/methodology/REGISTRY.md:L1607-L1752. The diff only renames Code Quality No findings. The mechanical migration appears complete in diff scope; I found no remaining Performance No findings. No hot-path algorithm, allocation strategy, or parallelization behavior changed beyond the same Rust-to-Python array handoff. Maintainability
Tech Debt No findings. Security No findings. The diff adds no new secret material, credential handling, or untrusted-input surface. Documentation/Tests
|
- Add rust-version = "1.83" to Cargo.toml (PyO3 0.28 MSRV) so source builds fail early with an actionable error on older toolchains - Update README Requirements from "Python 3.9 - 3.13" to "3.9 - 3.14" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
/ai-review |
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good Review based on the provided diff and local source context; I did not execute builds/tests in this read-only environment. Executive Summary
Methodology
Code Quality
Performance
Maintainability
Tech Debt
Security
Documentation/Tests
|
faer 0.24 requires Rust 1.84, which is higher than PyO3 0.28's 1.83 floor. Declare the actual minimum so source builds fail early. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
/ai-review |
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment ✅ Looks good Review based on the supplied unified diff and local source context. I did not execute builds/tests in this read-only environment. Executive Summary
Methodology
Code Quality
Performance
Maintainability
Tech Debt
Security
Documentation/Tests
|
Summary
to_pyarray_bound(py)→to_pyarray(py)calls across 4 Rust source files (mechanical migration — code already used the modern Bound API)requires-pythonfrom<3.14to<3.15and add 3.14 classifierMethodology references (required if estimator / math changes)
Validation
test_rust_backend.py: 68/68 passed (Rust↔Python equivalence)Security / privacy
Generated with Claude Code