Skip to content

chore(deps): update pyo3 requirement from 0.29 to 0.30 in /rust - #852

Merged
igerber merged 2 commits into
mainfrom
dependabot/cargo/rust/pyo3-0.30
Oct 18, 2026
Merged

igerber merged 2 commits into
mainfrom
dependabot/cargo/rust/pyo3-0.30

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 18, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on pyo3 to permit the latest version.

Release notes

Sourced from pyo3's releases.

PyO3 0.29.3

This release is a series of fixes worth landing to the PyO3 0.29 series; the PyO3 0.30 release is planned to follow within a few weeks, however during the development cycle a number of rough edges were discovered which were deemed worth a backport.

The patch broadly includes:

  • a further fix the to the opt-out of raw-dylib linking for Windows introduced in PyO3 0.29.1 (the switch to raw-dylib linking was introduced in PyO3 0.29.0),
  • fixes to support GraalPy on windows,
  • a handful of small performance optimizations,
  • a number of non-breaking fixes to the experimental-inspect type stub generation (expect more improvements in 0.30), and
  • various other bugfixes such as to FFI definitions, to resolve crashes, and to fix clippy lints caused by PyO3 macros.

For a full list of the exact fixes please consult the CHANGELOG.

Thank you to the following contributors for the improvements:

@​adamgerhant-ai @​alex @​bschoenmaeckers @​charliermarsh @​chirizxc @​davidhewitt @​dependabot[bot] @​dylanpulver @​exg @​FranciscoTGouveia @​JMak-Security @​jonasdedden @​jorenham @​konstin @​latent-9 @​mejrs @​ngoldbaum @​Person-93 @​PeterFaiman @​sneakers-the-rat

Changelog

Sourced from pyo3's changelog.

[0.29.3] - 2026-09-30

Packaging

  • Support GraalPy on Windows. #6406

Added

  • Add FFI definitions PyModule_GetState_DuringGC, PyModule_GetToken_DuringGC, PyObject_GetTypeData_DuringGC, PyType_GetModuleState_DuringGC, PyType_GetBaseByToken_DuringGC, PyType_GetModule_DuringGC, and PyType_GetModuleByToken_DuringGC for Python 3.15 and up. #6419

Changed

  • Optimize u128/i128 conversions on Python 3.15+. #6160
  • Preallocate output sets when extracting Python set and frozenset values into Rust hash sets. #6225
  • Optimize PyBytes::as_bytes() when not using abi3 or abi3t. #6377

Removed

  • Remove FFI definitions PyExc_RecursionErrorInst and Py_UseClassExceptionsFlag (not present in supported Python versions). #6421

Fixed

  • Revert removal of FFI definition _PyFrameEvalFunction, _PyInterpreterState_GetEvalFrameFunc and _PyInterpreterState_SetEvalFrameFunc, which are not currently treated as CPython private API despite their name. #6195
  • Fix FFI definition PyUnstable_Eval_RequestCodeExtraIndex FFI binding to link to the private CPython symbol on Python versions before 3.12. #6195
  • Fix FFI definitions PyByteArray_GET_SIZE, PyList_GET_SIZE, and PySet_GET_SIZE to use an atomic load for free-threaded Python. #6230
  • experimental-inspect: deduplicate repeated members of a type union in the generated stubs, and put a space on both sides of the | rather than only before it. #6273
  • experimental-inspect: __next__ and __anext__ returning Option<T> (or PyResult<Option<T>>) are now introspected as returning T, since None stops the iteration instead of being yielded. #6274
  • Fix clippy::clone_on_copy warnings triggered on nightly Rust by #[pyclass(from_py_object)] on classes which implement Copy. #6309
  • experimental-inspect: __pow__, __rpow__ and __get__ now introspect their trailing argument as defaulting to None, matching the CPython slot wrappers which substitute None when it is omitted. #6363
  • experimental-inspect: fix the stubs of a package nested inside another package being written into a directory named after its parent instead of its own name. #6365
  • Fix many unresolved symbols when linking for PyPy due to incorrect link names in pyo3-ffi. #6389
  • Fix empty tuple type hints being rendered as invalid tuple[] instead of tuple[()] in generated stubs and PyStaticExpr display. #6393
  • experimental-inspect: escape stub docstrings to prevent invalid Python syntax. #6394
  • experimental-inspect: fix the generated type annotation for PyBuffer on python <3.12 by using typing_extensions.Buffer instead of collections.abc.Buffer. #6395
  • Fix string constants containing control characters rendering as invalid Python in Display for PyStaticExpr. #6397
  • Fix crash when a detached thread is terminated while trying to reattach during interpreter finalization. #6404
  • Fix link failures on 32-bit Windows when raw-dylib linking is disabled. #6410
  • Fix DLL load failures on Windows with PyPy when raw-dylib linking is disabled. #6410
  • Fix FFI definition PyVectorcall_Call failing to link on Python 3.11 and older. #6410
  • Fix many unresolved data symbols when linking for PyPy due to incorrect link names in pyo3-ffi. #6421
  • Fix linker errors on PyPy for outdated FFI definitions where PyPy moved from a function to a macro. #6422
  • Fix crash when GC traverses a #[pyclass] type object during class attribute initialization. #6453

[0.29.2] - 2026-08-05

Packaging

  • Add PYO3_USE_RAW_DYLIB=0 opt-out of raw-dylib linking for Windows. #6185

Fixed

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot
dependabot Bot requested a review from igerber as a code owner October 18, 2026 12:38
@dependabot dependabot Bot added dependencies Dependency updates rust Rust dependency updates labels Oct 18, 2026
dependabot Bot and others added 2 commits October 18, 2026 11:20
Updates the requirements on [pyo3](https://github.com/pyo3/pyo3) to permit the latest version.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](PyO3/pyo3@v0.29.0...v0.29.3)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.29.3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
rust-numpy 0.N requires pyo3 ^0.N, so the pyo3-only bump cannot compile
(two pyo3-ffi versions would both link libpython). Fold the numpy 0.30
bump in here, refresh the Cargo.toml comment (pyo3 0.30 spans Python
3.9-3.15, MSRV 1.85 = our rust-version), and add a Dependabot group so
the pair arrives as one PR in future.
@igerber
igerber force-pushed the dependabot/cargo/rust/pyo3-0.30 branch from b3f4d4d to 50bbc25 Compare October 18, 2026 15:21
@github-actions

Copy link
Copy Markdown

🔁 AI review rerun (requested by @igerber)

Head SHA: 50bbc25ace386f3b791b2bc5495a13b8906a64f5


Overall assessment

✅ Looks good — no actionable P0–P3 findings identified in the supplied diff. Build compatibility remains unverified locally.

Executive summary

  • PyO3 and rust-numpy requirements move together to 0.30 (rust/Cargo.toml:L28-L31).
  • The new Dependabot group precedes the catch-all group and includes both dependencies across all update types (.github/dependabot.yml:L27-L42).
  • No estimator equations, weights, variance calculations, identification assumptions, or statistical defaults change.
  • TOML/YAML parsing passed. Compilation and upstream migration checks were unavailable because the environment is read-only, has no cached crates, and cannot resolve upstream hosts.

Methodology

No findings. Reviewed the Methodology Registry and relevant Rust binding docstrings. The diff introduces no mathematical changes requiring paper-level verification.

Code Quality

No findings. Both configuration files parse successfully, and dependency requirements remain aligned.

Performance

No findings. No computational kernels or numerical algorithms change.

Maintainability

No findings. Grouping the binding dependencies reduces the risk of incompatible independent upgrades.

Tech Debt

No findings. No new deferred implementation work identified.

Security

No findings. No secrets or security-sensitive code changes identified.

Documentation/Tests

No findings. No demonstrated user-visible behavior change requires a changelog fragment. Existing CI covers Rust builds, extension imports, and backend parity tests (.github/workflows/rust-test.yml:L118-L150, L231-L248); successful runs remain the evidence needed for compilation and runtime compatibility.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Oct 18, 2026
@igerber
igerber merged commit 8567bfc into main Oct 18, 2026
36 of 37 checks passed
@igerber
igerber deleted the dependabot/cargo/rust/pyo3-0.30 branch October 18, 2026 17:29
igerber added a commit to ilgrad/diff-diff that referenced this pull request Oct 18, 2026
main moved to pyo3/rust-numpy 0.30 (igerber#852), which lists Python 3.15.0
final as supported; the fragment's PyO3 0.29 sentence predates that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates ready-for-ci Triggers CI test workflows rust Rust dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant