Skip to content

chore: bump pyo3-build-config from 0.27.2 to 0.29.2 - #6258

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/pyo3-build-config-0.29.2
Open

chore: bump pyo3-build-config from 0.27.2 to 0.29.2#6258
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/pyo3-build-config-0.29.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 31, 2026

Copy link
Copy Markdown
Contributor

Bumps pyo3-build-config from 0.27.2 to 0.29.2.

Release notes

Sourced from pyo3-build-config's releases.

PyO3 0.29.2

This patch fixes a regression in PyO3 0.29.1 which broke PyPy 3.11 compatibility (#[pyclass] types would crash PyPy on instance deletion).

A few further fixes have also landed with similar themes to PyO3 0.29.1: fixes to minor reference counting bugs, rough edges which would cause crashes, issues which would cause failed builds, and fixes to experimental-inspect type stub generation.

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

Thank you to the following contributors for the improvements:

@​davidhewitt @​dependabot[bot] @​ImFeH2 @​musicinmybrain @​Tpt @​WaterWhisperer

PyO3 0.29.1

This patch is a stack of fixes for PyO3 0.29. Particular themes include:

  • Fixes addressing build failures with newer interpreters such as GraalPy 3.13 and CPython 3.15
  • Fixes resolving potential memory leaks inside #[pyclass] implementation internals
  • Fixes to the new experimental-inspect type stub machinery

For a full list of the fixes in these above themes and more, please consult the CHANGELOG.

Thank you to the following contributors for the improvements:

@​alex @​bschoenmaeckers @​chirizxc @​davidhewitt @​dependabot[bot] @​exg @​ImFeH2 @​IvanIsCoding @​jonasdedden @​MatthieuDartiailh @​msimacek @​ngoldbaum @​Person-93 @​ratazzi @​rewitt94 @​scott-griffiths @​ShiroKSH @​tobni @​Tpt @​WaterWhisperer

PyO3 0.29.0

This release is a relatively large release with improvements across many areas of PyO3's API.

... (truncated)

Changelog

Sourced from pyo3-build-config's changelog.

[0.29.2] - 2026-08-05

Packaging

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

Fixed

  • Fix PyO3 0.29 regression with failure to link under Cygwin / MSYS2. #6185
  • Fix stubs generation for field getters (#[pyo3(get)]) when IntoPyObject is only implemented on references of the field type. #6276
  • Fix #[classmethod] magic methods receiving the instance instead of its type when invoked through a type slot. #6283
  • Fix pyo3_build_config::add_libpython_rpath_link_args emitting Unix-style rpath linker arguments on Windows and Cygwin. #6284
  • Fix PyO3 0.29.1 regression on PyPy causing crashes when deallocating #[pyclass] instances. #6294
  • Fix missing trailing nul in Python 3.9 #[pyclass] docstrings. #6296
  • Fix reference count leak of #[classattr] values created from fn items. #6297

[0.29.1] - 2026-08-02

Changed

  • Use the inline definition of Py_TYPE in the unlimited API on 3.14+ #6179

Fixed

  • Fix incorrect pointer arithmetic in FFI definitions PyObject_GET_WEAKREFS_LISTPTR and PyHeapType_GET_MEMBERS. #6145
  • Fix compilation error with nightly feature on PyPy and GraalPy due to !Ungil implementations for FFI types not available on those platforms. #6146
  • Fix append_to_inittab and PyInit_<module> internal module definition corruption on 32-bit and big-endian platforms on Python 3.15+. #6150
  • Fix return value of PyClassGuardMutSuper::as_super being scoped to the full guard lifetime, now the &mut borrow of the as_super() call. #6181
  • Fix builds for free-threaded interpreters older than 3.15 erroring with "cannot set a minimum Python version" when an abi3t-py3* feature is enabled and the configuration comes from PYO3_CONFIG_FILE, sysconfigdata or cross-compilation defaults. #6192
  • Fix a memory leak when deallocating #[pyclass(dict)] instances with a populated __dict__. #6198
  • Fix an abort inside a #[pyclass]'s GC traversal when the traversal is stopped early. #6206
  • Fix reference cycles through the __dict__ of a #[pyclass(dict)] never being collected. #6206
  • Fix building on GraalPy 3.13. #6208
  • Fix reference count leak of references to #[pyclass] type objects held by their instances on instance deallocation. #6224
  • Fix FFI definitions PyByteArray_GET_SIZE, PyList_GET_SIZE, and PySet_GET_SIZE to use an atomic load for free-threaded Python. #6230
  • Fix a memory leak on Python 3.11 and 3.12 where creating an instance of a #[pyclass(dict)] class leaked one empty dict per instance. #6234
  • Fix experimental-inspect type stubs to emit the arguments of many magic methods as positional-only to match runtime behavior, rather than positional-or-keyword. #6239
  • Fix experimental-inspect type stubs to emit the Python name rather than the Rust name for #[pyfunction(name = "...")]. #6254
  • Fix experimental-inspect generating invalid internal JSON when #[pymodule] members are gated by #[cfg]. #6255
  • Fix __inplace_concat__ and __inplace_repeat__ overriding __concat__ and __repeat__ when both were defined. #6260
  • Fix conversion of out-of-range time::Duration values to return OverflowError instead of panicking. #6266
  • Fix experimental-inspect type stubs padding blank lines inside indented docstrings. #6270

[0.29.0] - 2026-06-11

Packaging

  • Support the new PEP 803 abi3t ABI with new abi3t and abi3t-py315 features. #5807
  • pyo3-macros-backend no longer depends on pyo3-build-config. #5809
  • Drop support for Python 3.13t (3.14t and above continue to be supported; CPython declared free-threading supported starting with Python 3.14). #5865

... (truncated)

Commits
  • a70d17f release: 0.29.2
  • bd00e11 fix backports.zoneinfo for uv install
  • 7cbd144 fix double-decref in PyPy in instance dealloc (#6294)
  • e57fb6f fix missing trailing nul on Python 3.9 #[pyclass] docstrings (#6296)
  • d83693c fix refcount leak in initialize_tp_dict (#6297)
  • 48ebbd8 fix: skip libpython rpath args on Windows and Cygwin (#6284)
  • bd73377 fix: pass class to classmethod magic methods (#6283)
  • af8d149 Restore pyo3-introspection license files (#6289)
  • 0120c59 unblock CI via a uv constraint (#6295)
  • 3161efc build(deps): bump CodSpeedHQ/action from 4 to 5.0.1 (#6286)
  • Additional commits viewable in compare view

Dependabot compatibility score

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)

Bumps [pyo3-build-config](https://github.com/pyo3/pyo3) from 0.27.2 to 0.29.2.
- [Release notes](https://github.com/pyo3/pyo3/releases)
- [Changelog](https://github.com/PyO3/pyo3/blob/main/CHANGELOG.md)
- [Commits](PyO3/pyo3@v0.27.2...v0.29.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies rust Pull requests that update Rust code labels Aug 31, 2026

@prql-bot prql-bot left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Holding off on approving this one: it moves pyo3-build-config two minor generations ahead of pyo3, which stays at 0.27.1 in the same [workspace.dependencies] table. The lock file shows the split — pyo3, pyo3-ffi and pyo3-macros keep pyo3-build-config 0.27.2, while prqlc-python's build script now compiles against a second copy at 0.29.2. pyo3 ships these lock-stepped on purpose; pyo3-build-config's own crate docs describe it as "used internally by the PyO3 crate's build script to apply the same configuration", so the two are meant to compute an identical interpreter config from the same environment.

The practical impact today looks like nothing — I diffed the one function build.rs calls, add_extension_module_link_args(), between 0.27.2 and 0.29.2, and the only behavioral change is that 0.29 gates the emscripten branch on rustc_minor_version() < 95. The Darwin branch this repo actually relies on (per the comment in prqlc/bindings/prqlc-python/build.rs) is byte-identical, and wasm32-unknown-emscripten isn't a target here. So this is a latent-hazard and hygiene call rather than a live bug — but it's my own judgment that a build-config generation ahead of its pyo3 isn't a state worth carrying, given the whole job of that crate is to mirror what pyo3's build script does.

Worth flagging alongside #6259, which bumps pyo3 itself to 0.28.3 rather than 0.29.2. Merging both still leaves the pair mismatched (0.28.3 / 0.29.2). The reason for the cap is that pyo3 0.29 dropped the abi3-py37 feature0.28.3 is the newest pyo3 that still has it, and Cargo.toml requests features = ["abi3-py37", "anyhow"]. pyo3-build-config has no such feature, so nothing stopped Dependabot from taking it to 0.29 here.

Two coherent ways out, both a maintainer call:

  • Conservative — land #6259 alone and take pyo3-build-config to 0.28.3 too, keeping the pair together. Dependabot will keep re-proposing 0.29.2 for the build-config crate on its own, though, so this recurs weekly.
  • Unblock the familyprqlc-python's pyproject.toml already declares requires-python = ">=3.10", so the abi3-py37 floor is three releases below the versions the package claims to support. Raising it to abi3-py310 lets pyo3 and pyo3-build-config both go to 0.29.x in one PR and stops the split recurring. The published wheel tag changes from cp37-abi3 to cp310-abi3, which is a no-op for the declared support matrix. It does mean absorbing pyo3's 0.28 + 0.29 API changes in prqlc/bindings/prqlc-python/src/lib.rs, so it's more than a version bump — I didn't push it here rather than unilaterally rewriting a Dependabot PR into a pyo3 major bump that overlaps #6259.

I didn't post an inline suggestion for the conservative option because editing Cargo.toml without regenerating Cargo.lock would just trade this for a lock mismatch.

How I checked

Feature sets, from the crates.io sparse index (https://index.crates.io/py/o3/pyo3):

pyo3 abi3-py37 present MSRV
0.27.2 yes 1.74
0.28.3 yes 1.83
0.29.2 no (floor is abi3-py38; adds abi3-py315, abi3t) 1.83

pyo3-build-config 0.29.2 declares rust_version 1.83, under the workspace's rust-version = "1.85.0", so test-msrv isn't the concern here.

The function prqlc/bindings/prqlc-python/build.rs calls, from each crate's src/lib.rs:

// 0.27.2
fn _add_extension_module_link_args(triple: &Triple, mut writer: impl std::io::Write) {
    if matches!(triple.operating_system, OperatingSystem::Darwin(_)) { /* -undefined dynamic_lookup */ }
    else if triple == &Triple::from_str("wasm32-unknown-emscripten").unwrap() { /* -sSIDE_MODULE=2, -sWASM_BIGINT */ }
}

// 0.29.2 — adds the rustc_minor_version gate on the emscripten arm only
fn _add_extension_module_link_args(triple: &Triple, mut writer: impl std::io::Write, rustc_minor_version: Option<u32>) {
    if matches!(triple.operating_system, OperatingSystem::Darwin(_)) { /* identical */ }
    else if triple == &Triple::from_str("wasm32-unknown-emscripten").unwrap()
        && rustc_minor_version.is_some_and(|version| version < 95) { /* ... */ }
}

There's no deny.toml in the repo, so nothing gates on duplicate crate versions in the lock — the second pyo3-build-config entry won't turn a check red by itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant