Repository navigation
bump the cargo group with 2 updates - #7
Conversation
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>
There was a problem hiding this comment.
🔵 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
pyo3andpyo3-build-configfrom 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
There was a problem hiding this comment.
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 thattest/run-local.pyuses 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
mainrun, except onePytestUnhandledThreadExceptionWarningon 3.15t. It comes from an intermittent race inpump_streamingit/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+httpspin I used.
- 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
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.
Bumps the cargo group with 2 updates: pyo3 and pyo3-build-config.
Updates
pyo3from 0.29.3 to 0.30.1Release notes
Sourced from pyo3's releases.
... (truncated)
Changelog
Sourced from pyo3's changelog.
... (truncated)
Commits
f168538release: 0.30.1b3c7361pyo3-introspection sdist: skip maturin license lookup (#6528)b564d8cci: requireCargo.lockto be up to date during testing (#6522)bbd862csupport PyPy 3.12 (#6448)196ca35release: 0.30.0 (#6493)d3befaaremove all functionality deprecated in PyO3 0.28 (#6519)3ee4e56experimental-inspect: emit__all__in the generated stubs (#6242)071edectest against 3.15 final (#6517)4c68d9cinternal: remove no longer needednon_local_definitionsallows (#6508)65c8c7dAdd example building withmeson-python(#6483)Updates
pyo3-build-configfrom 0.29.3 to 0.30.1Release notes
Sourced from pyo3-build-config's releases.
... (truncated)
Changelog
Sourced from pyo3-build-config's changelog.
... (truncated)
Commits
f168538release: 0.30.1b3c7361pyo3-introspection sdist: skip maturin license lookup (#6528)b564d8cci: requireCargo.lockto be up to date during testing (#6522)bbd862csupport PyPy 3.12 (#6448)196ca35release: 0.30.0 (#6493)d3befaaremove all functionality deprecated in PyO3 0.28 (#6519)3ee4e56experimental-inspect: emit__all__in the generated stubs (#6242)071edectest against 3.15 final (#6517)4c68d9cinternal: remove no longer needednon_local_definitionsallows (#6508)65c8c7dAdd example building withmeson-python(#6483)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 rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill 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 versionwill 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