Skip to content

bump the cargo group with 2 updates - #7

Merged
Eliah Kagan (EliahKagan) merged 1 commit into
mainfrom
dependabot/cargo/cargo-90f98110e2
Nov 1, 2026
Merged

Eliah Kagan (EliahKagan) merged 1 commit into
mainfrom
dependabot/cargo/cargo-90f98110e2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 1, 2026

Copy link
Copy Markdown
Contributor

Bumps the cargo group with 2 updates: pyo3 and pyo3-build-config.

Updates pyo3 from 0.29.3 to 0.30.1

Release notes

Sourced from pyo3's releases.

PyO3 0.30.1 is a re-release of PyO3 0.30.0 after investments in CI security unfortunately led to a failed crates.io publish. Rather than delete the failed tag, this new tag comes after the CI issues have (hopefully) been corrected.

Thanks to @​davidhewitt @​Tpt and @​viicos for the investigation and fixes.

PyO3 0.30.0

This release brings confirmed testing against Python 3.15.0 final. Support for Python 3.8 has been dropped. The minimum supported Rust version has also been increased to 1.85.

The largest sets of improvements come to PyO3 0.29.0's experimental-inspect feature, which has received substantial feedback since 0.29.0 and subsequently has seen many refinements to improve the quality and coverage to the generated stubs. Thank you to everyone who has helped to continue to drive this feature towards completion.

New safe wrappers for PyFrozenDict (3.15+) and PyContext have been added.

PyO3 now contains meson build files, which should make it possible for projects using meson-python to more straightforwardly use Rust and PyO3 for additional components.

Additionally, a number of small optimizations have landed, including:

  • simplifications to core implementations of PyAnyMethods,
  • reduced overhead from PyO3's internal "reference pool" used to dispose of Py<T> values dropped when not attached to the interpreter,
  • optimizations to num-bigint conversions, and
  • better generated code from IntoPyObject and IntoPyObjectRef derives.

There are also many other incremental improvements, bug fixes and smaller features; full detail can be found in the CHANGELOG.

Please consult the migration guide for help upgrading.

Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:

@​adamgerhant-ai @​alex @​bschoenmaeckers @​charliermarsh @​chirizxc @​clin1234 @​davidhewitt @​dependabot[bot] @​dylanpulver @​elbaro @​exg @​florentinl @​FranciscoTGouveia @​Icxolu @​imfeh2 @​IvanIsCoding @​JMak-Security @​jonasdedden @​jorenham @​konstin @​latent-9 @​MatthieuDartiailh @​mattip @​mejrs @​msimacek

... (truncated)

Changelog

Sourced from pyo3's changelog.

[0.30.1] - 2026-10-14

Packaging

  • Support PyPy 3.12. #6448

[0.30.0] - 2026-10-13

NB PyO3 0.30.0 failed to push to crates.io due to a CI issue, so 0.30.1 was prepared and pushed with minimal other changes other than confirming support for PyPy 3.12.

Packaging

  • Drop support for Python 3.8. #6128
  • Bump MSRV to 1.85. #6459
  • Support meson-python as a build backend. #6483
  • Bump minimum supported GraalPy version to 25.4. #6491
  • Support Python 3.15.0 final. #6517

Added

  • Add support for PyFrozenDict on 3.15+ #6174
  • Add PyContext type. #6227
  • experimental-inspect: classes which extend their base's instance layout are now decorated with disjoint_base in the generated stubs, as per PEP 800. #6362
  • Add methods PyBuffer::as_slice_ptr and PyBuffer::as_fortran_slice_ptr. #6382
  • Implement Copy for PyVisit. #6412
  • Add non-poisoning variant of PyMutex #6437
  • Add PyStringMethods::code_point_len. #6455
  • FFI Definitions:
    • Add FFI definition PyThread_get_thread_ident. #6056
    • Add FFI definitions for PEP 731 (PyInitConfig). #6152
    • Add FFI definitions PyContext_AddWatcher and PyContext_ClearWatcher on Python 3.14+. #6204
    • Add FFI definitions for PEP 539 ("Thread-Specific Storage" API). #6262
    • Enable FFI definitions PyObject_GC_Track and PyObject_GC_UnTrack on PyPy. #6299
    • Add FFI definitions PyUnicode_DecodeMBCS, PyUnicode_DecodeMBCSStateful, PyUnicode_DecodeCodePagetateful, PyUnicode_AsMBCSString, PyUnicode_EncodeCodePage, and PyUnicode_Equal. #6349
    • Add FFI definitions PyFloat_Pack{2,4,8} and PyFloat_Unpack{2,4,8}. #6350
    • Add FFI definitions PyFunction_GET_CODE, PyFunction_GET_GLOBALS, PyFunction_GET_MODULE, PyFunction_GET_DEFAULTS, PyFunction_GET_KW_DEFAULTS, PyFunction_GET_CLOSURE, PyFunction_GET_ANNOTATIONS, PyClassMethod_Type, PyStaticMethod_Type, PyClassMethod_New, and PyStaticMethod_New. #6351

Changed

  • Optimized num-bigint conversions on Python 3.14 and newer. #6144
  • Change #[pyclass] to not emit FromPyObject implementation by default (this was previously deprecated). #6188
  • Deprecate #[pyclass(skip_from_py_object)] option (as it is now the default). #6188
  • Deprecate pyo3_build_config::PythonAbi::from_build_env in favor of pyo3_build_config::PythonAbi::from_stable_abi. #6192
  • Change pyo3_build_config::InterpreterConfig::from_sysconfigdata to no longer select a target ABI based on the content of abi3 or abi3t cargo features (it will now always select a version-specific ABI). #6192
  • Optimize PyO3's internal reference pool used for disposal of Py<T> values dropped when not attached to the Python interpreter. #6200
  • experimental-inspect: Emit __all__ for complete modules in the type stubs. #6242
  • Change PyBytes::new_with_writer to take &mut PyBytesWriter instead of &mut dyn Write. #6251
  • Change #[pymodule_init] to allow functions which do not take a module argument (for experimental-inspect, such modules are not marked Incomplete). #6271
  • Change #[pymodule_init] to optionally allow functions to take a Python<'_> marker. #6271

... (truncated)

Commits

Updates pyo3-build-config from 0.29.3 to 0.30.1

Release notes

Sourced from pyo3-build-config's releases.

PyO3 0.30.1 is a re-release of PyO3 0.30.0 after investments in CI security unfortunately led to a failed crates.io publish. Rather than delete the failed tag, this new tag comes after the CI issues have (hopefully) been corrected.

Thanks to @​davidhewitt @​Tpt and @​viicos for the investigation and fixes.

PyO3 0.30.0

This release brings confirmed testing against Python 3.15.0 final. Support for Python 3.8 has been dropped. The minimum supported Rust version has also been increased to 1.85.

The largest sets of improvements come to PyO3 0.29.0's experimental-inspect feature, which has received substantial feedback since 0.29.0 and subsequently has seen many refinements to improve the quality and coverage to the generated stubs. Thank you to everyone who has helped to continue to drive this feature towards completion.

New safe wrappers for PyFrozenDict (3.15+) and PyContext have been added.

PyO3 now contains meson build files, which should make it possible for projects using meson-python to more straightforwardly use Rust and PyO3 for additional components.

Additionally, a number of small optimizations have landed, including:

  • simplifications to core implementations of PyAnyMethods,
  • reduced overhead from PyO3's internal "reference pool" used to dispose of Py<T> values dropped when not attached to the interpreter,
  • optimizations to num-bigint conversions, and
  • better generated code from IntoPyObject and IntoPyObjectRef derives.

There are also many other incremental improvements, bug fixes and smaller features; full detail can be found in the CHANGELOG.

Please consult the migration guide for help upgrading.

Thank you to everyone who contributed code, documentation, design ideas, bug reports, and feedback. The following contributors' commits are included in this release:

@​adamgerhant-ai @​alex @​bschoenmaeckers @​charliermarsh @​chirizxc @​clin1234 @​davidhewitt @​dependabot[bot] @​dylanpulver @​elbaro @​exg @​florentinl @​FranciscoTGouveia @​Icxolu @​imfeh2 @​IvanIsCoding @​JMak-Security @​jonasdedden @​jorenham @​konstin @​latent-9 @​MatthieuDartiailh @​mattip @​mejrs @​msimacek

... (truncated)

Changelog

Sourced from pyo3-build-config's changelog.

[0.30.1] - 2026-10-14

Packaging

  • Support PyPy 3.12. #6448

[0.30.0] - 2026-10-13

NB PyO3 0.30.0 failed to push to crates.io due to a CI issue, so 0.30.1 was prepared and pushed with minimal other changes other than confirming support for PyPy 3.12.

Packaging

  • Drop support for Python 3.8. #6128
  • Bump MSRV to 1.85. #6459
  • Support meson-python as a build backend. #6483
  • Bump minimum supported GraalPy version to 25.4. #6491
  • Support Python 3.15.0 final. #6517

Added

  • Add support for PyFrozenDict on 3.15+ #6174
  • Add PyContext type. #6227
  • experimental-inspect: classes which extend their base's instance layout are now decorated with disjoint_base in the generated stubs, as per PEP 800. #6362
  • Add methods PyBuffer::as_slice_ptr and PyBuffer::as_fortran_slice_ptr. #6382
  • Implement Copy for PyVisit. #6412
  • Add non-poisoning variant of PyMutex #6437
  • Add PyStringMethods::code_point_len. #6455
  • FFI Definitions:
    • Add FFI definition PyThread_get_thread_ident. #6056
    • Add FFI definitions for PEP 731 (PyInitConfig). #6152
    • Add FFI definitions PyContext_AddWatcher and PyContext_ClearWatcher on Python 3.14+. #6204
    • Add FFI definitions for PEP 539 ("Thread-Specific Storage" API). #6262
    • Enable FFI definitions PyObject_GC_Track and PyObject_GC_UnTrack on PyPy. #6299
    • Add FFI definitions PyUnicode_DecodeMBCS, PyUnicode_DecodeMBCSStateful, PyUnicode_DecodeCodePagetateful, PyUnicode_AsMBCSString, PyUnicode_EncodeCodePage, and PyUnicode_Equal. #6349
    • Add FFI definitions PyFloat_Pack{2,4,8} and PyFloat_Unpack{2,4,8}. #6350
    • Add FFI definitions PyFunction_GET_CODE, PyFunction_GET_GLOBALS, PyFunction_GET_MODULE, PyFunction_GET_DEFAULTS, PyFunction_GET_KW_DEFAULTS, PyFunction_GET_CLOSURE, PyFunction_GET_ANNOTATIONS, PyClassMethod_Type, PyStaticMethod_Type, PyClassMethod_New, and PyStaticMethod_New. #6351

Changed

  • Optimized num-bigint conversions on Python 3.14 and newer. #6144
  • Change #[pyclass] to not emit FromPyObject implementation by default (this was previously deprecated). #6188
  • Deprecate #[pyclass(skip_from_py_object)] option (as it is now the default). #6188
  • Deprecate pyo3_build_config::PythonAbi::from_build_env in favor of pyo3_build_config::PythonAbi::from_stable_abi. #6192
  • Change pyo3_build_config::InterpreterConfig::from_sysconfigdata to no longer select a target ABI based on the content of abi3 or abi3t cargo features (it will now always select a version-specific ABI). #6192
  • Optimize PyO3's internal reference pool used for disposal of Py<T> values dropped when not attached to the Python interpreter. #6200
  • experimental-inspect: Emit __all__ for complete modules in the type stubs. #6242
  • Change PyBytes::new_with_writer to take &mut PyBytesWriter instead of &mut dyn Write. #6251
  • Change #[pymodule_init] to allow functions which do not take a module argument (for experimental-inspect, such modules are not marked Incomplete). #6271
  • Change #[pymodule_init] to optionally allow functions to take a Python<'_> marker. #6271

... (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 <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the cargo group with 2 updates: [pyo3](https://github.com/pyo3/pyo3) and [pyo3-build-config](https://github.com/pyo3/pyo3).


Updates `pyo3` from 0.29.3 to 0.30.1
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/v0.30.1/CHANGELOG.md)
- [Commits](PyO3/pyo3@v0.29.3...v0.30.1)

Updates `pyo3-build-config` from 0.29.3 to 0.30.1
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/v0.30.1/CHANGELOG.md)
- [Commits](PyO3/pyo3@v0.29.3...v0.30.1)

---
updated-dependencies:
- dependency-name: pyo3
  dependency-version: 0.30.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo
- dependency-name: pyo3-build-config
  dependency-version: 0.30.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Nov 1, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The breaking PyO3 0.30 upgrade requires CI and runtime validation of compilation, Rust 1.89 MSRV support, and abi3/free-threaded Python 3.14 wheel compatibility, which this review could not confirm.

No open issues 🎉

What changed in this PR

Updates the PyO3 dependencies that power GixPython’s Rust-to-Python bindings.

Changes:

  • Upgrades pyo3 and pyo3-build-config from 0.29.3 to 0.30.1.
  • Refreshes locked PyO3 packages, checksums, and related transitive dependency references.
File Description
Cargo.toml Updates runtime and build-time PyO3 dependency requirements.
Cargo.lock Records upgraded PyO3 packages and revised macro and Windows dependency references.

Review effort: Max

@EliahKagan EliahKagan left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. In addition to CI passing, I'm not aware of any policy or technical incompatibiity with GitPython's usage of GixPython that would be a reason not to move PyO3 from 0.29.3 to 0.30.1. The above Copilot review raises some concerns, but I don't think anything here is breaking.

As an additional weak check--not motivated by the Copilot review, which I requested subsequently, but speaking to its concerns nonetheless--I also asked Claude to examine whether there is any possible problem, including building GitPython with this version. I call this a weak check because while I supervised the approach and read its broad steps and its report, I did not check every claim. Merging this is not contingent on any information from Claude, I just wanted it to have a look in case it found anything. Its report is as follows.

Text up to this point is written by me, but the following is LLM generated.


Important

AI-generated report. Claude Opus 5.5 in Claude Code wrote this report and ran every build, test and CI run it describes, using the setup it describes. Human review of it, if any, is stated separately.

GixPython #7 (PyO3 0.29.3 → 0.30.1): effect on GitPython

Summary: I found no reason not to merge #7. GitPython pins GixPython==0.3.0 exactly, so merging has no effect on GitPython or its users until a GixPython release includes this change and GitPython raises its pin. Testing GitPython against a GixPython built from this PR showed no regressions.

GixPython: All 27 checks on #7 pass, including Rust 1.89 MSRV, clippy with -D warnings, free-threaded 3.14t, and the build without a C compiler. PyO3 0.30's breaking API changes would fail compilation, and none do. The one runtime-visible change is that #[pyfunction]s now have the module as __self__ instead of None; GitPython doesn't inspect that.

GitPython tests with GixPython built from #7 (5a68f1a):

  • Local A/B (macOS arm64, CPython 3.14.10, Git 2.56.0, Gix backend), with GixPython built from main (PyO3 0.29.3) and from #7 (0.30.1): 2123 passed, 52 skipped and 1 xfailed for both, and the backend operation-coverage reports are byte-identical. The one failure in each run (test_installation) came from my environment: the offline wheelhouse that test/run-local.py uses was empty.
  • Fork CI, with GixPython built from source from #7 in every job (branch commit):
    • Python package: all jobs pass, including the Gix backend on Ubuntu, macOS and Windows and CPython 3.11–3.15t. Every job's counts match the upstream main run, except one PytestUnhandledThreadExceptionWarning on 3.15t. It comes from an intermittent race in pump_stream in git/cmd.py, which also shows up in upstream runs with GixPython 0.3.0 (e.g. 1, 2).
    • Downstream: all 10 jobs (5 projects × 2 backends) pass.
    • Alpine: passes on musl with Alpine's Rust 1.96.1.
    • Minimum Git CLI: not covered. Its minimal Git 2.52 build has no HTTPS support, so it couldn't fetch the git+https pin I used.

Policy: I found no rule in GitPython or GixPython against a newer PyO3. The constraint is that GitPython only installs official GixPython releases from PyPI (and PyPI doesn't accept direct-URL dependencies). So the upgrade needs a GixPython release that includes #7. GitPython then raises the pin by hand in gix-requirements.txt and test-requirements.txt, since its Dependabot doesn't cover pip, and updates where its docs and CI say "0.3.0". GitPython's documented prerequisites (CPython 3.11+, Rust 1.89+) stay accurate, and both PyO3 versions support up to CPython 3.15.

@EliahKagan
Eliah Kagan (EliahKagan) merged commit 7808a21 into main Nov 1, 2026
29 checks passed
@EliahKagan
Eliah Kagan (EliahKagan) deleted the dependabot/cargo/cargo-90f98110e2 branch November 1, 2026 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants