fix(deps): bump pyo3 to 0.29 to clear RUSTSEC-2026-0176 and -0177#183
Merged
Conversation
cargo-audit (Vulnerability Scan) and cargo-deny (License & Supply Chain) fail on two pyo3 0.25.1 advisories published 2026-06-11, both patched in pyo3 0.29.0: RUSTSEC-2026-0176 - out-of-bounds read in PyList/PyTuple nth / nth_back RUSTSEC-2026-0177 - missing Sync bound on PyCFunction::new_closure closures This is a baseline failure on main and every open PR; it is not caused by any one change. Neither affected API is used by cachekit-rs (no new_closure, no .nth/.nth_back on PyList/PyTuple), so the advisories are not reachable here, but upgrading to the patched line is the clean fix rather than ignoring them. pyo3 0.25 -> 0.29 needs one source change: Python::with_gil was renamed to Python::attach (GIL / free-threaded terminology). numpy in [workspace.dependencies] is unused by the rust crate, so no coordinated numpy bump is required. Validated: cargo check clean; extension rebuilt against 0.29; 255 critical FFI tests pass (encryption, serializers, backward-compat); rustfmt clean. Lock change is pyo3-family only.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
WalkthroughThe ChangesPyO3 0.29 upgrade and API migration
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Vulnerability Scan (
cargo audit) and License & Supply Chain (cargo deny) checks fail — andSecurity Fast Success(a required check) rolls them up — on two pyo3 0.25.1 advisories published 2026-06-11, both patched in pyo3 0.29.0:PyList/PyTuplenth/nth_backSyncbound onPyCFunction::new_closureclosuresThis is a baseline failure on
mainand every open PR (e.g. #182), not caused by any individual change — the advisories simply landed in the RustSec DB.Fix
Bump pyo3
0.25→0.29(the patched line). Neither affected API is used bycachekit-rs(verified: nonew_closure, no.nth/.nth_backonPyList/PyTuple), so the advisories aren't reachable here — but upgrading is the clean fix rather than suppressing them.Python::with_gil→Python::attach(the 0.29 GIL/free-threaded rename).numpyin[workspace.dependencies]is unused by the rust crate, so no coordinated numpy bump is needed; lock change is pyo3-family only.Validation
cargo check -p cachekit-rsclean;cargo fmt --checkclean.cargo audit+cargo denyadvisories clear.Note
Unblocks all open cachekit-py PRs. Branches already open (e.g. #182) will go green once they pick up this
Cargo.lock(mergemain/ rebase after this lands).Summary by CodeRabbit
Release Notes
Chores
Refactor